Update sukisu-los21.yml #66
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build OnePlus-Sm8150-Kernel-LOS21 | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| ZRAM: | |
| description: 'Enable ZRAM support' | |
| default: 'false' | |
| VFS: | |
| description: 'Enable VFS hook support' | |
| default: 'false' | |
| push: | |
| branches: | |
| - oneplus/LOS_SM8150_14.0 | |
| pull_request: | |
| branches: | |
| - oneplus/LOS_SM8150_14.0 | |
| jobs: | |
| build: | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: write | |
| env: | |
| ANDROID_VERSION: android14 | |
| KERNEL_VERSION: 4.14 | |
| ZRAM: ${{ github.event.inputs.ZRAM }} | |
| VFS: ${{ github.event.inputs.VFS }} | |
| CCACHE_COMPILERCHECK: '%compiler% -dumpmachine; %compiler% -dumpversion' | |
| CCACHE_NOHASHDIR: 'true' | |
| CCACHE_MAXSIZE: '2G' | |
| CCACHE_HARDLINK: 'true' | |
| steps: | |
| - name: Set up ccache | |
| uses: hendrikmuhs/ccache-action@v1.2 | |
| - id: cache-aarch64 | |
| name: Cache AArch64 prebuilt toolchain | |
| uses: actions/cache@v3 | |
| with: | |
| path: aarch64/ | |
| key: ${{ runner.os }}-aarch64-prebuilt-${{ hashFiles('aarch64/version.txt') }} | |
| restore-keys: | | |
| ${{ runner.os }}-aarch64-prebuilt- | |
| - id: cache-clang | |
| name: Cache Clang toolchain | |
| uses: actions/cache@v3 | |
| with: | |
| path: clang/ | |
| key: ${{ runner.os }}-clang-ZenMaxBuilder | |
| restore-keys: | | |
| ${{ runner.os }}-clang- | |
| - name: Remove unnecessary files | |
| run: | | |
| sudo rm -rf /opt/ghc | |
| sudo rm -rf "/usr/local/share/boost" | |
| sudo rm -rf /usr/share/dotnet | |
| sudo rm -rf "$AGENT_TOOLSDIRECTORY" | |
| - name: Install dependencies & AnyKernel3 | |
| run: | | |
| sudo apt-get update -y | |
| sudo apt install -y \ | |
| gcc-aarch64-linux-gnu \ | |
| gcc-arm-linux-gnueabi \ | |
| clang-14 \ | |
| binutils make python3 libssl-dev build-essential bc bison flex unzip ca-certificates xz-utils mkbootimg cpio device-tree-compiler git git-lfs | |
| git clone https://github.com/snowwolf725/AnyKernel3 -b oneplus7 --depth=1 | |
| rm -rf AnyKernel3/.git | |
| - name: Clone AArch64 prebuilt toolchain | |
| if: steps.cache-aarch64.outputs.cache-hit != 'true' | |
| run: | | |
| rm -rf aarch64 | |
| git clone https://github.com/LineageOS/android_prebuilts_gcc_linux-x86_aarch64_aarch64-linux-android-4.9.git aarch64 --depth=1 | |
| cd aarch64 && git rev-parse HEAD > version.txt | |
| - name: Clone Proton Clang | |
| if: steps.cache-clang.outputs.cache-hit != 'true' | |
| run: | | |
| rm -rf clang | |
| git clone https://github.com/grm34/proton-clang -b ZenMaxBuilder clang --depth=1 | |
| - name: Checkout Android 14 kernel source | |
| run: | | |
| rm -rf kernel | |
| git clone https://github.com/Ninjona/android_kernel_oneplus_sm8150 \ | |
| -b oneplus/LOS_SM8150_14.0 --depth=1 kernel | |
| - name: Integrate SukiSU‑Ultra patches | |
| run: | | |
| cd kernel | |
| # 1. Fetch & install KernelSU | |
| curl -SLs https://raw.githubusercontent.com/SukiSU-Ultra/SukiSU-Ultra/main/kernel/setup.sh \ | |
| | bash -s susfs-main | |
| # 2. Compute & export a version number | |
| pushd KernelSU | |
| REV_COUNT=$(git rev-list --count main) | |
| popd | |
| KSU_VERSION=$((REV_COUNT + 10606)) | |
| echo "KSU_VERSION=$KSU_VERSION" >> $GITHUB_ENV | |
| # 3. Patch the top-level Makefile | |
| sed -i "s/^DKSU_VERSION=.*/DKSU_VERSION=${KSU_VERSION}/" Makefile | |
| # 4. Clone SUSFS4KSU from its kernel-4.14 branch | |
| mkdir -p patches | |
| cd patches | |
| git clone --single-branch \ | |
| -b kernel-${KERNEL_VERSION%.*} \ | |
| https://gitlab.com/simonpunk/susfs4ksu.git susfs4ksu | |
| git clone https://github.com/ShirkNeko/SukiSU_patch.git | |
| cd .. | |
| # 5. Apply the core SUSFS patch + copy helpers | |
| patch -p1 < patches/susfs4ksu/kernel_patches/50_add_susfs_in_kernel-4.14.patch || true | |
| cp -r patches/susfs4ksu/kernel_patches/common/include/linux/* include/linux/ 2>/dev/null || : | |
| cp -r patches/susfs4ksu/kernel_patches/common/fs/* fs/ 2>/dev/null || : | |
| # 6. (opt) ZRAM/LZ4K + LZ4KD support | |
| if [ "$ZRAM" = "true" ]; then | |
| cp -r patches/SukiSU_patch/other/zram/lz4k/include/linux/* include/linux/ | |
| cp -r patches/SukiSU_patch/other/zram/lz4k/lib/* lib/ | |
| cp -r patches/SukiSU_patch/other/zram/lz4k/crypto/* crypto/ | |
| patch -p1 -F3 < patches/SukiSU_patch/other/zram/zram_patch/${KERNEL_VERSION}/lz4kd.patch || true | |
| fi | |
| patch -p1 -F3 < patches/SukiSU_patch/69_hide_stuff.patch | |
| if [ "$VFS" = "true" ]; then | |
| patch -p1 -F3 < patches/SukiSU_patch/hooks/syscall_hooks.patch | |
| fi | |
| # 7. Hide-stuff patch | |
| patch -p1 -F3 < patches/SukiSU_patch/69_hide_stuff.patch | |
| # 8. (opt) VFS syscall hooks | |
| if [ "$VFS" = "true" ]; then | |
| patch -p1 -F3 < patches/SukiSU_patch/hooks/syscall_hooks.patch | |
| fi | |
| # CRITICAL FIX: Ensure SUSFS headers are properly included in core_hook.c | |
| if [ -f "drivers/kernelsu/core_hook.c" ]; then | |
| if ! grep -q "susfs.h" drivers/kernelsu/core_hook.c; then | |
| sed -i '1i #include <linux/susfs.h>' drivers/kernelsu/core_hook.c | |
| fi | |
| fi | |
| # 9. Append KSU/SUSFS flags to your defconfig | |
| DEFCONFIG=arch/arm64/configs/lineage_sm8150_defconfig | |
| echo "CONFIG_KSU=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KPM=y" >> "$DEFCONFIG" | |
| if [ "$VFS" = "false" ]; then | |
| echo "CONFIG_KPROBES=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_SUS_SU=y" >> "$DEFCONFIG" | |
| else | |
| echo "CONFIG_KSU_SUSFS_SUS_SU=n" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_MANUAL_HOOK=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_HAS_MAGIC_MOUNT=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_SUS_PATH=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_SUS_MOUNT=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_AUTO_ADD_SUS_KSU_DEFAULT_MOUNT=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_AUTO_ADD_SUS_BIND_MOUNT=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_SUS_KSTAT=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_SUS_OVERLAYFS=n" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_TRY_UMOUNT=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_AUTO_ADD_TRY_UMOUNT_FOR_BIND_MOUNT=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_SPOOF_UNAME=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_ENABLE_LOG=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y" >> "$DEFCONFIG" | |
| echo "CONFIG_KSU_SUSFS_OPEN_REDIRECT=y" >> "$DEFCONFIG" | |
| fi | |
| # 10. ZRAM built-in & crypto backends | |
| if [ "$ZRAM" = "true" ]; then | |
| echo "CONFIG_ZSMALLOC=y" >> "$DEFCONFIG" | |
| echo "CONFIG_ZRAM=y" >> "$DEFCONFIG" | |
| echo "CONFIG_CRYPTO_LZO=y" >> "$DEFCONFIG" | |
| echo "CONFIG_ZRAM_DEF_COMP_LZ4KD=y" >> "$DEFCONFIG" | |
| echo "CONFIG_MODULE_SIG=n" >> "$DEFCONFIG" | |
| echo "CONFIG_CRYPTO_LZ4HC=y" >> "$DEFCONFIG" | |
| echo "CONFIG_CRYPTO_LZ4K=y" >> "$DEFCONFIG" | |
| echo "CONFIG_CRYPTO_LZ4KD=y" >> "$DEFCONFIG" | |
| echo "CONFIG_CRYPTO_842=y" >> "$DEFCONFIG" | |
| echo "CONFIG_ZRAM_WRITEBACK=y" >> "$DEFCONFIG" | |
| fi | |
| - name: Setup LOS 21 | |
| run: | | |
| export KERNEL_DEFCONFIG="lineage_sm8150_defconfig" | |
| export KERNEL_CMDLINE="ARCH=arm64 CLANG_TRIPLE=aarch64-linux-gnu- CROSS_COMPILE=aarch64-linux-androidkernel- CROSS_COMPILE_ARM32=arm-linux-gnueabi- LLVM=1 LLVM_IAS=1 CONFIG_BUILD_ARM64_DT_OVERLAY=n O=out" | |
| export PATH=$(pwd)/clang/bin/:$(pwd)/aarch74/bin/:$PATH | |
| export ARCH=arm64 | |
| export SUBARCH=arm64 | |
| export LD=ld.lld | |
| export BRAND_SHOW_FLAG=oneplus | |
| export TARGET_PRODUCT=msmnile | |
| cd kernel | |
| make $KERNEL_CMDLINE CC="ccache clang" $KERNEL_DEFCONFIG | |
| make $KERNEL_CMDLINE CC="ccache clang" -j$(nproc --all) | |
| cp out/arch/arm64/boot/Image ../AnyKernel3 | |
| - name: Create AK3 zip for Android 14 | |
| run: | | |
| cd AnyKernel3 | |
| zip -r ./OP7-LOS21.zip * | |
| - name: Upload to Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: | | |
| AnyKernel3/OP7-LOS21.zip | |
| name: OnePlus7_SukiSU-v${{ github.run_number }} | |
| tag_name: v${{ github.run_number }} | |
| body: | | |
| Device: Oneplus 7/Oneplus 7Pro/Oneplus 7T/Oneplus 7TPro | |
| Target: LOS21 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |