Categories: - System License: GPL-3.0-or-later AuthorName: bmax121 SourceCode: https://github.com/bmax121/APatch IssueTracker: https://github.com/bmax121/APatch/issues Changelog: https://github.com/bmax121/APatch/releases AutoName: APatch RequiresRoot: true RepoType: git Repo: https://github.com/bmax121/APatch Builds: - versionName: '10763' versionCode: 10763 commit: b3ea4e1c38017cd7f29918aee809ca31f930a499 timeout: 30000 subdir: app sudo: - apt-get update - apt-get install -y make cmake gcc autoconf automake libtool wget flex bison autogen texinfo gawk libncurses5-dev dejagnu xz-utils python-is-python3 - curl -Lo /usr/share/doc/git/contrib/workdir/git-new-workdir https://raw.githubusercontent.com/git/git/v2.39.2/contrib/workdir/git-new-workdir - ln -s /usr/share/doc/git/contrib/workdir/git-new-workdir /usr/local/bin/ - chmod +x /usr/local/bin/git-new-workdir init: git checkout 10763 gradle: - yes srclibs: - rustup@1.26.0 - apatch-magisk@6122f80ecad5fc07df84bda6e07d4d477522288f - KernelPatch@0.10.7 - abe@5ad3b2cc5bc1376c323a68af6022603c1b75c145 prebuild: - mkdir gcc - cd gcc - $$abe$$/configure - curl -Lo gcc-manifest.txt https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/12.2.rel1/manifest/arm-gnu-toolchain-aarch64-none-elf-abe-manifest.txt - echo "8eaf20bf7f002ae98176974ceb77c2c6225585e6b62eec2a4870c1bd894393f8 gcc-manifest.txt" | sha256sum -c - - cd .. - sed -i -e 's|ndk_path = .*|ndk_path = "$$NDK$$"|' -e "s|rust_bin = .*|rust_bin = \"$HOME/.cargo/bin/\"|" -e '/sys.exit/d' -e 's/ -Zthreads=.*/"/' -e 's/archs = .*/archs = ["arm64-v8a"]/' -e '/triples =/,+5c triples = ["aarch64-linux-android"]' $$apatch-magisk$$/build.py - sed -i -e 's/armeabi-v7a.*/arm64-v8a/' $$apatch-magisk$$/native/src/Application.mk - kernelPatchVersion=$(sed -n -E 's/.*"kernelPatchVersion", "([0-9.]+)".*/\1/p' ../build.gradle.kts) - git -C $$KernelPatch$$ checkout -f $kernelPatchVersion - sdkmanager 'platforms;android-33' - $$rustup$$/rustup-init.sh -y --default-toolchain nightly-2024-02-04 -t aarch64-linux-android -c rust-src - source $HOME/.cargo/env - sed -i -e '/"cargo"/a environment("ANDROID_NDK_HOME", "$$NDK$$")' -e "s|\"cargo\"|\"$(which cargo)\"|" -e '/preBuild/,/^)/s/"download.*",//' -e '/jvmTarget/s/21/17/' build.gradle.kts - sed -i -e '/extra/s/getVersionCode()/$$VERCODE$$/' -e '/extra/s/getVersionName()/"$$VERSION$$"/' -e '/JavaVersion/s/21/17/' ../build.gradle.kts - sed -i -e '/androidx.dev/d' ../settings.gradle.kts - sed -i -e '/prefs.getBoolean("check_update"/s/true/false/' src/main/java/me/bmax/apatch/ui/screen/Settings.kt scandelete: - app/libs/arm64-v8a build: - pushd $$apatch-magisk$$ - python3 ./build.py -rv binary target magiskboot magiskpolicy busybox resetprop - popd - for target in magiskboot magiskpolicy busybox resetprop; do mv $$apatch-magisk$$/native/out/arm64-v8a/$target libs/arm64-v8a/lib${target}.so; done - cd gcc - $$abe$$/abe.sh --manifest gcc-manifest.txt --build all --disable make_docs > /dev/null - export TARGET_COMPILE=$(pwd)/builds/destdir/x86_64-pc-linux-gnu/bin/aarch64-none-elf- - cd .. - source $HOME/.cargo/env - cargo install cargo-ndk --version 3.4.0 --locked - pushd $$KernelPatch$$ - export ANDROID=1 - cd kernel - make - cd ../user - cmake -DCMAKE_TOOLCHAIN_FILE=$$NDK$$/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_PLATFORM=android-33 -DANDROID_ABI=arm64-v8a . - cmake --build . - cd ../tools - cmake -DCMAKE_TOOLCHAIN_FILE=$$NDK$$/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_PLATFORM=android-33 -DANDROID_ABI=arm64-v8a . - cmake --build . - popd - mv $$KernelPatch$$/kernel/kpimg src/main/assets/kpimg - mv $$KernelPatch$$/user/kpatch libs/arm64-v8a/libkpatch.so - mv $$KernelPatch$$/user/libapjni.so libs/arm64-v8a/libapjni.so - mv $$KernelPatch$$/tools/kptools libs/arm64-v8a/libkptools.so ndk: r26d - versionName: '11039' versionCode: 11039 commit: 5fd71d6a70d404e9dcf91c490dac00796418e7de timeout: 18000 subdir: app sudo: - apt-get update - apt-get install -y g++ make pkg-config libssl-dev ninja-build cmake xz-utils libflashrom-dev libnss3-dev zip libzstd-dev file binutils-dev bzip2 autoconf automake libtool wget flex bison autogen texinfo gawk libncurses5-dev dejagnu python-is-python3 clang-19 lld-19 - curl -Lo /usr/share/doc/git/contrib/workdir/git-new-workdir https://raw.githubusercontent.com/git/git/v2.39.2/contrib/workdir/git-new-workdir - ln -s /usr/share/doc/git/contrib/workdir/git-new-workdir /usr/local/bin/ - chmod +x /usr/local/bin/git-new-workdir gradle: - yes srclibs: - rustup@1.27.1 - ondk@r28.3 - ndk-box-kitchen@14d189ea3070a8167b3576bf83fe070d4a3441af - Busybox@1_36_1 - SELinux-android@android-15.0.0_r3 - pcre@android-15.0.0_r3 - apatch-magisk@cc566cf1de7e029b77a34bad11838a3357f1263a - KernelPatch@0.10.7 - abe@5ad3b2cc5bc1376c323a68af6022603c1b75c145 prebuild: - mkdir gcc - cd gcc - $$abe$$/configure - curl -Lo gcc-manifest.txt https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/12.2.rel1/manifest/arm-gnu-toolchain-aarch64-none-elf-abe-manifest.txt - echo "8eaf20bf7f002ae98176974ceb77c2c6225585e6b62eec2a4870c1bd894393f8 gcc-manifest.txt" | sha256sum -c - - cd .. - sed -i -e 's/-18/-19/' $$ondk$$/config.toml - sed -i -e 's|https://.*download/{ndk_ver}|$$ondk$$/dist|' -e 's/urllib.request.urlopen(url)/open(url,"rb")/' -e 's/ -Zthreads=.*/"/' $$apatch-magisk$$/build.py - sed -i -e '/"src",/,/^]/c "src"]' $$ondk$$/config.toml - sed -i -e 's/armeabi-v7a.*/arm64-v8a/' $$ndk-box-kitchen$$/jni/Application.mk - kernelPatchVersion=$(sed -n -E 's/.*"kernelPatchVersion", "([0-9.]+)".*/\1/p' ../build.gradle.kts) - git -C $$KernelPatch$$ checkout -f $kernelPatchVersion - $$rustup$$/rustup-init.sh -y --default-toolchain 1.85.1 -t aarch64-linux-android - source $HOME/.cargo/env - sed -i -e '/"cargo"/a environment("ANDROID_NDK_HOME", "$$NDK$$")' -e "s|\"cargo\"|\"$(which cargo)\"|" -e '/preBuild/,/^)/s/"download.*",//' -e 's/VERSION_22/VERSION_17/' build.gradle.kts - sed -i -e '/foojay/d' ../settings.gradle.kts - sed -i -e '/extra/s/getVersionCode()/$$VERCODE$$/' -e '/extra/s/getVersionName()/"$$VERSION$$"/' ../build.gradle.kts - sed -i -e '/prefs.getBoolean("check_update"/s/true/false/' src/main/java/me/bmax/apatch/ui/screen/Settings.kt - sed -i -e 's|verifyAppSignature(".*")|verifyAppSignature("/kptjCONPpskoErXuf2OuvMzTcbAu1EmsWLwypMa8rg=")|' src/main/java/me/bmax/apatch/APatchApp.kt - sdkmanager 'platforms;android-33' 'cmake;3.31.6' scandelete: - app/libs/arm64-v8a build: - pushd $$ondk$$ - ./build.sh - popd - pushd $$apatch-magisk$$ - python3 ./build.py -rv ndk - python3 ./build.py -rv native targets magiskboot magiskpolicy resetprop - popd - for target in magiskboot magiskpolicy resetprop; do mv $$apatch-magisk$$/native/out/arm64-v8a/$target libs/arm64-v8a/lib${target}.so; done - pushd $$ndk-box-kitchen$$ - cp -r $$Busybox$$ busybox - cp -r $$SELinux-android$$ jni/selinux - cp -r $$pcre$$ jni/pcre - pushd busybox - git config user.email test@test.com - git config user.name test - popd - ./run.sh patch - ./run.sh generate - $$SDK$$/ndk/magisk/ndk-build -j$(nproc) - popd - mv $$ndk-box-kitchen$$/libs/arm64-v8a/busybox libs/arm64-v8a/libbusybox.so - cd gcc - $$abe$$/abe.sh --manifest gcc-manifest.txt --build all --disable make_docs > /dev/null - export TARGET_COMPILE=$(pwd)/builds/destdir/x86_64-pc-linux-gnu/bin/aarch64-none-elf- - cd .. - source $HOME/.cargo/env - cargo install cargo-ndk --version 3.5.4 --locked - pushd $$KernelPatch$$ - export ANDROID=1 - cd kernel - make - cd ../tools - cmake -DCMAKE_TOOLCHAIN_FILE=$$NDK$$/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_PLATFORM=android-33 -DANDROID_ABI=arm64-v8a . - cmake --build . - git checkout -f 0.10.7 - cd ../kernel - make hdr - cd ../user - cmake -DCMAKE_TOOLCHAIN_FILE=$$NDK$$/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_PLATFORM=android-33 -DANDROID_ABI=arm64-v8a . - cmake --build . - popd - mv $$KernelPatch$$/kernel/kpimg src/main/assets/kpimg - mv $$KernelPatch$$/tools/kptools libs/arm64-v8a/libkptools.so - mv $$KernelPatch$$/user/kpatch libs/arm64-v8a/libkpatch.so ndk: r27c - versionName: '11107' versionCode: 11107 commit: d577cd3ff7219a0f50c5cc6cc163645c70a09a75 timeout: 18000 subdir: app sudo: - apt-get update - apt-get install -y g++ make pkg-config libssl-dev ninja-build cmake xz-utils libflashrom-dev libnss3-dev zip libzstd-dev file binutils-dev bzip2 autoconf automake libtool wget flex bison autogen texinfo gawk libncurses5-dev dejagnu python-is-python3 clang-19 lld-19 - curl -Lo /usr/share/doc/git/contrib/workdir/git-new-workdir https://raw.githubusercontent.com/git/git/v2.39.2/contrib/workdir/git-new-workdir - ln -s /usr/share/doc/git/contrib/workdir/git-new-workdir /usr/local/bin/ - chmod +x /usr/local/bin/git-new-workdir gradle: - yes srclibs: - rustup@1.27.1 - ondk@r28.5 - ndk-box-kitchen@14d189ea3070a8167b3576bf83fe070d4a3441af - Busybox@1_36_1 - SELinux-android@android-15.0.0_r3 - pcre@android-15.0.0_r3 - apatch-magisk@1ff5c02e668e32ccf571f2f61a1c0ff2425d4f0a - KernelPatch@0.10.7 - abe@5ad3b2cc5bc1376c323a68af6022603c1b75c145 prebuild: - mkdir gcc - cd gcc - $$abe$$/configure - curl -Lo gcc-manifest.txt https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/12.2.rel1/manifest/arm-gnu-toolchain-aarch64-none-elf-abe-manifest.txt - echo "8eaf20bf7f002ae98176974ceb77c2c6225585e6b62eec2a4870c1bd894393f8 gcc-manifest.txt" | sha256sum -c - - cd .. - sed -i -e 's|https://.*download/{ondk_version}|$$ondk$$/dist|' -e 's/urllib.request.urlopen(url)/open(url,"rb")/' -e 's/-Z threads=.*/"/' $$apatch-magisk$$/build.py - sed -i -e '/"src",/,/^]/c "src"]' $$ondk$$/bootstrap.toml - sed -i -e 's/git config set/git config/' $$ondk$$/common.sh - sed -i -e 's/armeabi-v7a.*/arm64-v8a/' $$ndk-box-kitchen$$/jni/Application.mk - kernelPatchVersion=$(sed -n -E 's/.*"kernelPatchVersion", "([0-9.]+)".*/\1/p' ../build.gradle.kts) - git -C $$KernelPatch$$ checkout -f $kernelPatchVersion - $$rustup$$/rustup-init.sh -y --default-toolchain 1.85.1 -t aarch64-linux-android - source $HOME/.cargo/env - sed -i -e '/"cargo"/a environment("ANDROID_NDK_HOME", "$$NDK$$")' -e "s|\"cargo\"|\"$(which cargo)\"|" -e '/preBuild/,/^)/s/"download.*",//' -e 's/VERSION_22/VERSION_17/' build.gradle.kts - sed -i -e '/foojay/d' ../settings.gradle.kts - sed -i -e '/extra/s/getVersionCode()/$$VERCODE$$/' -e '/extra/s/getVersionName()/"$$VERSION$$"/' ../build.gradle.kts - sed -i -e '/prefs.getBoolean("check_update"/s/true/false/' src/main/java/me/bmax/apatch/ui/screen/Settings.kt - sed -i -e 's|verifyAppSignature(".*")|verifyAppSignature("/kptjCONPpskoErXuf2OuvMzTcbAu1EmsWLwypMa8rg=")|' src/main/java/me/bmax/apatch/APatchApp.kt - sdkmanager 'platforms;android-33' 'cmake;3.31.6' scandelete: - app/libs/arm64-v8a build: - pushd $$ondk$$ - ./build.sh - popd - pushd $$apatch-magisk$$ - python3 ./build.py -rv ndk - PATH=$$SDK$$/ndk/magisk/toolchains/rust/bin/:$PATH python3 ./build.py -rv native targets magiskboot magiskpolicy resetprop - popd - for target in magiskboot magiskpolicy resetprop; do mv $$apatch-magisk$$/native/out/arm64-v8a/$target libs/arm64-v8a/lib${target}.so; done - pushd $$ndk-box-kitchen$$ - cp -r $$Busybox$$ busybox - cp -r $$SELinux-android$$ jni/selinux - cp -r $$pcre$$ jni/pcre - pushd busybox - git config user.email test@test.com - git config user.name test - popd - ./run.sh patch - ./run.sh generate - $$SDK$$/ndk/magisk/ndk-build -j$(nproc) - popd - mv $$ndk-box-kitchen$$/libs/arm64-v8a/busybox libs/arm64-v8a/libbusybox.so - cd gcc - $$abe$$/abe.sh --manifest gcc-manifest.txt --build all --disable make_docs > /dev/null - export TARGET_COMPILE=$(pwd)/builds/destdir/x86_64-pc-linux-gnu/bin/aarch64-none-elf- - cd .. - source $HOME/.cargo/env - cargo install cargo-ndk --version 3.5.4 --locked - pushd $$KernelPatch$$ - export ANDROID=1 - cd kernel - make - cd ../tools - cmake -DCMAKE_TOOLCHAIN_FILE=$$NDK$$/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_PLATFORM=android-33 -DANDROID_ABI=arm64-v8a . - cmake --build . - git checkout -f 0.10.7 - cd ../kernel - make hdr - cd ../user - cmake -DCMAKE_TOOLCHAIN_FILE=$$NDK$$/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_PLATFORM=android-33 -DANDROID_ABI=arm64-v8a . - cmake --build . - popd - mv $$KernelPatch$$/kernel/kpimg src/main/assets/kpimg - mv $$KernelPatch$$/tools/kptools libs/arm64-v8a/libkptools.so - mv $$KernelPatch$$/user/kpatch libs/arm64-v8a/libkpatch.so ndk: r28b - versionName: '11142' versionCode: 11142 commit: 166daa081c5107e1036a3e5caa1380e8a1a863cb timeout: 18000 subdir: app sudo: - apt-get update - apt-get install -y g++ make pkg-config libssl-dev ninja-build cmake xz-utils libflashrom-dev libnss3-dev zip libzstd-dev file binutils-dev bzip2 autoconf automake libtool wget flex bison autogen texinfo gawk libncurses5-dev dejagnu python-is-python3 clang-19 lld-19 - curl -Lo /usr/share/doc/git/contrib/workdir/git-new-workdir https://raw.githubusercontent.com/git/git/v2.39.2/contrib/workdir/git-new-workdir - ln -s /usr/share/doc/git/contrib/workdir/git-new-workdir /usr/local/bin/ - chmod +x /usr/local/bin/git-new-workdir gradle: - yes srclibs: - rustup@1.27.1 - ondk@r29.2 - ndk-box-kitchen@14d189ea3070a8167b3576bf83fe070d4a3441af - Busybox@1_36_1 - SELinux-android@android-15.0.0_r3 - pcre@android-15.0.0_r3 - apatch-magisk@b43c03c336d4feae49b9ecf629e052bd2f004208 - KernelPatch@0.10.7 - abe@5ad3b2cc5bc1376c323a68af6022603c1b75c145 prebuild: - mkdir gcc - cd gcc - $$abe$$/configure - curl -Lo gcc-manifest.txt https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/12.2.rel1/manifest/arm-gnu-toolchain-aarch64-none-elf-abe-manifest.txt - echo "8eaf20bf7f002ae98176974ceb77c2c6225585e6b62eec2a4870c1bd894393f8 gcc-manifest.txt" | sha256sum -c - - cd .. - sed -i -e 's|https://.*download/{ondk_version}|$$ondk$$/dist|' -e 's/urllib.request.urlopen(url)/open(url,"rb")/' -e 's|f"{rust_sysroot / "bin"}{os.pathsep}{env\["PATH"\]}"|f"""{rust_sysroot / "bin"}{os.pathsep}{env["PATH"]}"""|' $$apatch-magisk$$/build.py - sed -i -e '/"src",/,/^]/c "src"]' $$ondk$$/bootstrap.toml - sed -i -e 's/git config set/git config/' $$ondk$$/common.sh - sed -i -e 's/armeabi-v7a.*/arm64-v8a/' $$ndk-box-kitchen$$/jni/Application.mk - kernelPatchVersion=$(sed -n -E 's/.*"kernelPatchVersion", "([0-9.]+)".*/\1/p' ../build.gradle.kts) - git -C $$KernelPatch$$ checkout -f $kernelPatchVersion - $$rustup$$/rustup-init.sh -y --default-toolchain 1.91.1 -t aarch64-linux-android - source $HOME/.cargo/env - sed -i -e '/"cargo"/a environment("ANDROID_NDK_HOME", "$$NDK$$")' -e "s|\"cargo\"|\"$(which cargo)\"|" -e '/preBuild/,/^)/s/"download.*",//' -e 's/VERSION_21/VERSION_17/' -e '/jvm/s/21/17/' -e '/JavaLanguageVersion/s/21/17/' build.gradle.kts - sed -i -e '/foojay/d' ../settings.gradle.kts - sed -i -e '/extra/s/getVersionCode()/$$VERCODE$$/' -e '/extra/s/getVersionName()/"$$VERSION$$"/' ../build.gradle.kts - sed -i -e '/prefs.getBoolean("check_update"/s/true/false/' src/main/java/me/bmax/apatch/ui/screen/Settings.kt - sed -i -e 's|verifyAppSignature(".*")|verifyAppSignature("/kptjCONPpskoErXuf2OuvMzTcbAu1EmsWLwypMa8rg=")|' src/main/java/me/bmax/apatch/APatchApp.kt - sdkmanager 'platforms;android-33' 'cmake;3.31.6' scandelete: - app/libs/arm64-v8a build: - pushd $$ondk$$ - ./build.sh - popd - pushd $$apatch-magisk$$ - python3 ./build.py -rv ndk - PATH=$$SDK$$/ndk/magisk/toolchains/rust/bin/:$PATH python3 ./build.py -rv native targets magiskboot magiskpolicy resetprop - popd - for target in magiskboot magiskpolicy resetprop; do mv $$apatch-magisk$$/native/out/arm64-v8a/$target libs/arm64-v8a/lib${target}.so; done - pushd $$ndk-box-kitchen$$ - cp -r $$Busybox$$ busybox - cp -r $$SELinux-android$$ jni/selinux - cp -r $$pcre$$ jni/pcre - pushd busybox - git config user.email test@test.com - git config user.name test - popd - ./run.sh patch - ./run.sh generate - $$SDK$$/ndk/magisk/ndk-build -j$(nproc) - popd - mv $$ndk-box-kitchen$$/libs/arm64-v8a/busybox libs/arm64-v8a/libbusybox.so - cd gcc - $$abe$$/abe.sh --manifest gcc-manifest.txt --build all --disable make_docs > /dev/null - export TARGET_COMPILE=$(pwd)/builds/destdir/x86_64-pc-linux-gnu/bin/aarch64-none-elf- - cd .. - source $HOME/.cargo/env - cargo install cargo-ndk --version 3.5.4 --locked - pushd $$KernelPatch$$ - export ANDROID=1 - cd kernel - make - cd ../tools - cmake -DCMAKE_TOOLCHAIN_FILE=$$NDK$$/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_PLATFORM=android-33 -DANDROID_ABI=arm64-v8a . - cmake --build . - git checkout -f 0.10.7 - cd ../kernel - make hdr - cd ../user - cmake -DCMAKE_TOOLCHAIN_FILE=$$NDK$$/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_PLATFORM=android-33 -DANDROID_ABI=arm64-v8a . - cmake --build . - popd - mv $$KernelPatch$$/kernel/kpimg src/main/assets/kpimg - mv $$KernelPatch$$/tools/kptools libs/arm64-v8a/libkptools.so - mv $$KernelPatch$$/user/kpatch libs/arm64-v8a/libkpatch.so ndk: r29 MaintainerNotes: | 1. git-new-workdir needs to be downloaded because it's stripped. 2. aarch64-none-elf gcc is required which is not available in Debian so it's built from source. 3. Upstream uses Java 21 but it's not necessary so Java 17 is used. 4. The signature hash base64 is generated with `echo fe4a6d8c238d3e9b24a04ad7b9fd8ebaf3334dc6c0bb5126b162f0ca931af2b8 | xxd -r -p | base64` -> /kptjCONPpskoErXuf2OuvMzTcbAu1EmsWLwypMa8rg= AutoUpdateMode: Version UpdateCheckMode: Tags UpdateCheckData: '|(\d+)||(\d+)' CurrentVersion: '11142' CurrentVersionCode: 11142