diff --git a/.github/workflows/gki-kernel.yml b/.github/workflows/gki-kernel.yml index 5ea2d0ab..a49d2e97 100644 --- a/.github/workflows/gki-kernel.yml +++ b/.github/workflows/gki-kernel.yml @@ -128,7 +128,9 @@ jobs: ln -sf $GITHUB_WORKSPACE/KernelSU/kernel $GKI_ROOT/common/drivers/kernelsu echo "[+] Add KernelSU driver to Makefile" DRIVER_MAKEFILE=$GKI_ROOT/common/drivers/Makefile - grep -q "kernelsu" $DRIVER_MAKEFILE || printf "\nobj-y += kernelsu/\n" >> $DRIVER_MAKEFILE + DRIVER_KCONFIG=$GKI_ROOT/common/drivers/Kconfig + grep -q "kernelsu" "$DRIVER_MAKEFILE" || printf "\nobj-\$(CONFIG_KSU) += kernelsu/\n" >> "$DRIVER_MAKEFILE" + grep -q "kernelsu" "$DRIVER_KCONFIG" || sed -i "/endmenu/i\\source \"drivers/kernelsu/Kconfig\"" "$DRIVER_KCONFIG" echo "[+] Apply KernelSU patches" cd $GKI_ROOT/common/ && git apply $GITHUB_WORKSPACE/KernelSU/.github/patches/$PATCH_PATH/*.patch || echo "[-] No patch found" @@ -166,7 +168,7 @@ jobs: sudo apt-get install llvm-15 -y ast-grep -U -p '$$$ check_exports($$$) {$$$}' -r '' common/scripts/mod/modpost.c ast-grep -U -p 'check_exports($$$);' -r '' common/scripts/mod/modpost.c - sed -i '1i KSU_MODULE := 1' $GITHUB_WORKSPACE/KernelSU/kernel/Makefile + sed -i '/config KSU/,/help/{s/default y/default m/}' common/drivers/kernelsu/Kconfig echo "drivers/kernelsu/kernelsu.ko" >> common/android/gki_aarch64_modules # bazel build, android14-5.15, android14-6.1 use bazel @@ -246,4 +248,4 @@ jobs: if: ${{ inputs.build_lkm == true }} with: name: ${{ inputs.version }}-lkm - path: ./output/*_kernelsu.ko \ No newline at end of file + path: ./output/*_kernelsu.ko diff --git a/kernel/Kconfig b/kernel/Kconfig index ab9c5097..67f177f4 100644 --- a/kernel/Kconfig +++ b/kernel/Kconfig @@ -5,20 +5,15 @@ config KSU depends on OVERLAY_FS default y help - Enable kernel-level root privileges on Android System. + Enable kernel-level root privileges on Android System. + To compile as a module, choose M here: the + module will be called kernelsu. config KSU_DEBUG bool "KernelSU debug mode" depends on KSU default n help - Enable KernelSU debug mode - -config KSU_MODULE - bool "Build KernelSU as a module" - depends on KSU - default n - help - Build KernelSU as a loadable kernel module + Enable KernelSU debug mode. endmenu diff --git a/kernel/Makefile b/kernel/Makefile index fcc58a5b..8151c566 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -16,11 +16,7 @@ kernelsu-objs += selinux/rules.o ccflags-y += -I$(srctree)/security/selinux -I$(srctree)/security/selinux/include ccflags-y += -I$(objtree)/security/selinux -include $(srctree)/include/uapi/asm-generic/errno.h -ifndef KSU_MODULE -obj-y += kernelsu.o -else -obj-m += kernelsu.o -endif +obj-$(CONFIG_KSU) += kernelsu.o # .git is a text file while the module is imported by 'git submodule add'. ifeq ($(shell test -e $(srctree)/$(src)/../.git; echo $$?),0)