Skip to content

Zuma Pro

Zuma Pro #7

name: Build A15 Zuma Pro Kernel
on:
workflow_dispatch:
workflow_call: # This allows this workflow to be called from another workflow
jobs:
build-kernel-a15-zumapro-kernelsu-susfs:
runs-on: ubuntu-latest
steps:
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
root-reserve-mb: 8192
temp-reserve-mb: 2048
swap-size-mb: 8192
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
- name: Installing dependencies
run: |
sudo apt install -y gcc-aarch64-linux-gnu
- name: Set CONFIG Environment Variable
run: |
CONFIG="android_kernel_google_zumapro"
# Set CONFIG as an environment variable for future steps
echo "CONFIG=$CONFIG" >> $GITHUB_ENV
echo "CONFIG set to: $CONFIG"
- name: Clone AnyKernel3 and Other Dependencies
run: |
echo "Cloning AnyKernel3 and other dependencies..."
# Define the branch names using the matrix values
ANYKERNEL_BRANCH="15.0.0-sultan-zumapro"
SUSFS_BRANCH="gki-android14-6.1"
# Debug print the branches
echo "Using branch for AnyKernel3: $ANYKERNEL_BRANCH"
echo "Using branch for SUSFS: $SUSFS_BRANCH"
# Clone repositories using the branch names
git clone https://github.com/TheWildJames/AnyKernel3.git -b "$ANYKERNEL_BRANCH"
git clone https://gitlab.com/simonpunk/susfs4ksu.git -b "$SUSFS_BRANCH"
git clone https://github.com/TheWildJames/kernel_patches.git
git clone https://github.com/kerneltoast/android_kernel_google_zumapro
- name: Add KernelSU
run: |
echo "Changing to configuration directory: $CONFIG..."
cd "$CONFIG"
echo "Adding KernelSU..."
curl -LSs "https://raw.githubusercontent.com/rifsxd/KernelSU-Next/next/kernel/setup.sh" | bash -
- name: Apply SUSFS Patches
run: |
echo "Changing to configuration directory: $CONFIG..."
cd "$CONFIG"
echo "Applying SUSFS patches..."
# Copy SUSFS patches
cp ../susfs4ksu/kernel_patches/50_add_susfs_in_gki-android14-6.1.patch ./
cp ../susfs4ksu/kernel_patches/fs/* ./fs/
cp ../susfs4ksu/kernel_patches/include/linux/* ./include/linux/
cd ./KernelSU-Next
echo "Applying next SUSFS patches..."
cp ../../kernel_patches/0001-kernel-patch-susfs-v1.5.5-to-KernelSU-Next-v1.0.5.patch ./
patch -p1 --forward < 0001-kernel-patch-susfs-v1.5.5-to-KernelSU-Next-v1.0.5.patch || true
# Change to common directory and apply SUSFS patch
cd ..
patch -p1 < 50_add_susfs_in_gki-android14-6.1.patch || true
- name: Apply KSU Hooks
run: |
echo "Changing to configuration directory: $CONFIG..."
cd "$CONFIG"
# Apply additional patch
cp ../kernel_patches/new_hooks.patch ./
patch -p1 --fuzz=3 < ./new_hooks.patch
- name: Apply Hide Stuff Patches
run: |
echo "Changing to configuration directory: $CONFIG..."
cd "$CONFIG"
# Apply additional patch
cp ../kernel_patches/69_hide_stuff.patch ./
patch -p1 -F 3 < 69_hide_stuff.patch
- name: Apply KernelSU & SUSFS SUltan Fixes
run: |
echo "Changing to configuration directory: $CONFIG..."
cd "$CONFIG"
# Apply additional patch
cp ../kernel_patches/sys.c_fix.patch ./
patch -p1 --fuzz=3 < ./sys.c_fix.patch
sed -i "s/poofed_size: '%u'/poofed_size: '%llu'/g" ./fs/susfs.c
sed -i "s/length of string: %u/length of string: %lu/g" ./fs/susfs.c
- name: Add SUSFS Configuration Settings
run: |
echo "Changing to configuration directory: $CONFIG..."
cd "$CONFIG"
echo "Adding configuration settings to zumapro_defconfig..."
# Add SUSFS configuration settings
echo "CONFIG_KSU=y" >> ./arch/arm64/configs/zuma_defconfig
echo "CONFIG_KSU_SUSFS=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_HAS_MAGIC_MOUNT=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_SUS_PATH=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_SUS_MOUNT=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_AUTO_ADD_SUS_KSU_DEFAULT_MOUNT=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_AUTO_ADD_SUS_BIND_MOUNT=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_SUS_KSTAT=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_SUS_OVERLAYFS=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_TRY_UMOUNT=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_AUTO_ADD_TRY_UMOUNT_FOR_BIND_MOUNT=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_SPOOF_UNAME=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_ENABLE_LOG=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_HIDE_KSU_SUSFS_SYMBOLS=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_SPOOF_CMDLINE_OR_BOOTCONFIG=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_OPEN_REDIRECT=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_KSU_SUSFS_SUS_SU=n" >> ./arch/arm64/configs/zumapro_defconfig
# Add additional tmpfs config setting
echo "CONFIG_TMPFS_XATTR=y" >> ./arch/arm64/configs/zumapro_defconfig
echo "CONFIG_TMPFS_POSIX_ACL=y" >> ./arch/arm64/configs/zumapro_defconfig
- name: Run sed and perl Commands
run: |
echo "Changing to configuration directory: $CONFIG..."
cd "$CONFIG"
echo "Running sed commands..."
sed -i 's/CONFIG_LOCALVERSION="-Sultan"/CONFIG_LOCALVERSION="-Sultan-Wild+"/' ./arch/arm64/configs/zumapro_defconfig
- name: Build the Kernel
run: |
echo "Changing to configuration directory: $CONFIG..."
cd "$CONFIG"
echo "ARCH=arm64" >> $GITHUB_ENV
echo "Building the kernel..."
make zumapro_defconfig -j$(nproc --all)
make -j$(nproc --all)
- name: Copy Images
run: |
echo "Changing to configuration directory: $CONFIG..."
cd "$CONFIG"
echo "Copying Image.lz4 and concatenating DTB files..."
cp ./out/arch/arm64/boot/Image.lz4 ../AnyKernel3/Image.lz4
cat ./out/google-modules/soc/gs/arch/arm64/boot/dts/google/*.dtb > ../AnyKernel3/dtb
- name: Create ZIP Files for Different Formats
run: |
echo "Navigating to AnyKernel3 directory..."
cd ./AnyKernel3
# Zip the files in the AnyKernel3 directory with a new naming convention
ZIP_NAME="A15_Sultan_KernelSU_SUSFS_ZumaPro.zip"
echo "Creating zip file $ZIP_NAME..."
zip -r "../$ZIP_NAME" ./*
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: kernel-zumapro
path: |
*.zip