diff --git a/module/action.sh b/module/action.sh index 479dd77..12fbf71 100644 --- a/module/action.sh +++ b/module/action.sh @@ -1,18 +1,30 @@ +MODPATH="${0%/*}" +COMPATH="$MODPATH/common" SCRIPT_DIR="/data/adb/tricky_store" -echo "**********************************************" -echo "- Staring script..." -echo " " +. "$COMPATH/util_func.sh" -if [ ! -f "$SCRIPT_DIR/UpdateTargetList.sh" ]; then - echo "! Script missing, please install module again" - echo "**********************************************" - exit 1 +if pm list packages | grep -q "$PACKAGE_NAME"; then + echo "- Launching KSU WebUI..." + am start -n "${PACKAGE_NAME}/.WebUIActivity" -e id "$MODID" else - . "$SCRIPT_DIR/UpdateTargetList.sh" -fi + SKIP_FILE="$SCRIPT_DIR/target_list_config/skipwebui" + if [ ! -f "$SKIP_FILE" ]; then + echo "- Do you want to install KSU WebUI standalone?" + echo " VOL [+]: YES" + echo " VOL [-]: NO" -echo "**********************************************" -echo "\(__All set!__)/" -echo "Exiting in 2 seconds..." -sleep 2 \ No newline at end of file + key_check + if [[ "$keycheck" == "KEY_VOLUMEUP" ]]; then + echo "- Installing KSU WebUI..." + . "$COMPATH/get_WebUI.sh" + else + echo "- Skipping WebUI installation..." + touch "$SKIP_FILE" + echo "- Skip WebUI check until next installation." + update_script + fi + else + update_script + fi +fi \ No newline at end of file diff --git a/module/common/get_WebUI.sh b/module/common/get_WebUI.sh new file mode 100644 index 0000000..642e9fa --- /dev/null +++ b/module/common/get_WebUI.sh @@ -0,0 +1,28 @@ +URL="https://github.com/5ec1cff/KsuWebUIStandalone/releases/download/v1.0/KsuWebUI-1.0-34-release.apk" +APK_DIR="$COMPATH" +LOG_FILE="$COMPATH/webuiError.log" + +find_busybox +check_wget + +echo "- Downloading the WebUI apk..." +download_webui +echo "- Download complete." + +APK_PATH=$(find "$APK_DIR" -type f -name "*.apk" | head -n 1) +if [ -z "$APK_PATH" ]; then + echo "Error: No APK file found in $APK_DIR." + exit 1 +fi + +echo "- Installing..." +install_webui +echo "- Done." +rm -f "$APK_PATH" +echo "- Launching..." +am start -n "${PACKAGE_NAME}/.WebUIActivity" -e id "$MODID" &1 | cat +if [ $? -ne 0 ]; then + echo "Error: Failed to start application." + exit 1 +fi +echo "- Application launched successfully." \ No newline at end of file diff --git a/module/common/get_exclude-list.sh b/module/common/get_exclude-list.sh index 7878e7e..5838f17 100644 --- a/module/common/get_exclude-list.sh +++ b/module/common/get_exclude-list.sh @@ -2,30 +2,11 @@ MODPATH=${0%/*} OUTPUT="$MODPATH/exclude-list" -BBPATH="/data/adb/modules/busybox-ndk/system/*/busybox \ - /data/adb/magisk/busybox \ - /data/adb/ksu/bin/busybox \ - /data/adb/ap/bin/busybox" - -find_busybox() { - for path in $BBPATH; do - if [ -f "$path" ]; then - BUSYBOX="$path" - return 0 - fi - done - return 1 -} -# Check for wget binary -if ! command -v wget >/dev/null || grep -q "wget-curl" "$(command -v wget)"; then - if find_busybox; then - wget() { "$BUSYBOX" wget "$@"; } - else - echo "Error: busybox not found in specified paths." > "$OUTPUT" - exit 1 - fi -fi +. $MODPATH/util_func.sh + +find_busybox +check_wget # Fetch Xposed module package names wget --no-check-certificate -q -O - "https://modules.lsposed.org/modules.json" 2>/dev/null | \ diff --git a/module/common/util_func.sh b/module/common/util_func.sh new file mode 100644 index 0000000..2748096 --- /dev/null +++ b/module/common/util_func.sh @@ -0,0 +1,83 @@ +PACKAGE_NAME="io.github.a13e300.ksuwebui" +MODID="set-id" +BBPATH="/data/adb/modules/busybox-ndk/system/*/busybox \ + /data/adb/magisk/busybox \ + /data/adb/ksu/bin/busybox \ + /data/adb/ap/bin/busybox" + +find_busybox() { + for path in $BBPATH; do + if [ -f "$path" ]; then + BUSYBOX="$path" + return 0 + fi + done + return 1 +} + +check_wget() { + if ! command -v wget >/dev/null || grep -q "wget-curl" "$(command -v wget)"; then + if find_busybox; then + wget() { "$BUSYBOX" wget "$@"; } + else + echo "Error: busybox not found." > "$OUTPUT" + exit 1 + fi + fi +} + +download_webui() { + wget --no-check-certificate -P "$APK_DIR" "$URL" + if [ $? -ne 0 ]; then + echo "Error: APK download failed." + exit 1 + fi +} + +install_webui() { + pm install -r "$APK_PATH" &1 | cat + if [ $? -ne 0 ]; then + echo "Error: APK installation failed." + rm -f "$APK_PATH" + exit 1 + fi +} + +key_check() { + while true; do + key_check=$(/system/bin/getevent -qlc 1) + key_event=$(echo "$key_check" | awk '{ print $3 }' | grep 'KEY_') + key_status=$(echo "$key_check" | awk '{ print $4 }') + if [[ "$key_event" == *"KEY_"* && "$key_status" == "DOWN" ]]; then + keycheck="$key_event" + break + fi + done + while true; do + key_check=$(/system/bin/getevent -qlc 1) + key_event=$(echo "$key_check" | awk '{ print $3 }' | grep 'KEY_') + key_status=$(echo "$key_check" | awk '{ print $4 }') + if [[ "$key_event" == *"KEY_"* && "$key_status" == "UP" ]]; then + break + fi + done +} + +update_script() { + echo "**********************************************" + echo "- Starting script..." + echo "" + + if [[ ! -f "$SCRIPT_DIR/UpdateTargetList.sh" ]]; then + echo "! Script missing, please install module again." + echo "**********************************************" + exit 1 + else + . "$SCRIPT_DIR/UpdateTargetList.sh" + fi + + echo "**********************************************" + echo "" + echo "\(__All set!__)/" + echo "Exiting in 2 seconds..." +} diff --git a/module/customize.sh b/module/customize.sh index 8a160e4..29e2c7e 100644 --- a/module/customize.sh +++ b/module/customize.sh @@ -1,19 +1,5 @@ SKIPUNZIP=0 DEBUG=false - -ui_print " "; -if [ "$APATCH" ]; then - ui_print "- APatch:$APATCH_VER│$APATCH_VER_CODE" -elif [ "$KSU" ]; then - ui_print "- KSU:$KSU_KERNEL_VER_CODE│$KSU_VER_CODE" -elif [ "$MAGISK_VER_CODE" ]; then - ui_print "- Magisk:$MAGISK_VER│$MAGISK_VER_CODE" -else - ui_print " "; - ui_print "! recovery is not supported"; - abort " "; -fi - COMPATH="$MODPATH/common" TS="/data/adb/modules/tricky_store" SCRIPT_DIR="/data/adb/tricky_store" @@ -22,6 +8,21 @@ MODID=`grep_prop id $TMPDIR/module.prop` ORG_DIR="/data/adb/modules/$MODID" kb="$COMPATH/.default" +ui_print " "; +if [ "$APATCH" ]; then + ui_print "- APatch:$APATCH_VER│$APATCH_VER_CODE" + ACTION=false +elif [ "$KSU" ]; then + ui_print "- KSU:$KSU_KERNEL_VER_CODE│$KSU_VER_CODE" + ACTION=false +elif [ "$MAGISK_VER_CODE" ]; then + ui_print "- Magisk:$MAGISK_VER│$MAGISK_VER_CODE" +else + ui_print " "; + ui_print "! recovery is not supported"; + abort " "; +fi + if [ ! -d "$TS" ]; then ui_print "! Tricky store module is not installed" abort diff --git a/module/install_func.sh b/module/install_func.sh index b951600..fb639ad 100644 --- a/module/install_func.sh +++ b/module/install_func.sh @@ -6,12 +6,22 @@ initialize() { mv "$COMPATH/UpdateTargetList.sh" "$SCRIPT_DIR/UpdateTargetList.sh" sed -i "s|\"set-path\"|\"/data/adb/modules/$MODID/common/\"|" "$MODPATH/webroot/index.js" || { - ui_print "! Failed to replace path" + ui_print "! Failed to set path" + abort + } + sed -i "s|\"set-id\"|\"$MODID\"|" "$COMPATH/util_func.sh" || { + ui_print "! Failed to set id" abort } set_perm $SCRIPT_DIR/UpdateTargetList.sh 0 2000 0755 set_perm $COMPATH/get_exclude-list.sh 0 2000 0755 + set_perm $COMPATH/get_WebUI.sh 0 2000 0755 + + if [ "$ACTION" = "false" ]; then + rm -f "$MODPATH/action.sh" + rm -f "$COMPATH/get_WebUI.sh" + fi } add_exclude() { @@ -111,8 +121,8 @@ kb_operation() { else if [ -f "$ORG_DIR/common/origkeybox" ]; then mv "$ORG_DIR/common/origkeybox" "$COMPATH/origkeybox" - else - rm -f "$kb" fi + + rm -f "$kb" fi } \ No newline at end of file diff --git a/module/service.sh b/module/service.sh index cf63a91..6c984e8 100644 --- a/module/service.sh +++ b/module/service.sh @@ -21,7 +21,6 @@ if [ ! -f "$MODPATH/common/module.prop.orig" ]; then exit 1 fi -# Check availability of Tricky Store module if [ ! -d "$TS" ]; then sed -i 's/^description=.*/description=Tricky store is not installed/' "$MODPATH/module.prop" touch "$MODPATH/disable"