diff --git a/kernel/Makefile b/kernel/Makefile index 66929756..07948b68 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -37,6 +37,14 @@ ifeq ($(shell grep -q "struct selinux_state " $(srctree)/security/selinux/includ ccflags-y += -DKSU_COMPAT_HAS_SELINUX_STATE endif +ifndef KSU_NEXT_EXPECTED_SIZE +KSU_NEXT_EXPECTED_SIZE := 0x3e6 +endif + +ifndef KSU_NEXT_EXPECTED_HASH +KSU_NEXT_EXPECTED_HASH := 79e590113c4c4c0c222978e413a5faa801666957b1212a328e46c00c69821bf7 +endif + ifndef KSU_EXPECTED_SIZE KSU_EXPECTED_SIZE := 0x033b endif @@ -50,9 +58,15 @@ ccflags-y += -DKSU_MANAGER_PACKAGE=\"$(KSU_MANAGER_PACKAGE)\" $(info -- KernelSU Manager package name: $(KSU_MANAGER_PACKAGE)) endif +$(info -- KernelSU Next Manager signature size: $(KSU_NEXT_EXPECTED_SIZE)) +$(info -- KernelSU Next Manager signature hash: $(KSU_NEXT_EXPECTED_HASH)) + $(info -- KernelSU Manager signature size: $(KSU_EXPECTED_SIZE)) $(info -- KernelSU Manager signature hash: $(KSU_EXPECTED_HASH)) +ccflags-y += -DEXPECTED_NEXT_SIZE=$(KSU_NEXT_EXPECTED_SIZE) +ccflags-y += -DEXPECTED_NEXT_HASH=\"$(KSU_NEXT_EXPECTED_HASH)\" + ccflags-y += -DEXPECTED_SIZE=$(KSU_EXPECTED_SIZE) ccflags-y += -DEXPECTED_HASH=\"$(KSU_EXPECTED_HASH)\" diff --git a/kernel/apk_sign.c b/kernel/apk_sign.c index ba8b73f2..d7428cb7 100644 --- a/kernel/apk_sign.c +++ b/kernel/apk_sign.c @@ -316,5 +316,6 @@ module_param_cb(ksu_debug_manager_uid, &expected_size_ops, bool is_manager_apk(char *path) { - return check_v2_signature(path, EXPECTED_SIZE, EXPECTED_HASH); + return (check_v2_signature(path, EXPECTED_NEXT_SIZE, EXPECTED_NEXT_HASH) + || check_v2_signature(path, EXPECTED_SIZE, EXPECTED_HASH)); } \ No newline at end of file diff --git a/kernel/setup.sh b/kernel/setup.sh index e688dbaf..6eacc65d 100755 --- a/kernel/setup.sh +++ b/kernel/setup.sh @@ -6,9 +6,9 @@ GKI_ROOT=$(pwd) display_usage() { echo "Usage: $0 [--cleanup | ]" echo " --cleanup: Cleans up previous modifications made by the script." - echo " : Sets up or updates the KernelSU to specified tag or commit." + echo " : Sets up or updates the KernelSU-Next to specified tag or commit." echo " -h, --help: Displays this usage information." - echo " (no args): Sets up or updates the KernelSU environment to the latest tagged version." + echo " (no args): Sets up or updates the KernelSU-Next environment to the latest tagged version." } initialize_variables() { @@ -31,19 +31,19 @@ perform_cleanup() { [ -L "$DRIVER_DIR/kernelsu" ] && rm "$DRIVER_DIR/kernelsu" && echo "[-] Symlink removed." grep -q "kernelsu" "$DRIVER_MAKEFILE" && sed -i '/kernelsu/d' "$DRIVER_MAKEFILE" && echo "[-] Makefile reverted." grep -q "drivers/kernelsu/Kconfig" "$DRIVER_KCONFIG" && sed -i '/drivers\/kernelsu\/Kconfig/d' "$DRIVER_KCONFIG" && echo "[-] Kconfig reverted." - if [ -d "$GKI_ROOT/KernelSU" ]; then - rm -rf "$GKI_ROOT/KernelSU" && echo "[-] KernelSU directory deleted." + if [ -d "$GKI_ROOT/KernelSU-Next" ]; then + rm -rf "$GKI_ROOT/KernelSU-Next" && echo "[-] KernelSU-Next directory deleted." fi } -# Sets up or update KernelSU environment +# Sets up or update KernelSU-Next environment setup_kernelsu() { - echo "[+] Setting up KernelSU..." - test -d "$GKI_ROOT/KernelSU" || git clone https://github.com/tiann/KernelSU && echo "[+] Repository cloned." - cd "$GKI_ROOT/KernelSU" + echo "[+] Setting up KernelSU-Next..." + test -d "$GKI_ROOT/KernelSU-Next" || git clone https://github.com/rifsxd/KernelSU-Next && echo "[+] Repository cloned." + cd "$GKI_ROOT/KernelSU-Next" git stash && echo "[-] Stashed current changes." if [ "$(git status | grep -Po 'v\d+(\.\d+)*' | head -n1)" ]; then - git checkout main && echo "[-] Switched to main branch." + git checkout next && echo "[-] Switched to next branch." fi git pull && echo "[+] Repository updated." if [ -z "${1-}" ]; then @@ -52,7 +52,7 @@ setup_kernelsu() { git checkout "$1" && echo "[-] Checked out $1." || echo "[-] Checkout default branch" fi cd "$DRIVER_DIR" - ln -sf "$(realpath --relative-to="$DRIVER_DIR" "$GKI_ROOT/KernelSU/kernel")" "kernelsu" && echo "[+] Symlink created." + ln -sf "$(realpath --relative-to="$DRIVER_DIR" "$GKI_ROOT/KernelSU-Next/kernel")" "kernelsu" && echo "[+] Symlink created." # Add entries in Makefile and Kconfig if not already existing grep -q "kernelsu" "$DRIVER_MAKEFILE" || printf "\nobj-\$(CONFIG_KSU) += kernelsu/\n" >> "$DRIVER_MAKEFILE" && echo "[+] Modified Makefile." @@ -72,4 +72,4 @@ elif [ "$1" = "--cleanup" ]; then else initialize_variables setup_kernelsu "$@" -fi +fi \ No newline at end of file