Invisible module full implementation

NOT STABLE, not tested on KSU
This commit is contained in:
KOWX712
2024-12-10 22:25:01 +08:00
parent dfe4a23f8a
commit ff6244b140
18 changed files with 47 additions and 84 deletions

View File

@@ -10,10 +10,10 @@ SCRIPT_DIR="/data/adb/tricky_store"
if pm list packages | grep -q "$PACKAGE_NAME"; then if pm list packages | grep -q "$PACKAGE_NAME"; then
echo "- Launching WebUI in KSUWebUIStandalone..." echo "- Launching WebUI in KSUWebUIStandalone..."
am start -n "${PACKAGE_NAME}/.WebUIActivity" -e id "$MODID" am start -n "${PACKAGE_NAME}/.WebUIActivity" -e id "tricky_store"
elif pm list packages | grep -q "com.dergoogler.mmrl"; then elif pm list packages | grep -q "com.dergoogler.mmrl"; then
echo "- Launching WebUI in MMRL WebUI..." echo "- Launching WebUI in MMRL WebUI..."
am start -n "com.dergoogler.mmrl/.ui.activity.webui.WebUIActivity" -e MOD_ID "$MODID" am start -n "com.dergoogler.mmrl/.ui.activity.webui.WebUIActivity" -e MOD_ID "tricky_store"
else else
echo "- Installing KSU WebUI..." echo "- Installing KSU WebUI..."
. "$COMPATH/get_WebUI.sh" . "$COMPATH/get_WebUI.sh"

View File

@@ -18,7 +18,7 @@ install_webui
echo "- Done." echo "- Done."
rm -f "$APK_PATH" rm -f "$APK_PATH"
echo "- Launching..." echo "- Launching..."
am start -n "${PACKAGE_NAME}/.WebUIActivity" -e id "$MODID" </dev/null 2>&1 | cat am start -n "${PACKAGE_NAME}/.WebUIActivity" -e id "tricky_store" </dev/null 2>&1 | cat
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Error: Failed to start application." echo "Error: Failed to start application."
exit 1 exit 1

View File

@@ -33,7 +33,7 @@ fi
ui_print "- Installing..." ui_print "- Installing..."
initialize initialize
ui_print "- Creating config directory..." ui_print "- Finalizing..."
find_config find_config
migrate_old_boot_hash migrate_old_boot_hash

View File

@@ -1,35 +1,24 @@
initialize() { initialize() {
if [ -f "$SCRIPT_DIR/UpdateTargetList.sh" ]; then # Cleanup left over
rm -f "$SCRIPT_DIR/UpdateTargetList.sh" [ -d "/data/adb/modules/$NEW_MODID" ] && rm -rf "/data/adb/modules/$NEW_MODID"
fi
if [ -d "/data/adb/modules/$NEW_MODID" ]; then
rm -rf "/data/adb/modules/$NEW_MODID"
fi
# Set permission
set_perm $COMPATH/get_extra.sh 0 2000 0755 set_perm $COMPATH/get_extra.sh 0 2000 0755
set_perm $COMPATH/get_WebUI.sh 0 2000 0755 set_perm $COMPATH/get_WebUI.sh 0 2000 0755
# Handdle Magisk/non-Magisk root manager
if [ "$ACTION" = "false" ]; then if [ "$ACTION" = "false" ]; then
rm -f "$MODPATH/action.sh" rm -f "$MODPATH/action.sh"
rm -f "$COMPATH/get_WebUI.sh" rm -f "$COMPATH/get_WebUI.sh"
echo "**********************************************" NEW_MODID="$MODID"
echo "- Tricky Addon's visibility in root manager?"
echo " VOL [+]: Visible"
echo " VOL [-]: Invisible (default)"
echo "**********************************************"
key_check
if [[ "$keycheck" == "KEY_VOLUMEUP" ]]; then
echo "- Setting to visible..."
rm -rf "$COMPATH/temp"
NEW_MODID="$MODID"
else
tmp_dir
fi
else else
tmp_dir mkdir -p "$COMPATH/temp/common"
cp "$COMPATH/.default" "$COMPATH/temp/common/.default"
cp "$MODPATH/uninstall.sh" "$COMPATH/temp/uninstall.sh"
fi fi
sed -i "s|\"set-path\"|\"/data/adb/modules/$NEW_MODID/\"|" "$MODPATH/webroot/index.js" || {
#Set specific path
sed -i "s|\"set-path\"|\"/data/adb/modules/$NEW_MODID/\"|" "$MODPATH/webui/index.js" || {
ui_print "! Failed to set path" ui_print "! Failed to set path"
abort abort
} }
@@ -38,22 +27,17 @@ initialize() {
abort abort
} }
# Set aapt binary
cp "$MODPATH/module.prop" "$COMPATH/temp/module.prop"
mv "$MODPATH/bin/$(getprop ro.product.cpu.abi)/aapt" "$COMPATH/aapt" mv "$MODPATH/bin/$(getprop ro.product.cpu.abi)/aapt" "$COMPATH/aapt"
set_perm $COMPATH/aapt 0 2000 0755 set_perm $COMPATH/aapt 0 2000 0755
rm -rf "$MODPATH/bin" rm -rf "$MODPATH/bin"
} }
tmp_dir() {
mkdir -p "$COMPATH/temp/common"
cp "$COMPATH/.default" "$COMPATH/temp/common/.default"
cp "$MODPATH/module.prop" "$COMPATH/temp/module.prop"
cp "$MODPATH/uninstall.sh" "$COMPATH/temp/uninstall.sh"
}
find_config() { find_config() {
if [ -d "$CONFIG_DIR" ]; then # Remove legacy setup
rm -rf "$CONFIG_DIR" [ -f "$SCRIPT_DIR/UpdateTargetList.sh" ] && rm -f "$SCRIPT_DIR/UpdateTargetList.sh"
fi [ -d "$CONFIG_DIR" ] && rm -rf "$CONFIG_DIR"
} }
migrate_old_boot_hash() { migrate_old_boot_hash() {
@@ -63,23 +47,3 @@ migrate_old_boot_hash() {
rm -f "$COMPATH/boot_hash" rm -f "$COMPATH/boot_hash"
fi 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
}

View File

@@ -6,18 +6,13 @@ while [ -z "$(ls -A /data/adb/modules/)" ]; do
done done
if [ ! -d "$TS" ] || [ -f "$TS/remove" ]; then if [ ! -d "$TS" ] || [ -f "$TS/remove" ]; then
if [ -d "$MODPATH/common/temp" ]; then if [ -f "$MODPATH/action.sh" ]; then
mkdir -p "/data/adb/modules/TA_utl" [ -d "/data/adb/modules/TA_utl" ] && rm -rf "/data/adb/modules/TA_utl"
cp -rf "$MODPATH/common/temp"/* "/data/adb/modules/TA_utl/" cp -rf "$MODPATH/common/temp" "/data/adb/modules/TA_utl"
touch "/data/adb/modules/TA_utl/remove" touch "/data/adb/modules/TA_utl/remove"
else else
touch "$MODPATH/remove" touch "$MODPATH/remove"
fi fi
exit 1
fi
if [ ! -d "$MODPATH/common/temp" ]; then
rm -rf "/data/adb/modules/.TA_utl"
fi fi
rm -f "$TS/action.sh" rm -f "$TS/action.sh"

View File

@@ -1,10 +1,12 @@
MODPATH=${0%/*} MODPATH=${0%/*}
HIDE_DIR="/data/adb/modules/.TA_utl" HIDE_DIR="/data/adb/modules/.TA_utl"
TS="/data/adb/modules/tricky_store" TS="/data/adb/modules/tricky_store"
SCRIPT_DIR="/data/adb/tricky_store"
TSPA="/data/adb/modules/tsupport-advance" TSPA="/data/adb/modules/tsupport-advance"
aapt() { "$MODPATH/common/aapt" "$@"; } aapt() { "$MODPATH/common/aapt" "$@"; }
# Reset verified Boot Hash
hash_value=$(grep -v '^#' "/data/adb/boot_hash" | tr -d '[:space:]') hash_value=$(grep -v '^#' "/data/adb/boot_hash" | tr -d '[:space:]')
if [ -n "$hash_value" ]; then if [ -n "$hash_value" ]; then
resetprop -n ro.boot.vbmeta.digest "$hash_value" resetprop -n ro.boot.vbmeta.digest "$hash_value"
@@ -17,21 +19,23 @@ elif [ ! -d "$TSPA" ] && [ -f "/storage/emulated/0/stop-tspa-auto-target" ]; the
rm -f "/storage/emulated/0/stop-tspa-auto-target" rm -f "/storage/emulated/0/stop-tspa-auto-target"
fi fi
if [ -d "$MODPATH/common/temp" ]; then # Hide module
if [ "$KSU" ] || [ "$APATCH" ]; then if [ -f "$MODPATH/action.sh" ]; then
rm -f "$MODPATH/module.prop"
fi
if [[ "$MODPATH" != "$HIDE_DIR" ]]; then if [[ "$MODPATH" != "$HIDE_DIR" ]]; then
rm -rf "$HIDE_DIR" rm -rf "$HIDE_DIR"
mv "$MODPATH" "$HIDE_DIR" mv "$MODPATH" "$HIDE_DIR"
fi fi
MODPATH="$HIDE_DIR" MODPATH="$HIDE_DIR"
if [ -f "$MODPATH/action.sh" ]; then elif [ -d "$HIDE_DIR" ]; then
ln -s "$MODPATH/action.sh" "$TS/action.sh" rm -rf "$HIDE_DIR"
fi
ln -s "$MODPATH/webroot" "$TS/webroot"
fi fi
rm -f "$MODPATH/module.prop"
# Symlink tricky store
[ -f "$MODPATH/action.sh" ] && ln -s "$MODPATH/action.sh" "$TS/action.sh"
ln -s "$MODPATH/webui" "$TS/webroot"
# Optimization
OUTPUT_APP="$MODPATH/common/applist" OUTPUT_APP="$MODPATH/common/applist"
OUTPUT_SKIP="$MODPATH/common/skiplist" OUTPUT_SKIP="$MODPATH/common/skiplist"

View File

@@ -11,10 +11,7 @@ fi
rm -rf "/data/adb/modules/.TA_utl" rm -rf "/data/adb/modules/.TA_utl"
rm -f "/data/adb/boot_hash" rm -f "/data/adb/boot_hash"
if [ -d "$TS" ]; then if [ -d "$TS" ]; then
if [ -f "$TS/action.sh" ]; then rm -f "$TS/action.sh"
rm -f "$TS/action.sh" rm -rf "$TS/webroot"
else
rm -rf "$TS/webroot"
fi
fi fi
xxd -r -p "$MODPATH/common/.default" | base64 -d > "$SCRIPT_DIR/keybox.xml" xxd -r -p "$MODPATH/common/.default" | base64 -d > "$SCRIPT_DIR/keybox.xml"

View File

@@ -470,6 +470,7 @@ async function extrakb() {
const sourcePath = `${basePath}common/.extra`; const sourcePath = `${basePath}common/.extra`;
const destinationPath = "/data/adb/tricky_store/keybox.xml"; const destinationPath = "/data/adb/tricky_store/keybox.xml";
try { try {
await new Promise(resolve => setTimeout(resolve, 300));
const fileExists = await execCommand(`[ -f ${sourcePath} ] && echo "exists"`); const fileExists = await execCommand(`[ -f ${sourcePath} ] && echo "exists"`);
if (fileExists.trim() !== "exists") { if (fileExists.trim() !== "exists") {
throw new Error(".extra file not found"); throw new Error(".extra file not found");
@@ -713,12 +714,14 @@ document.querySelector(".uninstall-container").addEventListener("click", async (
try { try {
await execCommand(` await execCommand(`
su -c " su -c "
if [ -d '${basePath}common/temp/' ]; then if [ -f '${basePath}action.sh' ]; then
mkdir -p '/data/adb/modules/TA_utl' && if [ -d "/data/adb/modules/TA_utl" ]; then
cp -rf '${basePath}common/temp/'* '/data/adb/modules/TA_utl/' && rm -rf "/data/adb/modules/TA_utl"
fi
cp -rf '${basePath}common/temp' '/data/adb/modules/TA_utl' &&
touch '/data/adb/modules/TA_utl/remove' touch '/data/adb/modules/TA_utl/remove'
else else
touch '/data/adb/modules/TA_utl/remove' touch '${basePath}remove'
fi fi
" "
`); `);

View File

@@ -1,5 +1,5 @@
# Translation Guide # Translation Guide
## Fix Translation Error ## Fix Bad Translation
1. Fork this repository. 1. Fork this repository.
2. Find your language string file in `/module/webroot/locales/`. 2. Find your language string file in `/module/webroot/locales/`.
3. Edit the string value with translated incorrectly. 3. Edit the string value with translated incorrectly.
@@ -8,7 +8,7 @@
--- ---
## Add a New Language ## Add a New Language
### Simple ### Simple
- Contact me in Telegram to add a new translation langauge for you. - Contact me in Telegram to add a new translation langauge.
### Advanced ### Advanced
1. Fork this repository. 1. Fork this repository.

View File

Before

Width:  |  Height:  |  Size: 725 B

After

Width:  |  Height:  |  Size: 725 B