From b50e9aa086459c850ee49c21e5a242b3fcb707db Mon Sep 17 00:00:00 2001 From: KOWX712 Date: Sun, 24 Nov 2024 20:33:09 +0800 Subject: [PATCH] Optimize loading time x2 Reduce load time by preload skiplist in service.sh. --- module/common/get_extra.sh | 10 ++++++---- module/service.sh | 15 ++++++++++----- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/module/common/get_extra.sh b/module/common/get_extra.sh index 318b8cd..d02b5fe 100644 --- a/module/common/get_extra.sh +++ b/module/common/get_extra.sh @@ -1,6 +1,7 @@ #!/system/bin/sh MODPATH=${0%/*} +SKIPLIST="$MODPATH/skiplist" OUTPUT="$MODPATH/exclude-list" KBOUTPUT="$MODPATH/.extra" @@ -21,10 +22,11 @@ fi # Find xposed package name pm list packages -3 | awk -F: '{print $2}' | while read -r PACKAGE; do - pm path "$PACKAGE" | grep "base.apk" | awk -F: '{print $2}' | tr -d '\r' | \ - while read -r APK_PATH; do - aapt dump xmltree "$APK_PATH" AndroidManifest.xml 2>/dev/null | grep -qE "xposed.category|xposeddescription" && echo "$PACKAGE" >> "$OUTPUT" - done + if ! grep -Fq "$PACKAGE" "$SKIPLIST"; then + pm path "$PACKAGE" | grep "base.apk" | awk -F: '{print $2}' | tr -d '\r' | while read -r APK_PATH; do + aapt dump xmltree "$APK_PATH" AndroidManifest.xml 2>/dev/null | grep -qE "xposed.category|xposeddescription" && echo "$PACKAGE" >> "$OUTPUT" + done + fi done if [ "$skipkb" != "true" ]; then diff --git a/module/service.sh b/module/service.sh index a4fc8d0..6377ff7 100644 --- a/module/service.sh +++ b/module/service.sh @@ -1,5 +1,6 @@ MODPATH=${0%/*} -OUTPUT="$MODPATH/common/applist" +OUTPUT_APP="$MODPATH/common/applist" +OUTPUT_SKIP="$MODPATH/common/skiplist" TS="/data/adb/modules/tricky_store" SCRIPT_DIR="/data/adb/tricky_store" TSPA="/data/adb/modules/tsupport-advance" @@ -38,14 +39,18 @@ else until [ "$(getprop sys.boot_completed)" = "1" ]; do sleep 1 done - > "$OUTPUT" + echo "# This file is generated from service.sh to speed up load time" > "$OUTPUT_APP" + echo "# This file is generated from service.sh to speed up load time" > "$OUTPUT_SKIP" pm list packages -3 | awk -F: '{print $2}' | while read -r PACKAGE; do - APK_PATH=$(pm path "$PACKAGE" | grep "base.apk" | awk -F: '{print $2}' | tr -d '\r') + APK_PATH=$(pm path "$PACKAGE" | grep "base.apk" | awk -F: '{print $2}' | tr -d '\r') if [ -n "$APK_PATH" ]; then APP_NAME=$(aapt dump badging "$APK_PATH" 2>/dev/null | grep "application-label:" | sed "s/application-label://g; s/'//g") - echo "app-name: $APP_NAME, package-name: $PACKAGE" >> "$OUTPUT" + echo "app-name: $APP_NAME, package-name: $PACKAGE" >> "$OUTPUT_APP" else - echo "app-name: Unknown App package-name: $PACKAGE" >> "$OUTPUT" + echo "app-name: Unknown App package-name: $PACKAGE" >> "$OUTPUT_APP" + fi + if ! aapt dump xmltree "$APK_PATH" AndroidManifest.xml 2>/dev/null | grep -qE "xposed.category|xposeddescription"; then + echo "$PACKAGE" >> "$OUTPUT_SKIP" fi done . "$SCRIPT_DIR/UpdateTargetList.sh"