script opt

This commit is contained in:
KOWX712
2025-02-07 10:55:54 +08:00
parent bb7573f5dd
commit b81d95d31f
4 changed files with 46 additions and 28 deletions

3
.gitattributes vendored
View File

@@ -3,8 +3,9 @@
*.prop text eol=lf *.prop text eol=lf
*.md text eol=lf *.md text eol=lf
*.xml text eol=lf *.xml text eol=lf
*.json text eol=lf
.extra text eol=lf
META-INF/** text eol=lf META-INF/** text eol=lf
# Denote all files that are truly binary and should not be modified. # Denote all files that are truly binary and should not be modified.
common/addon/**/tools/** binary
module/bin/**/** binary module/bin/**/** binary

View File

@@ -14,22 +14,22 @@ abort() {
} }
download() { download() {
local type=${1#--} download_type=${1#--}
local url=$2 download_url=$2
local output=$3 download_output=$3
PATH=/data/adb/magisk:/data/data/com.termux/files/usr/bin:$PATH PATH=/data/adb/magisk:/data/data/com.termux/files/usr/bin:$PATH
if command -v curl >/dev/null 2>&1; then if command -v curl >/dev/null 2>&1; then
if [ "$type" = "output" ]; then if [ "$download_type" = "output" ]; then
timeout 10 curl -Lo "$output" "$url" timeout 10 curl -Lo "$download_output" "$download_url"
else else
timeout 2 curl -s "$url" timeout 2 curl -s "$download_url"
fi fi
else else
if [ "$type" = "output" ]; then if [ "$download_type" = "output" ]; then
timeout 10 busybox wget --no-check-certificate -qO "$output" "$url" timeout 10 busybox wget --no-check-certificate -qO "$download_output" "$download_url"
else else
timeout 2 busybox wget --no-check-certificate -qO- "$url" timeout 2 busybox wget --no-check-certificate -qO- "$download_url"
fi fi
fi fi
PATH="$ORG_PATH" PATH="$ORG_PATH"

View File

@@ -5,28 +5,35 @@ SKIPLIST="$MODPATH/tmp/skiplist"
OUTPUT="$MODPATH/tmp/exclude-list" OUTPUT="$MODPATH/tmp/exclude-list"
KBOUTPUT="$MODPATH/tmp/.extra" KBOUTPUT="$MODPATH/tmp/.extra"
if [ "$MODPATH" = "/data/adb/modules/.TA_utl/common" ]; then
MODDIR="/data/adb/modules/.TA_utl"
MAGISK="true"
else
MODDIR="/data/adb/modules/TA_utl"
fi
aapt() { "$MODPATH/aapt" "$@"; } aapt() { "$MODPATH/aapt" "$@"; }
# probe for downloaders # probe for downloaders
# wget = low pref, no ssl. # wget = low pref, no ssl.
# curl, has ssl on android, we use it if found # curl, has ssl on android, we use it if found
download() { download() {
local type=${1#--} download_type=${1#--}
local url=$2 download_url=$2
local output=$3 download_output=$3
PATH=/data/adb/ap/bin:/data/adb/ksu/bin:/data/adb/magisk:/data/data/com.termux/files/usr/bin:$PATH 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 if command -v curl >/dev/null 2>&1; then
if [ "$type" = "output" ]; then if [ "$download_type" = "output" ]; then
timeout 10 curl -Lo "$output" "$url" timeout 10 curl -Lo "$download_output" "$download_url"
else else
timeout 3 curl -s "$url" timeout 3 curl -s "$download_url"
fi fi
else else
if [ "$type" = "output" ]; then if [ "$download_type" = "output" ]; then
timeout 10 busybox wget --no-check-certificate -qO "$output" "$url" timeout 10 busybox wget --no-check-certificate -qO "$download_output" "$download_url"
else else
timeout 3 busybox wget --no-check-certificate -qO- "$url" timeout 3 busybox wget --no-check-certificate -qO- "$download_url"
fi fi
fi fi
PATH="$ORG_PATH" PATH="$ORG_PATH"
@@ -57,11 +64,12 @@ get_unnecessary() {
} }
check_update() { check_update() {
[ -f "$MODDIR/disable" ] && rm -f "$MODDIR/disable"
JSON=$(download --fetch "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 ' ') 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}') 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 if [ "$REMOTE_VERSION" -gt "$LOCAL_VERSION" ] && [ ! -f "/data/adb/modules/TA_utl/update" ]; then
if [ "$MODPATH" = "/data/adb/modules/.TA_utl/common" ]; then if [ "$MAGISK" = "true" ]; then
[ -d "/data/adb/modules/TA_utl" ] && rm -rf "/data/adb/modules/TA_utl" [ -d "/data/adb/modules/TA_utl" ] && rm -rf "/data/adb/modules/TA_utl"
cp -rf "$MODPATH/update" "/data/adb/modules/TA_utl" cp -rf "$MODPATH/update" "/data/adb/modules/TA_utl"
else else
@@ -72,8 +80,7 @@ check_update() {
} }
uninstall() { uninstall() {
if [ "$MODPATH" = "/data/adb/modules/.TA_utl/common" ]; then if [ "$MAGISK" = "true" ]; then
[ -d "/data/adb/modules/TA_utl" ] && rm -rf "/data/adb/modules/TA_utl"
cp -rf "$MODPATH/update" "/data/adb/modules/TA_utl" cp -rf "$MODPATH/update" "/data/adb/modules/TA_utl"
else else
cp -f "$MODPATH/update/module.prop" "/data/adb/modules/TA_utl/module.prop" cp -f "$MODPATH/update/module.prop" "/data/adb/modules/TA_utl/module.prop"
@@ -99,6 +106,7 @@ install_update() {
else else
exit 1 exit 1
fi fi
rm -f "$MODPATH/tmp/module.zip" rm -f "$MODPATH/tmp/module.zip"
rm -f "$MODPATH/tmp/changelog.md" rm -f "$MODPATH/tmp/changelog.md"
} }

View File

@@ -73,32 +73,41 @@ fi
# Optimization # Optimization
OUTPUT_APP="$MODPATH/common/tmp/applist" OUTPUT_APP="$MODPATH/common/tmp/applist"
OUTPUT_SKIP="$MODPATH/common/tmp/skiplist" OUTPUT_SKIP="$MODPATH/common/tmp/skiplist"
OUTPUT_TMP="$MODPATH/common/tmp/tmp_applist"
until [ "$(getprop sys.boot_completed)" = "1" ]; do until [ "$(getprop sys.boot_completed)" = "1" ]; do
sleep 1 sleep 1
done done
# Create temporary directory
mkdir -p "$MODPATH/common/tmp" mkdir -p "$MODPATH/common/tmp"
pm list packages -3 2>/dev/null | awk -F: '{print $2}' > "$OUTPUT_TMP"
# Additional system apps
SYSTEM_APP="com.google.android.gms|com.google.android.gsf|com.android.vending" SYSTEM_APP="com.google.android.gms|com.google.android.gsf|com.android.vending"
pm list package -s | awk -F: '{print $2}' | grep -Ex "$SYSTEM_APP" >> "$OUTPUT_TMP"
# Initialize cache files to save app list and skip list
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_APP"
echo "# This file is generated from service.sh to speed up load time" > "$OUTPUT_SKIP" echo "# This file is generated from service.sh to speed up load time" > "$OUTPUT_SKIP"
cat "$OUTPUT_TMP" | while read -r PACKAGE; do
# Get list of third party apps and specific system apps, then cache app name
# Check Xposed module
{
pm list packages -3 2>/dev/null
pm list package -s | grep -E "$SYSTEM_APP"
} | awk -F: '{print $2}' | while read -r PACKAGE; do
# Get APK path for the package
APK_PATH=$(pm path "$PACKAGE" 2>/dev/null | grep "base.apk" | awk -F: '{print $2}' | tr -d '\r') APK_PATH=$(pm path "$PACKAGE" 2>/dev/null | grep "base.apk" | awk -F: '{print $2}' | tr -d '\r')
[ -z "$APK_PATH" ] && APK_PATH=$(pm path "$PACKAGE" 2>/dev/null | grep ".apk" | awk -F: '{print $2}' | tr -d '\r') [ -z "$APK_PATH" ] && APK_PATH=$(pm path "$PACKAGE" 2>/dev/null | grep ".apk" | awk -F: '{print $2}' | tr -d '\r')
if [ -n "$APK_PATH" ]; then if [ -n "$APK_PATH" ]; then
# Extract app name and save package info
APP_NAME=$(aapt dump badging "$APK_PATH" 2>/dev/null | grep "application-label:" | sed "s/application-label://g; s/'//g") 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_APP" echo "app-name: $APP_NAME, package-name: $PACKAGE" >> "$OUTPUT_APP"
else else
echo "app-name: Unknown App package-name: $PACKAGE" >> "$OUTPUT_APP" echo "app-name: Unknown App package-name: $PACKAGE" >> "$OUTPUT_APP"
fi fi
# Check if app is Xposed module and add to skip list if not
if ! aapt dump xmltree "$APK_PATH" AndroidManifest.xml 2>/dev/null | grep -qE "xposed.category|xposeddescription"; then if ! aapt dump xmltree "$APK_PATH" AndroidManifest.xml 2>/dev/null | grep -qE "xposed.category|xposeddescription"; then
echo "$PACKAGE" >> "$OUTPUT_SKIP" echo "$PACKAGE" >> "$OUTPUT_SKIP"
fi fi
done done
rm -f "$OUTPUT_TMP"