Update action button

Abandon action.sh in KernelSU and Apatch. Magisk: redirect to WebUI with action button if installed KSU WebUI. Add KSU WebUI standalone automated installation script (optional).
This commit is contained in:
KOWX712
2024-11-18 18:36:51 +08:00
parent 2e71b6512b
commit 383a7eeb5f
7 changed files with 168 additions and 54 deletions

View File

@@ -1,18 +1,30 @@
MODPATH="${0%/*}"
COMPATH="$MODPATH/common"
SCRIPT_DIR="/data/adb/tricky_store" SCRIPT_DIR="/data/adb/tricky_store"
echo "**********************************************" . "$COMPATH/util_func.sh"
echo "- Staring script..."
echo " "
if [ ! -f "$SCRIPT_DIR/UpdateTargetList.sh" ]; then if pm list packages | grep -q "$PACKAGE_NAME"; then
echo "! Script missing, please install module again" echo "- Launching KSU WebUI..."
echo "**********************************************" am start -n "${PACKAGE_NAME}/.WebUIActivity" -e id "$MODID"
exit 1
else else
. "$SCRIPT_DIR/UpdateTargetList.sh" SKIP_FILE="$SCRIPT_DIR/target_list_config/skipwebui"
fi if [ ! -f "$SKIP_FILE" ]; then
echo "- Do you want to install KSU WebUI standalone?"
echo " VOL [+]: YES"
echo " VOL [-]: NO"
echo "**********************************************" key_check
echo "\(__All set!__)/" if [[ "$keycheck" == "KEY_VOLUMEUP" ]]; then
echo "Exiting in 2 seconds..." echo "- Installing KSU WebUI..."
sleep 2 . "$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

View File

@@ -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" </dev/null 2>&1 | cat
if [ $? -ne 0 ]; then
echo "Error: Failed to start application."
exit 1
fi
echo "- Application launched successfully."

View File

@@ -2,30 +2,11 @@
MODPATH=${0%/*} MODPATH=${0%/*}
OUTPUT="$MODPATH/exclude-list" 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 . $MODPATH/util_func.sh
if ! command -v wget >/dev/null || grep -q "wget-curl" "$(command -v wget)"; then
if find_busybox; then find_busybox
wget() { "$BUSYBOX" wget "$@"; } check_wget
else
echo "Error: busybox not found in specified paths." > "$OUTPUT"
exit 1
fi
fi
# Fetch Xposed module package names # Fetch Xposed module package names
wget --no-check-certificate -q -O - "https://modules.lsposed.org/modules.json" 2>/dev/null | \ wget --no-check-certificate -q -O - "https://modules.lsposed.org/modules.json" 2>/dev/null | \

View File

@@ -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" </dev/null 2>&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..."
}

View File

@@ -1,19 +1,5 @@
SKIPUNZIP=0 SKIPUNZIP=0
DEBUG=false 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" COMPATH="$MODPATH/common"
TS="/data/adb/modules/tricky_store" TS="/data/adb/modules/tricky_store"
SCRIPT_DIR="/data/adb/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" ORG_DIR="/data/adb/modules/$MODID"
kb="$COMPATH/.default" 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 if [ ! -d "$TS" ]; then
ui_print "! Tricky store module is not installed" ui_print "! Tricky store module is not installed"
abort abort

View File

@@ -6,12 +6,22 @@ initialize() {
mv "$COMPATH/UpdateTargetList.sh" "$SCRIPT_DIR/UpdateTargetList.sh" mv "$COMPATH/UpdateTargetList.sh" "$SCRIPT_DIR/UpdateTargetList.sh"
sed -i "s|\"set-path\"|\"/data/adb/modules/$MODID/common/\"|" "$MODPATH/webroot/index.js" || { 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 abort
} }
set_perm $SCRIPT_DIR/UpdateTargetList.sh 0 2000 0755 set_perm $SCRIPT_DIR/UpdateTargetList.sh 0 2000 0755
set_perm $COMPATH/get_exclude-list.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() { add_exclude() {
@@ -111,8 +121,8 @@ kb_operation() {
else else
if [ -f "$ORG_DIR/common/origkeybox" ]; then if [ -f "$ORG_DIR/common/origkeybox" ]; then
mv "$ORG_DIR/common/origkeybox" "$COMPATH/origkeybox" mv "$ORG_DIR/common/origkeybox" "$COMPATH/origkeybox"
else
rm -f "$kb"
fi fi
rm -f "$kb"
fi fi
} }

View File

@@ -21,7 +21,6 @@ if [ ! -f "$MODPATH/common/module.prop.orig" ]; then
exit 1 exit 1
fi fi
# Check availability of Tricky Store module
if [ ! -d "$TS" ]; then if [ ! -d "$TS" ]; then
sed -i 's/^description=.*/description=Tricky store is not installed/' "$MODPATH/module.prop" sed -i 's/^description=.*/description=Tricky store is not installed/' "$MODPATH/module.prop"
touch "$MODPATH/disable" touch "$MODPATH/disable"