From ab8e966b7f48784f0a6c7a46d86466d9f9e532eb Mon Sep 17 00:00:00 2001 From: Ylarod Date: Mon, 3 Nov 2025 09:55:32 +0800 Subject: [PATCH] add check_managed_features to installer.sh --- userspace/ksud/src/installer.sh | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/userspace/ksud/src/installer.sh b/userspace/ksud/src/installer.sh index 2ebdddc7..980cb3fa 100644 --- a/userspace/ksud/src/installer.sh +++ b/userspace/ksud/src/installer.sh @@ -248,6 +248,42 @@ api_level_arch_detect() { # Module Related ################# +check_managed_features() { + local PROP_FILE=$1 + local MANAGED_FEATURES=$(grep_prop ksu_managed_features "$PROP_FILE") + + [ -z "$MANAGED_FEATURES" ] && return 0 + + ui_print "- Checking managed features: $MANAGED_FEATURES" + + # Split features by comma + echo "$MANAGED_FEATURES" | tr ',' '\n' | while read -r feature; do + # Trim whitespace + feature=$(echo "$feature" | xargs) + [ -z "$feature" ] && continue + + # Check feature status using ksud + local status=$(/data/adb/ksud feature check "$feature" 2>/dev/null) + + case "$status" in + "unsupported") + ui_print "! WARNING: Feature '$feature' is NOT SUPPORTED by kernel" + ui_print "! This module may not work correctly!" + ;; + "managed") + ui_print "! WARNING: Feature '$feature' is already MANAGED by another module" + ui_print "! Feature conflicts may occur!" + ;; + "supported") + ui_print "- Feature '$feature' is supported and available" + ;; + *) + ui_print "! WARNING: Unable to check feature '$feature' status" + ;; + esac + done +} + set_perm() { chown $2:$3 $1 || return 1 chmod $4 $1 || return 1 @@ -344,6 +380,9 @@ install_module() { MODAUTH=`grep_prop author $TMPDIR/module.prop` MODPATH=$MODULEROOT/$MODID + # Check managed features + check_managed_features $TMPDIR/module.prop + # Create mod paths rm -rf $MODPATH mkdir -p $MODPATH