You've already forked Tricky-Addon-Update-Target-List
mirror of
https://github.com/KOWX712/Tricky-Addon-Update-Target-List.git
synced 2025-09-06 06:37:09 +00:00
Fix update operation in ksu/apatch
Simplified the code, better readability.
This commit is contained in:
@@ -27,7 +27,7 @@ Telegram channel: [KOW's Little World](https://t.me/kowchannel)
|
|||||||
- New way to detect Xposed module, now can catch all Xposed module apk package name in Deselect Unnecessary option, feedback in [Telegram](https://t.me/kowchannel) or [create issue](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/issues) if missed any.
|
- New way to detect Xposed module, now can catch all Xposed module apk package name in Deselect Unnecessary option, feedback in [Telegram](https://t.me/kowchannel) or [create issue](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/issues) if missed any.
|
||||||
- **Initial support for multiple languages**
|
- **Initial support for multiple languages**
|
||||||
- Language available: **en-US**, **ru-RU**, **tl-PH**, **zh-CN**, **zh-TW**
|
- Language available: **en-US**, **ru-RU**, **tl-PH**, **zh-CN**, **zh-TW**
|
||||||
- Add language or fix translation error? [Read here](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/tree/master/module/webroot/locales/A-translate.md).
|
- Add language or fix translation error? [Read here](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/tree/master/module/webui/locales/A-translate.md).
|
||||||
|
|
||||||
### v2.6-beta.3
|
### v2.6-beta.3
|
||||||
- Check in [release notes](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/releases/tag/v2.6-beta.3).
|
- Check in [release notes](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/releases/tag/v2.6-beta.3).
|
||||||
|
|||||||
@@ -5,16 +5,68 @@
|
|||||||
MODPATH="/data/adb/modules/.TA_utl"
|
MODPATH="/data/adb/modules/.TA_utl"
|
||||||
COMPATH="$MODPATH/common"
|
COMPATH="$MODPATH/common"
|
||||||
SCRIPT_DIR="/data/adb/tricky_store"
|
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"
|
||||||
|
|
||||||
. "$COMPATH/util_func.sh"
|
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 "$@"; }
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
if pm list packages | grep -q "$PACKAGE_NAME"; then
|
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 "- Installing..."
|
||||||
|
if ! pm install -r "$APK_PATH" >/dev/null 2>&1; then
|
||||||
|
echo "! Error: APK installation failed."
|
||||||
|
rm -f "$APK_PATH"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
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."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Lunch KSUWebUI standalone or MMRL, install KSUWebUI standalone if both are not installed
|
||||||
|
if pm list packages | grep -q "io.github.a13e300.ksuwebui"; then
|
||||||
echo "- Launching WebUI in KSUWebUIStandalone..."
|
echo "- Launching WebUI in KSUWebUIStandalone..."
|
||||||
am start -n "${PACKAGE_NAME}/.WebUIActivity" -e id "tricky_store"
|
am start -n "io.github.a13e300.ksuwebui/.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 "tricky_store"
|
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"
|
get_webui
|
||||||
fi
|
fi
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
URL="https://github.com/5ec1cff/KsuWebUIStandalone/releases/download/v1.0/KsuWebUI-1.0-34-release.apk"
|
|
||||||
APK_DIR="$COMPATH"
|
|
||||||
|
|
||||||
check_wget
|
|
||||||
|
|
||||||
echo "- Downloading the WebUI apk..."
|
|
||||||
download_webui
|
|
||||||
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 "- Installing..."
|
|
||||||
install_webui
|
|
||||||
echo "- Done."
|
|
||||||
rm -f "$APK_PATH"
|
|
||||||
echo "- Launching..."
|
|
||||||
am start -n "${PACKAGE_NAME}/.WebUIActivity" -e id "tricky_store" </dev/null 2>&1 | cat
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Error: Failed to start application."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "- Application launched successfully."
|
|
||||||
@@ -1,20 +1,37 @@
|
|||||||
#!/system/bin/sh
|
#!/system/bin/sh
|
||||||
|
|
||||||
MODPATH=${0%/*}
|
MODPATH=${0%/*}
|
||||||
SKIPLIST="$MODPATH/skiplist"
|
SKIPLIST="$MODPATH/tmp/skiplist"
|
||||||
OUTPUT="$MODPATH/exclude-list"
|
OUTPUT="$MODPATH/tmp/exclude-list"
|
||||||
KBOUTPUT="$MODPATH/.extra"
|
KBOUTPUT="$MODPATH/tmp/.extra"
|
||||||
|
BBPATH="/data/adb/magisk/busybox \
|
||||||
|
/data/adb/ksu/bin/busybox \
|
||||||
|
/data/adb/ap/bin/busybox \
|
||||||
|
/data/adb/modules/busybox-ndk/system/*/busybox"
|
||||||
|
|
||||||
. $MODPATH/util_func.sh
|
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 "$@"; }
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
check_wget
|
aapt() { "$MODPATH/aapt" "$@"; }
|
||||||
|
|
||||||
get_kb() {
|
get_kb() {
|
||||||
|
check_wget
|
||||||
wget --no-check-certificate -qO "$KBOUTPUT" "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/.extra"
|
wget --no-check-certificate -qO "$KBOUTPUT" "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/.extra"
|
||||||
[ -s "$KBOUTPUT" ] || rm -f "$KBOUTPUT"
|
[ -s "$KBOUTPUT" ] || rm -f "$KBOUTPUT"
|
||||||
}
|
}
|
||||||
|
|
||||||
get_unnecessary() {
|
get_unnecessary() {
|
||||||
|
check_wget
|
||||||
if [ ! -s "$OUTPUT" ] || [ ! -f "$OUTPUT" ]; then
|
if [ ! -s "$OUTPUT" ] || [ ! -f "$OUTPUT" ]; then
|
||||||
wget --no-check-certificate -q -O - "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/more-excldue.json" 2>/dev/null | \
|
wget --no-check-certificate -q -O - "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/more-excldue.json" 2>/dev/null | \
|
||||||
grep -o '"package-name": *"[^"]*"' | \
|
grep -o '"package-name": *"[^"]*"' | \
|
||||||
@@ -34,10 +51,11 @@ get_xposed() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
check_update() {
|
check_update() {
|
||||||
if [ -d "$MODPATH/temp" ]; then
|
check_wget
|
||||||
|
if [ -d "$MODPATH/update" ]; then
|
||||||
JSON=$(wget --no-check-certificate -q -O - "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/update.json")
|
JSON=$(wget --no-check-certificate -q -O - "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/update.json")
|
||||||
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/temp/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" ]; then
|
if [ "$REMOTE_VERSION" -gt "$LOCAL_VERSION" ]; then
|
||||||
echo "update"
|
echo "update"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
PACKAGE_NAME="io.github.a13e300.ksuwebui"
|
|
||||||
MODID="set-id"
|
|
||||||
BBPATH="/data/adb/magisk/busybox \
|
|
||||||
/data/adb/ksu/bin/busybox \
|
|
||||||
/data/adb/ap/bin/busybox \
|
|
||||||
/data/adb/modules/busybox-ndk/system/*/busybox"
|
|
||||||
|
|
||||||
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 "$@"; }
|
|
||||||
else
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
aapt() { "$MODPATH/aapt" "$@"; }
|
|
||||||
|
|
||||||
download_webui() {
|
|
||||||
wget --no-check-certificate -P "$APK_DIR" "$URL"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Error: APK download failed."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
install_webui() {
|
|
||||||
pm install -r "$APK_PATH" </dev/null 2>&1 | cat
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Error: APK installation failed."
|
|
||||||
rm -f "$APK_PATH"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
@@ -39,5 +39,11 @@ migrate_old_boot_hash
|
|||||||
|
|
||||||
rm -f "$MODPATH/install_func.sh"
|
rm -f "$MODPATH/install_func.sh"
|
||||||
|
|
||||||
|
ui_print " "
|
||||||
|
ui_print "! This module is not a part of the Tricky Store module. DO NOT report any issues to Tricky Store if encountered."
|
||||||
|
ui_print " "
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
ui_print "- Installation completed successfully! "
|
ui_print "- Installation completed successfully! "
|
||||||
ui_print " "
|
ui_print " "
|
||||||
|
|||||||
@@ -4,17 +4,15 @@ initialize() {
|
|||||||
|
|
||||||
# Set permission
|
# 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
|
|
||||||
|
|
||||||
# Handdle Magisk/non-Magisk root manager
|
# 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"
|
|
||||||
NEW_MODID="$MODID"
|
NEW_MODID="$MODID"
|
||||||
else
|
else
|
||||||
mkdir -p "$COMPATH/temp/common"
|
mkdir -p "$COMPATH/update/common"
|
||||||
cp "$COMPATH/.default" "$COMPATH/temp/common/.default"
|
cp "$COMPATH/.default" "$COMPATH/update/common/.default"
|
||||||
cp "$MODPATH/uninstall.sh" "$COMPATH/temp/uninstall.sh"
|
cp "$MODPATH/uninstall.sh" "$COMPATH/update/uninstall.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#Set specific path
|
#Set specific path
|
||||||
@@ -22,13 +20,9 @@ initialize() {
|
|||||||
ui_print "! Failed to set path"
|
ui_print "! Failed to set path"
|
||||||
abort
|
abort
|
||||||
}
|
}
|
||||||
sed -i "s|\"set-id\"|\"$NEW_MODID\"|" "$COMPATH/util_func.sh" || {
|
|
||||||
ui_print "! Failed to set id"
|
|
||||||
abort
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set aapt binary
|
# Set aapt binary
|
||||||
cp "$MODPATH/module.prop" "$COMPATH/temp/module.prop"
|
cp "$MODPATH/module.prop" "$COMPATH/update/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"
|
||||||
|
|||||||
@@ -36,13 +36,14 @@ rm -f "$MODPATH/module.prop"
|
|||||||
ln -s "$MODPATH/webui" "$TS/webroot"
|
ln -s "$MODPATH/webui" "$TS/webroot"
|
||||||
|
|
||||||
# Optimization
|
# Optimization
|
||||||
OUTPUT_APP="$MODPATH/common/applist"
|
OUTPUT_APP="$MODPATH/common/tmp/applist"
|
||||||
OUTPUT_SKIP="$MODPATH/common/skiplist"
|
OUTPUT_SKIP="$MODPATH/common/tmp/skiplist"
|
||||||
|
|
||||||
until [ "$(getprop sys.boot_completed)" = "1" ]; do
|
until [ "$(getprop sys.boot_completed)" = "1" ]; do
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
||||||
|
mkdir -p "$MODPATH/common/tmp"
|
||||||
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"
|
||||||
pm list packages -3 </dev/null 2>&1 | cat | awk -F: '{print $2}' | while read -r PACKAGE; do
|
pm list packages -3 </dev/null 2>&1 | cat | awk -F: '{print $2}' | while read -r PACKAGE; do
|
||||||
|
|||||||
@@ -356,9 +356,17 @@ async function updateCheck() {
|
|||||||
showPrompt("new_update");
|
showPrompt("new_update");
|
||||||
updateCard.style.display = "flex";
|
updateCard.style.display = "flex";
|
||||||
await execCommand(`
|
await execCommand(`
|
||||||
su -c "mkdir -p '/data/adb/modules/TA_utl' &&
|
su -c "
|
||||||
cp -rf '${basePath}common/temp/'* '/data/adb/modules/TA_utl/'"
|
if [ -f '${basePath}action.sh' ]; then
|
||||||
`);
|
if [ -d "/data/adb/modules/TA_utl" ]; then
|
||||||
|
rm -rf "/data/adb/modules/TA_utl"
|
||||||
|
fi
|
||||||
|
cp -rf '${basePath}common/update' '/data/adb/modules/TA_utl'
|
||||||
|
else
|
||||||
|
cp '${basePath}common/update/module.prop' '/data/adb/modules/TA_utl/module.prop'
|
||||||
|
fi
|
||||||
|
"
|
||||||
|
`);
|
||||||
} else {
|
} else {
|
||||||
console.log("No update detected from extra script.");
|
console.log("No update detected from extra script.");
|
||||||
}
|
}
|
||||||
@@ -372,19 +380,19 @@ async function updateCheck() {
|
|||||||
// Function to read the exclude list and uncheck corresponding apps
|
// Function to read the exclude list and uncheck corresponding apps
|
||||||
async function deselectUnnecessaryApps() {
|
async function deselectUnnecessaryApps() {
|
||||||
try {
|
try {
|
||||||
const fileCheck = await execCommand(`test -f ${basePath}common/exclude-list && echo "exists" || echo "not found"`);
|
const fileCheck = await execCommand(`test -f ${basePath}common/tmp/exclude-list && echo "exists" || echo "not found"`);
|
||||||
if (fileCheck.trim() === "not found") {
|
if (fileCheck.trim() === "not found") {
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
await execCommand(`sh ${basePath}common/get_extra.sh --unnecessary`);
|
await execCommand(`sh ${basePath}common/get_extra.sh --unnecessary`);
|
||||||
}, 100);
|
}, 0);
|
||||||
console.log("Exclude list not found. Running the unnecessary apps script.");
|
console.log("Exclude list not found. Running the unnecessary apps script.");
|
||||||
} else {
|
} else {
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
await execCommand(`sh ${basePath}common/get_extra.sh --xposed`);
|
await execCommand(`sh ${basePath}common/get_extra.sh --xposed`);
|
||||||
}, 100);
|
}, 0);
|
||||||
console.log("Exclude list found. Running xposed script.");
|
console.log("Exclude list found. Running xposed script.");
|
||||||
}
|
}
|
||||||
const result = await execCommand(`cat ${basePath}common/exclude-list`);
|
const result = await execCommand(`cat ${basePath}common/tmp/exclude-list`);
|
||||||
const UnnecessaryApps = result.split("\n").map(app => app.trim()).filter(Boolean);
|
const UnnecessaryApps = result.split("\n").map(app => app.trim()).filter(Boolean);
|
||||||
const apps = document.querySelectorAll(".card");
|
const apps = document.querySelectorAll(".card");
|
||||||
apps.forEach(app => {
|
apps.forEach(app => {
|
||||||
@@ -467,7 +475,7 @@ async function extrakb() {
|
|||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
await execCommand(`sh ${basePath}common/get_extra.sh --kb`);
|
await execCommand(`sh ${basePath}common/get_extra.sh --kb`);
|
||||||
}, 100);
|
}, 100);
|
||||||
const sourcePath = `${basePath}common/.extra`;
|
const sourcePath = `${basePath}common/tmp/.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));
|
await new Promise(resolve => setTimeout(resolve, 300));
|
||||||
@@ -581,7 +589,7 @@ async function fetchAppList() {
|
|||||||
|
|
||||||
let applistMap = {};
|
let applistMap = {};
|
||||||
try {
|
try {
|
||||||
const applistResult = await execCommand(`cat ${basePath}common/applist`);
|
const applistResult = await execCommand(`cat ${basePath}common/tmp/applist`);
|
||||||
applistMap = applistResult
|
applistMap = applistResult
|
||||||
.split("\n")
|
.split("\n")
|
||||||
.reduce((map, line) => {
|
.reduce((map, line) => {
|
||||||
@@ -718,7 +726,7 @@ document.querySelector(".uninstall-container").addEventListener("click", async (
|
|||||||
if [ -d "/data/adb/modules/TA_utl" ]; then
|
if [ -d "/data/adb/modules/TA_utl" ]; then
|
||||||
rm -rf "/data/adb/modules/TA_utl"
|
rm -rf "/data/adb/modules/TA_utl"
|
||||||
fi
|
fi
|
||||||
cp -rf '${basePath}common/temp' '/data/adb/modules/TA_utl' &&
|
cp -rf '${basePath}common/update' '/data/adb/modules/TA_utl' &&
|
||||||
touch '/data/adb/modules/TA_utl/remove'
|
touch '/data/adb/modules/TA_utl/remove'
|
||||||
else
|
else
|
||||||
touch '${basePath}remove'
|
touch '${basePath}remove'
|
||||||
|
|||||||
Reference in New Issue
Block a user