diff --git a/module/action.sh b/module/action.sh index 14279b2..09e9cdb 100644 --- a/module/action.sh +++ b/module/action.sh @@ -3,70 +3,67 @@ ########################################### MODPATH="/data/adb/modules/.TA_utl" -COMPATH="$MODPATH/common" +ORG_PATH="$PATH" +TMP_DIR="$MODPATH/common/tmp" SCRIPT_DIR="/data/adb/tricky_store" -URL="https://github.com/5ec1cff/KsuWebUIStandalone/releases/download/v1.0/KsuWebUI-1.0-34-release.apk" -APK_DIR="$COMPATH/tmp" -BBPATH="/data/adb/magisk/busybox \ -/data/adb/ksu/bin/busybox \ -/data/adb/ap/bin/busybox \ -/data/adb/modules/busybox-ndk/system/*/busybox" +APK_PATH="$TMP_DIR/base.apk" -check_wget() { - for path in $BBPATH; do - [ -f "$path" ] && BUSYBOX="$path" && break - done - if ! command -v wget >/dev/null || grep -q "wget-curl" "$(command -v wget)"; then - if [ -n "$BUSYBOX" ]; then - wget() { "$BUSYBOX" wget "$@"; } +abort() { + echo "$1" + exit 1 +} + +download() { + local type=${1#--} + local url=$2 + local output=$3 + + PATH=/data/adb/magisk:/data/data/com.termux/files/usr/bin:$PATH + if command -v curl >/dev/null 2>&1; then + if [ "$type" = "output" ]; then + timeout 10 curl -Lo "$output" "$url" else - exit 1 + timeout 2 curl -s "$url" + fi + else + if [ "$type" = "output" ]; then + timeout 10 busybox wget --no-check-certificate -qO "$output" "$url" + else + timeout 2 busybox wget --no-check-certificate -qO- "$url" fi fi + PATH="$ORG_PATH" } get_webui() { - echo "- Downloading the WebUI APK..." - check_wget - if ! wget --no-check-certificate -P "$APK_DIR" "$URL"; then - echo "! Error: APK download failed." - exit 1 - fi - - 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 "- Downloading KSU WebUI Standalone..." + RESPONSE=$(download --fetch "https://api.github.com/repos/5ec1cff/KsuWebUIStandalone/releases/latest") + URL=$(echo "$RESPONSE" | grep -o '"browser_download_url": "[^"]*"' | cut -d '"' -f 4) + download --output "$URL" "$APK_PATH" || abort "! Error: APK download failed, please check your internet connection." echo "- Installing..." - if ! pm install -r "$APK_PATH" >/dev/null 2>&1; then - echo "! Error: APK installation failed." + pm install -r "$APK_PATH" || { rm -f "$APK_PATH" - exit 1 - fi + abort "! Error: APK installation failed." + } echo "- Done." rm -f "$APK_PATH" - echo "- Launching..." - if ! am start -n "io.github.a13e300.ksuwebui/.WebUIActivity" -e id "tricky_store"; then - echo "! Error: WebUI launch failed." - exit 1 - fi - - echo "- Application launched successfully." + echo "- Launching WebUI..." + am start -n "io.github.a13e300.ksuwebui/.WebUIActivity" -e id "tricky_store" || abort "! Error: WebUI launch failed." } -# Lunch KSUWebUI standalone or MMRL, install KSUWebUI standalone if both are not installed -if pm list packages | grep -q "io.github.a13e300.ksuwebui"; then +# Launch KSUWebUI standalone or MMRL, install KSUWebUI standalone if both are not installed +if pm path io.github.a13e300.ksuwebui >/dev/null 2>&1; then echo "- Launching WebUI in KSUWebUIStandalone..." am start -n "io.github.a13e300.ksuwebui/.WebUIActivity" -e id "tricky_store" -elif pm list packages | grep -q "com.dergoogler.mmrl"; then +elif pm path com.dergoogler.mmrl >/dev/null 2>&1; then echo "- Launching WebUI in MMRL WebUI..." am start -n "com.dergoogler.mmrl/.ui.activity.webui.WebUIActivity" -e MOD_ID "tricky_store" else - echo "- Installing KSU WebUI..." + echo "! No WebUI app found" get_webui fi + +echo "- WebUI launched successfully." \ No newline at end of file diff --git a/module/common/get_extra.sh b/module/common/get_extra.sh index 7f22df3..def48e4 100644 --- a/module/common/get_extra.sh +++ b/module/common/get_extra.sh @@ -1,6 +1,6 @@ #!/bin/sh -PATH=/data/adb/ap/bin:/data/adb/ksu/bin:/data/adb/magisk:/data/data/com.termux/files/usr/bin:$PATH MODPATH=${0%/*} +ORG_PATH="$PATH" SKIPLIST="$MODPATH/tmp/skiplist" OUTPUT="$MODPATH/tmp/exclude-list" KBOUTPUT="$MODPATH/tmp/.extra" @@ -11,15 +11,29 @@ aapt() { "$MODPATH/aapt" "$@"; } # wget = low pref, no ssl. # curl, has ssl on android, we use it if found download() { + local type=${1#--} + local url=$2 + local output=$3 + + PATH=/data/adb/ap/bin:/data/adb/ksu/bin:/data/adb/magisk:/data/data/com.termux/files/usr/bin:$PATH if command -v curl >/dev/null 2>&1; then - timeout 3 curl -s "$1" + if [ "$type" = "output" ]; then + timeout 10 curl -Lo "$output" "$url" + else + timeout 3 curl -s "$url" + fi else - timeout 3 busybox wget --no-check-certificate -qO - "$1" + if [ "$type" = "output" ]; then + timeout 10 busybox wget --no-check-certificate -qO "$output" "$url" + else + timeout 3 busybox wget --no-check-certificate -qO- "$url" + fi fi + PATH="$ORG_PATH" } get_kb() { - download "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/.extra" > "$KBOUTPUT" + download --output "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/.extra" "$KBOUTPUT" [ -s "$KBOUTPUT" ] || rm -f "$KBOUTPUT" } @@ -36,13 +50,14 @@ get_xposed() { get_unnecessary() { if [ ! -s "$OUTPUT" ] || [ ! -f "$OUTPUT" ]; then - download "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/more-exclude.json" 2>/dev/null | grep -o '"package-name": *"[^"]*"' | awk -F'"' '{print $4}' >"$OUTPUT" + JSON=$(download --fetch "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/more-exclude.json") || exit 1 + echo "$JSON" | grep -o '"package-name": *"[^"]*"' | awk -F'"' '{print $4}' >"$OUTPUT" fi get_xposed } check_update() { - JSON=$(download "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/update.json") || exit 1 + JSON=$(download --fetch "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/update.json") || exit 1 REMOTE_VERSION=$(echo "$JSON" | grep -o '"versionCode": *[0-9]*' | awk -F: '{print $2}' | tr -d ' ') LOCAL_VERSION=$(grep -o 'versionCode=[0-9]*' "$MODPATH/update/module.prop" | awk -F= '{print $2}') if [ "$REMOTE_VERSION" -gt "$LOCAL_VERSION" ] && [ ! -f "/data/adb/modules/TA_utl/update" ]; then @@ -67,11 +82,11 @@ uninstall() { } get_update() { - JSON=$(download "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/update.json") || exit 1 + JSON=$(download --fetch "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/update.json") || exit 1 ZIP_URL=$(echo "$JSON" | grep -o '"zipUrl": "[^"]*"' | cut -d '"' -f 4) || exit 1 CHANGELOG_URL=$(echo "$JSON" | grep -o '"changelog": "[^"]*"' | cut -d '"' -f 4) || exit 1 - busybox wget --no-check-certificate -qO "$MODPATH/tmp/module.zip" "$ZIP_URL" || exit 1 - busybox wget --no-check-certificate -qO "$MODPATH/tmp/changelog.md" "$CHANGELOG_URL" || exit 1 + download --output "$ZIP_URL" "$MODPATH/tmp/module.zip" || exit 1 + download --output "$CHANGELOG_URL" "$MODPATH/tmp/changelog.md" || exit 1 } install_update() {