Skip to content

Update sukisu-los21.yml #66

Update sukisu-los21.yml

Update sukisu-los21.yml #66

Workflow file for this run

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 }}