fix: handle condition when app name contain newline charater

This commit is contained in:
KOWX712
2025-07-06 02:24:20 +08:00
parent 311124f3cf
commit 023af806b1
2 changed files with 6 additions and 6 deletions

View File

@@ -108,12 +108,12 @@ echo "# This file is generated from service.sh to speed up load time" > "$OUTPUT
# Get list of third party apps and specific system apps, then cache app name # Get list of third party apps and specific system apps, then cache app name
# Check Xposed module # Check Xposed module
{ {
pm list packages -3 | awk -F: '{print $2}' 2>/dev/null pm list packages -3 </dev/null 2>&1 | cat | awk -F: '{print $2}' 2>/dev/null
pm list packages -s | awk -F: '{print $2}' | grep -Ex "$SYSTEM_APP" 2>/dev/null || true pm list packages -s </dev/null 2>&1 | cat | awk -F: '{print $2}' | grep -Ex "$SYSTEM_APP" 2>/dev/null || true
} | while read -r PACKAGE; do } | while read -r PACKAGE; do
# Get APK path for the package # Get APK path for the package
APK_PATH=$(pm path "$PACKAGE" 2>/dev/null | head -n1 | awk -F: '{print $2}') APK_PATH=$(pm path "$PACKAGE" 2>/dev/null | head -n1 | awk -F: '{print $2}')
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" | tr -d '\n')
[ -z "$APP_NAME" ] && APP_NAME="$PACKAGE" [ -z "$APP_NAME" ] && APP_NAME="$PACKAGE"
echo " {\"app_name\": \"$APP_NAME\", \"package_name\": \"$PACKAGE\"}," >> "$OUTPUT_APP" echo " {\"app_name\": \"$APP_NAME\", \"package_name\": \"$PACKAGE\"}," >> "$OUTPUT_APP"

View File

@@ -59,9 +59,9 @@ export async function fetchAppList() {
output.on('exit', async () => { output.on('exit', async () => {
// Create appEntries array contain { appName, packageName } // Create appEntries array contain { appName, packageName }
appEntries = await Promise.all(installedPackages.map(async (packageName) => { appEntries = await Promise.all(installedPackages.map(async (packageName) => {
if (appNameMap[packageName]) { if (appNameMap[packageName] && appNameMap[packageName].trim() !== '') {
return { return {
appName: appNameMap[packageName], appName: appNameMap[packageName].trim(),
packageName packageName
}; };
} }
@@ -84,7 +84,7 @@ export async function fetchAppList() {
{ env: { PATH: `$PATH:${basePath}/common:/data/data/com.termux/files/usr/bin` } }); { env: { PATH: `$PATH:${basePath}/common:/data/data/com.termux/files/usr/bin` } });
output.stdout.on('data', (data) => { output.stdout.on('data', (data) => {
resolve({ resolve({
appName: data, appName: data.trim() === '' ? packageName : data.trim(),
packageName packageName
}); });
}); });