bugfix
This commit is contained in:
@@ -1,62 +1,66 @@
|
|||||||
#1開啟0關閉
|
#音量鍵選擇總開關 是否在每次執行備份腳本時使用音量鍵詢問備份需求
|
||||||
#是否在每次執行備份腳本使用音量鍵詢問如下備份需求
|
#1開啟音量鍵選擇 (如選項已設置,則跳過該選項提示)
|
||||||
#如果是那下面三項設置就被忽略,改為音量鍵選擇
|
#0關閉音量鍵選擇 (如選項未設置,則強制使用音量鍵選擇)
|
||||||
Lo=0
|
Lo=0
|
||||||
|
|
||||||
#備份時檢查資料夾是否存在已經卸載應用
|
#腳本語言設置 留空則自動識別系統語言環境並翻譯
|
||||||
delete_folder=1
|
#1簡體中文 0繁體中文
|
||||||
|
Shell_LANG=0
|
||||||
|
|
||||||
#存在已卸載應用操作(1刪除0移動)
|
#自定義備份文件輸出位置 支持相對路徑(留空則默認當前路徑)
|
||||||
default_behavior=0
|
|
||||||
|
|
||||||
#自定義位置支持相對位置
|
|
||||||
#自定義備份目錄輸出位置 (忽略為空將默認腳本路徑中)
|
|
||||||
Output_path=""
|
Output_path=""
|
||||||
|
|
||||||
#自定義applist.txt位置
|
#自定義applist.txt位置 支持相對路徑(留空則默認當前路徑)
|
||||||
list_location=""
|
list_location=""
|
||||||
|
|
||||||
#自動更新腳本
|
#自動更新腳本(留空強制音量鍵選擇)
|
||||||
|
#1開啟 0關閉
|
||||||
update=1
|
update=1
|
||||||
|
|
||||||
#假設如果存在usb隨身碟是否默認使用隨身碟?(1不詢問默認使用 0每次都進行詢問)
|
#自定義屏蔽外部掛載點 例:OTG 虛擬SD等 多個掛載點請使用 | 區隔
|
||||||
USBdefault=0
|
#屏蔽後不會提示音量鍵選擇,不影響Output_path指定外置存儲位置
|
||||||
|
|
||||||
#自定義屏蔽外部掛載點,多個分區請使用|區隔
|
|
||||||
mount_point="rannki|0000-1"
|
mount_point="rannki|0000-1"
|
||||||
|
|
||||||
#使用者(為空預設0)
|
#使用者(如0 999等用戶,如存在多個用戶留空強制音量鍵選擇,無多個用戶則默認用戶0不詢問)
|
||||||
user=0
|
user=0
|
||||||
|
|
||||||
#是否備份使用者數據 (1備份0不備份)
|
#備份模式
|
||||||
|
#1包含數據+安裝包,0僅包安裝包
|
||||||
|
#此選項設置1時Backup_obb_data,Backup_user_data,blacklist_mode將可設置 0時Backup_user_data,Backup_obb_data,blacklist_mode選項不生效
|
||||||
|
#此外設置0時將同時忽略appList.txt的!與任何黑名單設置(包括黑名單列表)
|
||||||
|
Backup_Mode=1
|
||||||
|
|
||||||
|
#是否備份使用者數據 (1備份 0不備份 留空強制音量鍵選擇)
|
||||||
Backup_user_data=1
|
Backup_user_data=1
|
||||||
|
|
||||||
#是否備份外部數據 即比如原神的數據包(1備份0不備份)
|
#是否備份外部數據 例:原神的數據包(1備份 0不備份 留空強制音量鍵選擇)
|
||||||
Backup_obb_data=1
|
Backup_obb_data=1
|
||||||
|
|
||||||
#是否在應用數據備份好後備份自定義目錄
|
#是否在應用數據備份完成後備份自定義目錄
|
||||||
|
#1開啟 0關閉
|
||||||
backup_media=1
|
backup_media=1
|
||||||
|
|
||||||
#假設你遇到列表輸出異常問題請將此設為1
|
#假設你遇到列表輸出異常問題請將此設為1
|
||||||
debug_list=0
|
debug_list=0
|
||||||
|
|
||||||
#添加自定義備份路徑 請勿刪除
|
#添加自定義備份路徑 例:Download DCIM等文件夾 請使用絕對路徑,請勿刪除""
|
||||||
Custom_path="
|
Custom_path="
|
||||||
/storage/emulated/0/Pictures/
|
/storage/emulated/0/Pictures/
|
||||||
/storage/emulated/0/Download/
|
/storage/emulated/0/Download/
|
||||||
|
/storage/emulated/0/Music
|
||||||
/storage/emulated/0/DCIM/
|
/storage/emulated/0/DCIM/
|
||||||
/data/adb
|
/data/adb
|
||||||
"
|
"
|
||||||
|
|
||||||
#黑名單模式(1直接忽略備份0僅備份安裝檔)
|
#黑名單模式(1完全忽略,不備份 0僅備份安裝包,注意!此選項Backup_Mode=1時黑名單模式才能使用)
|
||||||
blacklist_mode=0
|
blacklist_mode=1
|
||||||
|
|
||||||
#備份黑名單 備份apk不備份任何數據
|
#備份黑名單(備份策略由「黑名單模式」控制,此處只作為黑名單應用列表)
|
||||||
blacklist="
|
blacklist="
|
||||||
#com.esunbank
|
#com.esunbank
|
||||||
#com.chailease.tw.app.android.ccfappcust"
|
#com.chailease.tw.app.android.ccfappcust"
|
||||||
|
|
||||||
#位於data的預裝應用白名單
|
#位於data的預裝應用白名單 例:相冊 錄音機 天氣 計算器等(默認屏蔽備份預裝應用,如需備份請添加預裝應用白名單)
|
||||||
whitelist="
|
whitelist="
|
||||||
com.xiaomi.xmsf
|
com.xiaomi.xmsf
|
||||||
com.xiaomi.xiaoailite
|
com.xiaomi.xiaoailite
|
||||||
@@ -75,7 +79,7 @@ com.xiaomi.router
|
|||||||
com.xiaomi.mico
|
com.xiaomi.mico
|
||||||
dev.miuiicons.pedroz"
|
dev.miuiicons.pedroz"
|
||||||
|
|
||||||
#可被備份的系統應用白名單
|
#可被備份的系統應用白名單(默認屏蔽備份系統應用,如需備份請添加系統應用白名單)
|
||||||
system="
|
system="
|
||||||
com.google.android.calendar
|
com.google.android.calendar
|
||||||
com.google.android.gm
|
com.google.android.gm
|
||||||
@@ -90,13 +94,13 @@ sh.siava.AOSPMods
|
|||||||
com.facebook.katana
|
com.facebook.katana
|
||||||
com.android.chrome"
|
com.android.chrome"
|
||||||
|
|
||||||
#備份完成後啟動應用
|
#需要在備份完成後啟動應用
|
||||||
am_start="
|
am_start="
|
||||||
com.digibites.accubattery
|
com.digibites.accubattery
|
||||||
com.dede.nativetools
|
com.dede.nativetools
|
||||||
"
|
"
|
||||||
|
|
||||||
#壓縮算法(可用zstd tar tar為僅打包 有什麼好用的壓縮算法請聯繫我
|
#壓縮算法(可用zstd tar,tar為僅打包 有什麼好用的壓縮算法請聯系我
|
||||||
#zstd擁有良好的壓縮率與速度
|
#zstd擁有良好的壓縮率與速度
|
||||||
Compression_method=zstd
|
Compression_method=zstd
|
||||||
|
|
||||||
@@ -105,3 +109,4 @@ rgb_a=226
|
|||||||
#輔色
|
#輔色
|
||||||
rgb_b=123
|
rgb_b=123
|
||||||
rgb_c=177
|
rgb_c=177
|
||||||
|
|
||||||
|
|||||||
@@ -156,7 +156,7 @@
|
|||||||
"M1810E5E" "小米 MIX 3 全網通版"
|
"M1810E5E" "小米 MIX 3 全網通版"
|
||||||
"M1810E5A" "小米 MIX 3 全網通版 (全球頻段)"
|
"M1810E5A" "小米 MIX 3 全網通版 (全球頻段)"
|
||||||
"M1810E5GG" "小米 MIX 3 5G"
|
"M1810E5GG" "小米 MIX 3 5G"
|
||||||
"M2011J18C" "MIX FOLD 小米折疊屏手機"
|
"M2011J18C" "MIX FOLD 小米折叠屏手機"
|
||||||
"2106118C" "Xiaomi MIX 4"
|
"2106118C" "Xiaomi MIX 4"
|
||||||
"22061218C" "Xiaomi MIX Fold 2"
|
"22061218C" "Xiaomi MIX Fold 2"
|
||||||
"2308CPXD0C" "Xiaomi MIX Fold 3"
|
"2308CPXD0C" "Xiaomi MIX Fold 3"
|
||||||
|
|||||||
Binary file not shown.
425
tools/tools.sh
425
tools/tools.sh
@@ -1,57 +1,60 @@
|
|||||||
#!/system/bin/sh
|
#!/system/bin/sh
|
||||||
set -x 2> debug_output.log
|
set -x 2> /cache/debug_output.log
|
||||||
shell_language="zh-TW"
|
shell_language="zh-TW"
|
||||||
MODDIR="$MODDIR"
|
MODDIR="$MODDIR"
|
||||||
MODDIR_NAME="${MODDIR##*/}"
|
MODDIR_NAME="${MODDIR##*/}"
|
||||||
tools_path="$MODDIR/tools"
|
tools_path="$MODDIR/tools"
|
||||||
Compression_rate=3
|
Compression_rate=3
|
||||||
script="${0##*/}"
|
script="${0##*/}"
|
||||||
backup_version="V15.8.7"
|
backup_version="V15.9.0"
|
||||||
[[ $SHELL = *mt* ]] && echo "請勿使用mt拓展包環境執行,請更換系統環境" && exit 2
|
[[ $SHELL = *mt* ]] && echo "請勿使用MT管理器拓展包環境執行,請更換系統環境" && exit 2
|
||||||
update_backup_settings_conf() {
|
update_backup_settings_conf() {
|
||||||
echo "#1開啟0關閉
|
echo "#音量鍵選擇總開關 是否在每次執行備份腳本時使用音量鍵詢問備份需求
|
||||||
#是否在每次執行備份腳本使用音量鍵詢問如下備份需求
|
#1開啟音量鍵選擇 (如選項已設置,則跳過該選項提示)
|
||||||
#如果是那下面三項設置就被忽略,改為音量鍵選擇
|
#0關閉音量鍵選擇 (如選項未設置,則強制使用音量鍵選擇)
|
||||||
Lo="${Lo:-0}"
|
Lo="${Lo:-0}"
|
||||||
|
|
||||||
#備份時檢查資料夾是否存在已經卸載應用
|
#腳本語言設置 留空則自動識別系統語言環境並翻譯
|
||||||
delete_folder="${delete_folder:-1}"
|
#1簡體中文 0繁體中文
|
||||||
|
Shell_LANG="$Shell_LANG"
|
||||||
|
|
||||||
#存在已卸載應用操作(1刪除0移動)
|
#自定義備份文件輸出位置 支持相對路徑(留空則默認當前路徑)
|
||||||
default_behavior="${default_behavior:-0}"
|
|
||||||
|
|
||||||
#自定義位置支持相對位置
|
|
||||||
#自定義備份目錄輸出位置 (忽略為空將默認腳本路徑中)
|
|
||||||
Output_path=\""$Output_path"\"
|
Output_path=\""$Output_path"\"
|
||||||
|
|
||||||
#自定義applist.txt位置
|
#自定義applist.txt位置 支持相對路徑(留空則默認當前路徑)
|
||||||
list_location=\""$list_location"\"
|
list_location=\""$list_location"\"
|
||||||
|
|
||||||
#自動更新腳本
|
#自動更新腳本(留空強制音量鍵選擇)
|
||||||
|
#1開啟 0關閉
|
||||||
update="${update:-1}"
|
update="${update:-1}"
|
||||||
|
|
||||||
#假設如果存在usb隨身碟是否默認使用隨身碟?(1不詢問默認使用 0每次都進行詢問)
|
#自定義屏蔽外部掛載點 例:OTG 虛擬SD等 多個掛載點請使用 | 區隔
|
||||||
USBdefault="${USBdefault:-0}"
|
#屏蔽後不會提示音量鍵選擇,不影響Output_path指定外置存儲位置
|
||||||
|
|
||||||
#自定義屏蔽外部掛載點,多個分區請使用|區隔
|
|
||||||
mount_point=\""${mount_point:-rannki|0000-1}"\"
|
mount_point=\""${mount_point:-rannki|0000-1}"\"
|
||||||
|
|
||||||
#使用者(為空預設0)
|
#使用者(如0 999等用戶,如存在多個用戶留空強制音量鍵選擇,無多個用戶則默認用戶0不詢問)
|
||||||
user="$user"
|
user="$user"
|
||||||
|
|
||||||
#是否備份使用者數據 (1備份0不備份)
|
#備份模式
|
||||||
|
#1包含數據+安裝包,0僅包安裝包
|
||||||
|
#此選項設置1時Backup_obb_data,Backup_user_data,blacklist_mode將可設置 0時Backup_user_data,Backup_obb_data,blacklist_mode選項不生效
|
||||||
|
#此外設置0時將同時忽略appList.txt的!與任何黑名單設置(包括黑名單列表)
|
||||||
|
Backup_Mode=1
|
||||||
|
|
||||||
|
#是否備份使用者數據 (1備份 0不備份 留空強制音量鍵選擇)
|
||||||
Backup_user_data="${Backup_user_data:-1}"
|
Backup_user_data="${Backup_user_data:-1}"
|
||||||
|
|
||||||
#是否備份外部數據 即比如原神的數據包(1備份0不備份)
|
#是否備份外部數據 例:原神的數據包(1備份 0不備份 留空強制音量鍵選擇)
|
||||||
Backup_obb_data="${Backup_obb_data:-1}"
|
Backup_obb_data="${Backup_obb_data:-1}"
|
||||||
|
|
||||||
#是否在應用數據備份好後備份自定義目錄
|
#是否在應用數據備份完成後備份自定義目錄
|
||||||
|
#1開啟 0關閉
|
||||||
backup_media="${backup_media:-0}"
|
backup_media="${backup_media:-0}"
|
||||||
|
|
||||||
#假設你遇到列表輸出異常問題請將此設為1
|
#假設你遇到列表輸出異常問題請將此設為1
|
||||||
debug_list="${debug_list:-0}"
|
debug_list="${debug_list:-0}"
|
||||||
|
|
||||||
#添加自定義備份路徑 請勿刪除" "
|
#添加自定義備份路徑 例:Download DCIM等文件夾 請使用絕對路徑,請勿刪除\"\"
|
||||||
Custom_path=\""${Custom_path:-
|
Custom_path=\""${Custom_path:-
|
||||||
/storage/emulated/0/Pictures/
|
/storage/emulated/0/Pictures/
|
||||||
/storage/emulated/0/Download/
|
/storage/emulated/0/Download/
|
||||||
@@ -60,15 +63,15 @@ Custom_path=\""${Custom_path:-
|
|||||||
/data/adb
|
/data/adb
|
||||||
}"\"
|
}"\"
|
||||||
|
|
||||||
#黑名單模式(1直接忽略備份0僅備份安裝檔)
|
#黑名單模式(1完全忽略,不備份 0僅備份安裝包,注意!此選項Backup_Mode=1時黑名單模式才能使用)
|
||||||
blacklist_mode="${blacklist_mode:-0}"
|
blacklist_mode="${blacklist_mode:-0}"
|
||||||
|
|
||||||
#備份黑名單 備份apk不備份任何數據
|
#備份黑名單(備份策略由「黑名單模式」控制,此處只作為黑名單應用列表)
|
||||||
blacklist=\""${blacklist:-
|
blacklist=\""${blacklist:-
|
||||||
#com.esunbank
|
#com.esunbank
|
||||||
#com.chailease.tw.app.android.ccfappcust}"\"
|
#com.chailease.tw.app.android.ccfappcust}"\"
|
||||||
|
|
||||||
#位於data的預裝應用白名單
|
#位於data的預裝應用白名單 例:相冊 錄音機 天氣 計算器等(默認屏蔽備份預裝應用,如需備份請添加預裝應用白名單)
|
||||||
whitelist=\""${whitelist:-
|
whitelist=\""${whitelist:-
|
||||||
com.xiaomi.xmsf
|
com.xiaomi.xmsf
|
||||||
com.xiaomi.xiaoailite
|
com.xiaomi.xiaoailite
|
||||||
@@ -87,7 +90,7 @@ com.xiaomi.router
|
|||||||
com.xiaomi.mico
|
com.xiaomi.mico
|
||||||
dev.miuiicons.pedroz}"\"
|
dev.miuiicons.pedroz}"\"
|
||||||
|
|
||||||
#可被備份的系統應用白名單
|
#可被備份的系統應用白名單(默認屏蔽備份系統應用,如需備份請添加系統應用白名單)
|
||||||
system=\""${system:-
|
system=\""${system:-
|
||||||
com.google.android.calendar
|
com.google.android.calendar
|
||||||
com.google.android.gm
|
com.google.android.gm
|
||||||
@@ -102,13 +105,13 @@ sh.siava.AOSPMods
|
|||||||
com.facebook.katana
|
com.facebook.katana
|
||||||
com.android.chrome}"\"
|
com.android.chrome}"\"
|
||||||
|
|
||||||
#備份完成後啟動應用
|
#需要在備份完成後啟動應用
|
||||||
am_start=\""${am_start:-
|
am_start=\""${am_start:-
|
||||||
com.digibites.accubattery
|
com.digibites.accubattery
|
||||||
com.dede.nativetools
|
com.dede.nativetools
|
||||||
}"\"
|
}"\"
|
||||||
|
|
||||||
#壓縮算法(可用zstd tar tar為僅打包 有什麼好用的壓縮算法請聯繫我
|
#壓縮算法(可用zstd tar,tar為僅打包 有什麼好用的壓縮算法請聯系我
|
||||||
#zstd擁有良好的壓縮率與速度
|
#zstd擁有良好的壓縮率與速度
|
||||||
Compression_method=${Compression_method:-zstd}
|
Compression_method=${Compression_method:-zstd}
|
||||||
|
|
||||||
@@ -127,15 +130,19 @@ rgb_c="${rgb_c:-177}"
|
|||||||
s/false/0/g'
|
s/false/0/g'
|
||||||
}
|
}
|
||||||
update_Restore_settings_conf() {
|
update_Restore_settings_conf() {
|
||||||
echo "#1開啟0關閉
|
echo "#音量鍵選擇總開關 是否在每次執行恢復腳本時使用音量鍵詢問恢復需求
|
||||||
#是否在每次執行備份腳本使用音量鍵詢問如下備份需求
|
#1開啟音量鍵選擇(如選項已設置,則跳過該選項提示)
|
||||||
#如果是那下面兩項設置就被忽略,改為音量鍵選擇
|
#0關閉音量鍵選擇(如選項未設置,則強制使用音量鍵選擇)
|
||||||
Lo="${Lo:-0}"
|
Lo="${Lo:-0}"
|
||||||
|
|
||||||
#自動更新腳本
|
#腳本語言設置 為空自動針對當前系統語言環境自動翻譯
|
||||||
|
#1簡體中文 0繁體中文
|
||||||
|
Shell_LANG="$Shell_LANG"
|
||||||
|
|
||||||
|
#自動更新腳本(留空強制音量鍵選擇)
|
||||||
update="${update:-1}"
|
update="${update:-1}"
|
||||||
|
|
||||||
#使用者(為空預設0)
|
#使用者(如0 999等用戶,留空如存在多個用戶強制音量鍵選擇,無多用戶則默認0不詢問)
|
||||||
user=
|
user=
|
||||||
|
|
||||||
#主色
|
#主色
|
||||||
@@ -166,11 +173,24 @@ if [[ ! -f $conf_path ]]; then
|
|||||||
echo "$conf_path配置遺失" && exit 1
|
echo "$conf_path配置遺失" && exit 1
|
||||||
fi
|
fi
|
||||||
fi ;;
|
fi ;;
|
||||||
*) conf_path="$MODDIR/backup_settings.conf" ;;
|
*)
|
||||||
|
if [[ -f $MODDIR/backup_settings.conf ]]; then
|
||||||
|
conf_path="$MODDIR/backup_settings.conf"
|
||||||
|
else
|
||||||
|
[[ -f $MODDIR/restore_settings.conf ]] && conf_path="$MODDIR/restore_settings.conf"
|
||||||
|
fi
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
[[ ! -f $conf_path ]] && echo "$conf_path遺失" && exit 2
|
[[ ! -f $conf_path ]] && echo "$conf_path遺失" && exit 2
|
||||||
. "$conf_path" &>/dev/null
|
. "$conf_path" &>/dev/null
|
||||||
|
if [[ $Shell_LANG != "" ]]; then
|
||||||
|
case $Shell_LANG in
|
||||||
|
1) LANG="CN" ;;
|
||||||
|
0) LANG="TW" ;;
|
||||||
|
*) echo "$conf_path Shell_LANG=$Shell_LANG 設置錯誤 正確1or0" && exit 2 ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
[[ $LANG = "" ]] && LANG="$(getprop "persist.sys.locale")"
|
||||||
echoRgb() {
|
echoRgb() {
|
||||||
#轉換echo顏色提高可讀性
|
#轉換echo顏色提高可讀性
|
||||||
if [[ $2 = 0 ]]; then
|
if [[ $2 = 0 ]]; then
|
||||||
@@ -280,7 +300,7 @@ export CLASSPATH="$tools_path/classes.dex:$tools_path/classes2.dex"
|
|||||||
zstd_sha256sum="55cc57a3d079dd90e74d972c705c4f9389dd00a7175de148e21000eab01f7ed9"
|
zstd_sha256sum="55cc57a3d079dd90e74d972c705c4f9389dd00a7175de148e21000eab01f7ed9"
|
||||||
tar_sha256sum="3c605b1e9eb8283555225dcad4a3bf1777ae39c5f19a2c8b8943140fd7555814"
|
tar_sha256sum="3c605b1e9eb8283555225dcad4a3bf1777ae39c5f19a2c8b8943140fd7555814"
|
||||||
classesdex_sha256sum="09d0058763157b97d6ea2bf74bd7ec53089a9ddb496f089a159ea0027007bb94"
|
classesdex_sha256sum="09d0058763157b97d6ea2bf74bd7ec53089a9ddb496f089a159ea0027007bb94"
|
||||||
classesdex2_sha256sum="010c1e247a104ebe39cc218af9b4c9581a9ee0946851dea249d3f40050c15d79"
|
classesdex2_sha256sum="e78b33af047464c225b171da0da3e46fb2932b798ff4cd26de75a1649b5e30d5"
|
||||||
[[ $(sha256sum "$tools_path/zstd" | cut -d" " -f1) != $zstd_sha256sum ]] && echoRgb "zstd效驗失敗" "0" && exit 2
|
[[ $(sha256sum "$tools_path/zstd" | cut -d" " -f1) != $zstd_sha256sum ]] && echoRgb "zstd效驗失敗" "0" && exit 2
|
||||||
[[ $(sha256sum "$tools_path/tar" | cut -d" " -f1) != $tar_sha256sum ]] && echoRgb "tar效驗失敗" "0" && exit 2
|
[[ $(sha256sum "$tools_path/tar" | cut -d" " -f1) != $tar_sha256sum ]] && echoRgb "tar效驗失敗" "0" && exit 2
|
||||||
[[ $(sha256sum "$tools_path/classes.dex" | cut -d" " -f1) != $classesdex_sha256sum ]] && echoRgb "classes.dex效驗失敗" "0" && exit 2
|
[[ $(sha256sum "$tools_path/classes.dex" | cut -d" " -f1) != $classesdex_sha256sum ]] && echoRgb "classes.dex效驗失敗" "0" && exit 2
|
||||||
@@ -295,7 +315,6 @@ if [[ $(which toybox | egrep -o "system") != system ]]; then
|
|||||||
echoRgb "系統變量中沒有找到toybox" "0"
|
echoRgb "系統變量中沒有找到toybox" "0"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
LANG="$(getprop "persist.sys.locale")"
|
|
||||||
#下列為自定義函數
|
#下列為自定義函數
|
||||||
alias appinfo="app_process /system/bin --nice-name=appinfo han.core.order.AppInfo $@"
|
alias appinfo="app_process /system/bin --nice-name=appinfo han.core.order.AppInfo $@"
|
||||||
alias down="app_process /system/bin --nice-name=down han.core.order.Down $@"
|
alias down="app_process /system/bin --nice-name=down han.core.order.Down $@"
|
||||||
@@ -411,6 +430,7 @@ if [[ $(su -v 2>/dev/null) != "" ]]; then
|
|||||||
Manager_version="$(su -v 2>/dev/null)"
|
Manager_version="$(su -v 2>/dev/null)"
|
||||||
else
|
else
|
||||||
if [[ -d /data/adb/ksu ]]; then
|
if [[ -d /data/adb/ksu ]]; then
|
||||||
|
ksu="ksu"
|
||||||
echo "KernelSU"
|
echo "KernelSU"
|
||||||
else
|
else
|
||||||
echo "null"
|
echo "null"
|
||||||
@@ -461,10 +481,10 @@ case $MODDIR in
|
|||||||
esac
|
esac
|
||||||
case $LANG in
|
case $LANG in
|
||||||
*TW* | *tw* | *HK*)
|
*TW* | *tw* | *HK*)
|
||||||
echoRgb "系統語系:繁體中文"
|
echoRgb "系統語言環境:繁體中文"
|
||||||
Script_target_language="zh-TW" ;;
|
Script_target_language="zh-TW" ;;
|
||||||
*CN* | *cn*)
|
*CN* | *cn*)
|
||||||
echoRgb "系統語系:簡體中文"
|
echoRgb "系統語言環境:簡體中文"
|
||||||
Script_target_language="zh-CN" ;;
|
Script_target_language="zh-CN" ;;
|
||||||
esac
|
esac
|
||||||
case $operate in
|
case $operate in
|
||||||
@@ -498,6 +518,15 @@ backup|Restore|Restore2|Getlist|backup_media)
|
|||||||
else
|
else
|
||||||
user="0"
|
user="0"
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
user_id="$(appinfo -listUsers)"
|
||||||
|
if [[ $user_id != "" && $(appinfo -listUsers | wc -l) -gt 1 ]]; then
|
||||||
|
echo "$user_id" | while read ; do
|
||||||
|
[[ $REPLY = 0 ]] && echoRgb "主用戶:$REPLY" "2" || echoRgb "分身用戶:$REPLY" "2"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echoRgb "主用戶:$user_id" "2"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
user="$(echo "${0%}" | sed 's/.*\/Backup_zstd_\([0-9]*\).*/\1/')"
|
user="$(echo "${0%}" | sed 's/.*\/Backup_zstd_\([0-9]*\).*/\1/')"
|
||||||
@@ -534,7 +563,7 @@ Rename_script () {
|
|||||||
if [[ -d ${REPLY%/*}/tools ]]; then
|
if [[ -d ${REPLY%/*}/tools ]]; then
|
||||||
touch_shell "$Script_type" "$REPLY"
|
touch_shell "$Script_type" "$REPLY"
|
||||||
if [[ $Script_target_language != $shell_language ]]; then
|
if [[ $Script_target_language != $shell_language ]]; then
|
||||||
[[ $HT = 0 && $K = "" ]] && echoRgb "腳本語系為$shell_language....轉換為$Script_target_language中,請稍後等待轉換...."
|
[[ $HT = 0 && $K = "" ]] && echoRgb "腳本語言為$shell_language....轉換為$Script_target_language中,請稍後等待轉換...."
|
||||||
ts -f "$REPLY" -o "$REPLY"
|
ts -f "$REPLY" -o "$REPLY"
|
||||||
echo_log "$REPLY翻譯"
|
echo_log "$REPLY翻譯"
|
||||||
mv "$REPLY" "$MODDIR_NAME/$(ts "$FILE_NAME")"
|
mv "$REPLY" "$MODDIR_NAME/$(ts "$FILE_NAME")"
|
||||||
@@ -544,7 +573,7 @@ Rename_script () {
|
|||||||
fi ;;
|
fi ;;
|
||||||
kill_script)
|
kill_script)
|
||||||
if [[ $Script_target_language != $shell_language ]]; then
|
if [[ $Script_target_language != $shell_language ]]; then
|
||||||
[[ $HT = 0 && $K = "" ]] && echoRgb "腳本語系為$shell_language....轉換為$Script_target_language中,請稍後等待轉換...."
|
[[ $HT = 0 && $K = "" ]] && echoRgb "腳本語言為$shell_language....轉換為$Script_target_language中,請稍後等待轉換...."
|
||||||
ts -f "$REPLY" -o "$REPLY"
|
ts -f "$REPLY" -o "$REPLY"
|
||||||
echo_log "$REPLY翻譯"
|
echo_log "$REPLY翻譯"
|
||||||
mv "$REPLY" "$MODDIR_NAME/$(ts "$FILE_NAME")"
|
mv "$REPLY" "$MODDIR_NAME/$(ts "$FILE_NAME")"
|
||||||
@@ -605,16 +634,22 @@ update_script() {
|
|||||||
echo_log "解壓縮${zipFile##*/}"
|
echo_log "解壓縮${zipFile##*/}"
|
||||||
if [[ $result = 0 ]]; then
|
if [[ $result = 0 ]]; then
|
||||||
if [[ $shell_language != $Script_target_language ]]; then
|
if [[ $shell_language != $Script_target_language ]]; then
|
||||||
echoRgb "腳本語系為$shell_language....轉換為$Script_target_language中,請稍後等待轉換...."
|
echoRgb "腳本語言為$shell_language....轉換為$Script_target_language中,請稍後等待轉換...."
|
||||||
ts -f "$path_hierarchy/tools/Device_List" -o "$path_hierarchy/tools/Device_List"
|
ts -f "$path_hierarchy/tools/Device_List" -o "$path_hierarchy/tools/Device_List"
|
||||||
echo_log "$path_hierarchy/tools/Device_List翻譯"
|
echo_log "$path_hierarchy/tools/Device_List翻譯"
|
||||||
ts -f "$path_hierarchy/tools/tools.sh" -o "$path_hierarchy/tools/tools.sh" && sed -i "s/shell_language=\"$shell_language\"/shell_language=\"$Script_target_language\"/g" "$path_hierarchy/tools/tools.sh"
|
ts -f "$path_hierarchy/tools/tools.sh" -o "$path_hierarchy/tools/tools.sh" && sed -i "s/shell_language=\"$shell_language\"/shell_language=\"$Script_target_language\"/g" "$path_hierarchy/tools/tools.sh"
|
||||||
echo_log "$path_hierarchy/tools/tools.sh翻譯"
|
echo_log "$path_hierarchy/tools/tools.sh翻譯"
|
||||||
HT=1
|
HT=1
|
||||||
fi
|
fi
|
||||||
|
update_backup_settings_conf>"$path_hierarchy/backup_settings.conf"
|
||||||
|
ts -f "$path_hierarchy/backup_settings.conf" -o "$path_hierarchy/backup_settings.conf"
|
||||||
|
echo_log "$path_hierarchy/backup_settings.conf"
|
||||||
if [[ -d $find_tools_path && $find_tools_path != $path_hierarchy/tools ]]; then
|
if [[ -d $find_tools_path && $find_tools_path != $path_hierarchy/tools ]]; then
|
||||||
rm -rf "$find_tools_path"
|
rm -rf "$find_tools_path"
|
||||||
cp -r "$path_hierarchy/tools" "${find_tools_path%/*}"
|
cp -r "$path_hierarchy/tools" "${find_tools_path%/*}"
|
||||||
|
update_Restore_settings_conf>"${find_tools_path%/*}/restore_settings.conf"
|
||||||
|
ts -f "${find_tools_path%/*}/restore_settings.conf" -o "${find_tools_path%/*}/restore_settings.conf"
|
||||||
|
echo_log "${find_tools_path%/*}/restore_settings.conf翻譯"
|
||||||
fi
|
fi
|
||||||
Rename_script
|
Rename_script
|
||||||
if [[ $Output_path != "" ]]; then
|
if [[ $Output_path != "" ]]; then
|
||||||
@@ -693,11 +728,23 @@ if [[ $path_hierarchy != "" && $Script_target_language != "" ]]; then
|
|||||||
case $shell_language in
|
case $shell_language in
|
||||||
zh-CN|zh-TW)
|
zh-CN|zh-TW)
|
||||||
if [[ $Script_target_language != $shell_language ]]; then
|
if [[ $Script_target_language != $shell_language ]]; then
|
||||||
[[ $K = 1 ]] && echoRgb "腳本語系為$shell_language....轉換為$Script_target_language中,請稍後等待轉換...."
|
[[ $K = 1 ]] && echoRgb "腳本語言為$shell_language....轉換為$Script_target_language中,請稍後等待轉換...."
|
||||||
ts -f "$REPLY" -o "$REPLY"
|
ts -f "$REPLY" -o "$REPLY"
|
||||||
if [[ $? = 0 ]]; then
|
if [[ $? = 0 ]]; then
|
||||||
touch "$TMPDIR/0"
|
touch "$TMPDIR/0"
|
||||||
echo_log "$REPLY翻譯"
|
echo_log "$REPLY翻譯"
|
||||||
|
MODDIR="${0%/*}"
|
||||||
|
if [[ $REPLY != *Backup_* ]]; then
|
||||||
|
update_backup_settings_conf>"${REPLY%/*/*}/backup_settings.conf"
|
||||||
|
ts -f "${REPLY%/*/*}/backup_settings.conf" -o "${REPLY%/*/*}/backup_settings.conf"
|
||||||
|
echo_log "${REPLY%/*/*}/backup_settings.conf翻譯"
|
||||||
|
else
|
||||||
|
if [[ $REPLY = *Backup_* ]]; then
|
||||||
|
update_Restore_settings_conf>"${REPLY%/*/*}/restore_settings.conf"
|
||||||
|
ts -f "${REPLY%/*/*}/restore_settings.conf" -o "${REPLY%/*/*}/restore_settings.conf"
|
||||||
|
echo_log "${REPLY%/*/*}/restore_settings.conf翻譯"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
sed -i "s/shell_language=\"$shell_language\"/shell_language=\"$Script_target_language\"/g" "$REPLY"
|
sed -i "s/shell_language=\"$shell_language\"/shell_language=\"$Script_target_language\"/g" "$REPLY"
|
||||||
ts -f "${REPLY%/*}/Device_List" -o "${REPLY%/*}/Device_List"
|
ts -f "${REPLY%/*}/Device_List" -o "${REPLY%/*}/Device_List"
|
||||||
echo_log "${REPLY%/*}/Device_List翻譯"
|
echo_log "${REPLY%/*}/Device_List翻譯"
|
||||||
@@ -715,10 +762,15 @@ fi
|
|||||||
Lo="$(echo "$Lo" | sed 's/true/1/g ; s/false/0/g')"
|
Lo="$(echo "$Lo" | sed 's/true/1/g ; s/false/0/g')"
|
||||||
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
||||||
if [[ $Lo = false ]]; then
|
if [[ $Lo = false ]]; then
|
||||||
isBoolean "$update" "update" && update="$nsx"
|
[[ $update != "" ]] && isBoolean "$update" "update" && update="$nsx" || {
|
||||||
else
|
|
||||||
echoRgb "自動更新腳本?\n -音量上更新,下不更新"
|
echoRgb "自動更新腳本?\n -音量上更新,下不更新"
|
||||||
|
get_version "更新" "不更新" && update="$branch"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
[[ $update = "" ]] && {
|
||||||
|
echoRgb "自動更新腳本?\n -音量上更新,下不更新"
|
||||||
get_version "更新" "不更新" && update="$branch"
|
get_version "更新" "不更新" && update="$branch"
|
||||||
|
} || isBoolean "$update" "update" && update="$nsx"
|
||||||
fi
|
fi
|
||||||
[[ $update = true ]] && json="$(down -s -L "$Language" 2>/dev/null)" || echoRgb "自動更新被關閉" "0"
|
[[ $update = true ]] && json="$(down -s -L "$Language" 2>/dev/null)" || echoRgb "自動更新被關閉" "0"
|
||||||
if [[ $json != "" ]]; then
|
if [[ $json != "" ]]; then
|
||||||
@@ -783,7 +835,7 @@ backup_path() {
|
|||||||
OTGPATH="$(echo "$PU" | awk '{print $1}')"
|
OTGPATH="$(echo "$PU" | awk '{print $1}')"
|
||||||
OTGFormat="$(echo "$PU" | awk '{print $2}')"
|
OTGFormat="$(echo "$PU" | awk '{print $2}')"
|
||||||
if [[ -d $OTGPATH ]]; then
|
if [[ -d $OTGPATH ]]; then
|
||||||
if [[ $(echo "$MODDIR" | egrep -o "^${OTGPATH}") != "" || $USBdefault = true ]]; then
|
if [[ $(echo "$MODDIR" | egrep -o "^${OTGPATH}") != "" ]]; then
|
||||||
hx="true"
|
hx="true"
|
||||||
Backup="$MODDIR/Backup_${Compression_method}_$user"
|
Backup="$MODDIR/Backup_${Compression_method}_$user"
|
||||||
else
|
else
|
||||||
@@ -897,14 +949,6 @@ Backup_apk() {
|
|||||||
result=0
|
result=0
|
||||||
echoRgb "Apk版本無更新 跳過備份" "2"
|
echoRgb "Apk版本無更新 跳過備份" "2"
|
||||||
else
|
else
|
||||||
case $name2 in
|
|
||||||
com.google.android.youtube)
|
|
||||||
[[ -d /data/adb/Vanced ]] && nobackup="true"
|
|
||||||
;;
|
|
||||||
com.google.android.apps.youtube.music)
|
|
||||||
[[ -d /data/adb/Music ]] && nobackup="true"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
if [[ $nobackup != true ]]; then
|
if [[ $nobackup != true ]]; then
|
||||||
if [[ $apk_version != "" ]]; then
|
if [[ $apk_version != "" ]]; then
|
||||||
let osn++
|
let osn++
|
||||||
@@ -919,7 +963,7 @@ Backup_apk() {
|
|||||||
fi
|
fi
|
||||||
unset Filesize
|
unset Filesize
|
||||||
Filesize="$(du -s "$apk_path2" | awk '{print $1}')"
|
Filesize="$(du -s "$apk_path2" | awk '{print $1}')"
|
||||||
partition_info "$Backup" "$name2 apk"
|
partition_info "$Backup" "$name1 apk"
|
||||||
#備份apk
|
#備份apk
|
||||||
echoRgb "$1"
|
echoRgb "$1"
|
||||||
echo "$apk_path" | sed -e '/^$/d' | while read; do
|
echo "$apk_path" | sed -e '/^$/d' | while read; do
|
||||||
@@ -968,7 +1012,7 @@ Backup_apk() {
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
let osj++
|
let osj++
|
||||||
echoRgb "$name1不支持備份 需要使用vanced安裝" "0" && rm -rf "$Backup_folder"
|
rm -rf "$Backup_folder"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
[[ $name2 = bin.mt.plus && ! -f $Backup/$name1.apk ]] && cp -r "$apk_path" "$Backup/$name1.apk"
|
[[ $name2 = bin.mt.plus && ! -f $Backup/$name1.apk ]] && cp -r "$apk_path" "$Backup/$name1.apk"
|
||||||
@@ -1020,12 +1064,14 @@ Backup_data() {
|
|||||||
echo_log "備份ssaid"
|
echo_log "備份ssaid"
|
||||||
fi
|
fi
|
||||||
Get_Permissions="$(get_Permissions "$name2")"
|
Get_Permissions="$(get_Permissions "$name2")"
|
||||||
if [[ $Permissions = "" ]]; then
|
if [[ $Get_Permissions != "" ]]; then
|
||||||
echo "Permissions=\"$Get_Permissions\"">"$app_Permissions"
|
if [[ $Permissions = "" ]]; then
|
||||||
echo_log "備份權限"
|
echo "Permissions=\"$Get_Permissions\"">"$app_Permissions"
|
||||||
else
|
echo_log "備份權限"
|
||||||
[[ $Permissions != $Get_Permissions ]] && echo "Permissions=\"$Get_Permissions\"">"$app_Permissions" && echo_log "備份權限"
|
else
|
||||||
fi ;;
|
[[ $Permissions != $Get_Permissions ]] && echo "Permissions=\"$Get_Permissions\"">"$app_Permissions" && echo_log "備份權限"
|
||||||
|
fi
|
||||||
|
fi ;;
|
||||||
esac
|
esac
|
||||||
if [[ $Size != $Filesize ]]; then
|
if [[ $Size != $Filesize ]]; then
|
||||||
#停止應用
|
#停止應用
|
||||||
@@ -1265,7 +1311,7 @@ get_name(){
|
|||||||
[[ $rgb_a -ge 229 ]] && rgb_a=118
|
[[ $rgb_a -ge 229 ]] && rgb_a=118
|
||||||
unset PackageName NAME DUMPAPK ChineseName
|
unset PackageName NAME DUMPAPK ChineseName
|
||||||
[[ -f $Folder/app_details ]] && . "$Folder/app_details" &>/dev/null
|
[[ -f $Folder/app_details ]] && . "$Folder/app_details" &>/dev/null
|
||||||
[[ ! -f $txt ]] && echo "#不需要恢復還原的應用請在開頭注釋# 比如#xxxxxxxx 酷安" >"$txt"
|
[[ ! -f $txt ]] && echo "#不需要恢復還原的應用請在開頭使用#注釋 比如:#酷安 com.coolapk.market" >"$txt"
|
||||||
if [[ $PackageName = "" || $ChineseName = "" ]]; then
|
if [[ $PackageName = "" || $ChineseName = "" ]]; then
|
||||||
echoRgb "${Folder##*/}包名獲取失敗,解壓縮獲取包名中..." "0"
|
echoRgb "${Folder##*/}包名獲取失敗,解壓縮獲取包名中..." "0"
|
||||||
rm -rf "$TMPDIR"/*
|
rm -rf "$TMPDIR"/*
|
||||||
@@ -1311,7 +1357,7 @@ get_name(){
|
|||||||
done
|
done
|
||||||
if [[ -d $MODDIR/Media ]]; then
|
if [[ -d $MODDIR/Media ]]; then
|
||||||
echoRgb "存在媒體資料夾" "2"
|
echoRgb "存在媒體資料夾" "2"
|
||||||
[[ ! -f $txt2 ]] && echo "#不需要恢復的資料夾請在開頭注釋# 比如#媒體" > "$txt2"
|
[[ ! -f $txt2 ]] && echo "#不需要恢復的資料夾請在開頭使用#注釋 比如:#Download" > "$txt2"
|
||||||
find "$MODDIR/Media" -maxdepth 1 -name "*.tar*" -type f 2>/dev/null | while read; do
|
find "$MODDIR/Media" -maxdepth 1 -name "*.tar*" -type f 2>/dev/null | while read; do
|
||||||
echoRgb "${REPLY##*/}" && echo "${REPLY##*/}" >> "$txt2"
|
echoRgb "${REPLY##*/}" && echo "${REPLY##*/}" >> "$txt2"
|
||||||
done
|
done
|
||||||
@@ -1391,30 +1437,62 @@ backup)
|
|||||||
#效驗選填是否正確
|
#效驗選填是否正確
|
||||||
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
||||||
if [[ $Lo = false ]]; then
|
if [[ $Lo = false ]]; then
|
||||||
isBoolean "$default_behavior" "default_behavior" && default_behavior="$nsx"
|
[[ $Backup_Mode != "" ]] && isBoolean "$Backup_Mode" "Backup_Mode" && Backup_Mode="$nsx" || {
|
||||||
isBoolean "$delete_folder" "delete_folder" && delete_folder="$nsx"
|
echoRgb "選擇備份模式\n -音量上備份應用+數據,音量下僅應用不包含數據" "2"
|
||||||
isBoolean "$USBdefault" "USBdefault" && USBdefault="$nsx"
|
get_version "應用+數據" "僅應用" && Backup_Mode="$branch"
|
||||||
isBoolean "$Backup_obb_data" "Backup_obb_data" && Backup_obb_data="$nsx"
|
}
|
||||||
isBoolean "$Backup_user_data" "Backup_user_data" && Backup_user_data="$nsx"
|
if [[ $Backup_Mode = true ]]; then
|
||||||
isBoolean "$blacklist_mode" "blacklist_mode" && blacklist_mode="$nsx"
|
if [[ $(echo "$blacklist" | grep -v "#" | wc -l) -gt 0 ]]; then
|
||||||
isBoolean "$backup_media" "backup_media" && backup_media="$nsx"
|
if [[ $blacklist_mode != "" ]]; then
|
||||||
else
|
isBoolean "$blacklist_mode" "blacklist_mode" && blacklist_mode="$nsx"
|
||||||
echoRgb "檢查目錄是否存在已卸載應用?\n -音量上檢查,下不檢查"
|
else
|
||||||
get_version "檢查" "不檢查" && delete_folder="$branch"
|
echoRgb "選擇黑名單模式\n -音量上不備份,音量下僅備份安裝檔\n -警告! " "2"
|
||||||
echoRgb "檢查到已卸載應用\n -音量上刪除資料夾,下移動到其他處"
|
get_version "不備份" "備份安裝檔" && blacklist_mode="$branch"
|
||||||
get_version "刪除" "移動到其他處" && default_behavior="$branch"
|
fi
|
||||||
echoRgb "存在usb隨身碟是否默認使用隨身碟?\n -音量上默認,下進行詢問"
|
fi
|
||||||
get_version "默認" "詢問" && USBdefault="$branch"
|
fi
|
||||||
if [[ $(echo "$blacklist" | grep -v "#" | wc -l) -gt 0 ]]; then
|
if [[ $Backup_Mode = true ]]; then
|
||||||
echoRgb "選擇黑名單模式\n -音量上不備份,音量下僅備份安裝檔" "2"
|
[[ $Backup_obb_data != "" ]] && isBoolean "$Backup_obb_data" "Backup_obb_data" && Backup_obb_data="$nsx" || {
|
||||||
get_version "不備份" "備份安裝檔" && blacklist_mode="$branch"
|
echoRgb "是否備份外部數據 即比如原神的數據包\n -音量上備份,音量下不備份" "2"
|
||||||
fi
|
get_version "備份" "不備份" && Backup_obb_data="$branch"
|
||||||
echoRgb "是否備份外部數據 即比如原神的數據包\n -音量上備份,音量下不備份" "2"
|
}
|
||||||
get_version "備份" "不備份" && Backup_obb_data="$branch"
|
[[ $Backup_user_data != "" ]] && isBoolean "$Backup_user_data" "Backup_user_data" && Backup_user_data="$nsx" || {
|
||||||
echoRgb "是否備份使用者數據\n -音量上備份,音量下不備份" "2"
|
echoRgb "是否備份使用者數據\n -音量上備份,音量下不備份" "2"
|
||||||
get_version "備份" "不備份" && Backup_user_data="$branch"
|
get_version "備份" "不備份" && Backup_user_data="$branch"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Backup_user_data="false"
|
||||||
|
Backup_obb_data="false"
|
||||||
|
fi
|
||||||
|
[[ $backup_media != "" ]] && isBoolean "$backup_media" "backup_media" && backup_media="$nsx" || {
|
||||||
echoRgb "全部應用備份結束後是否備份自定義目錄\n -音量上備份,音量下不備份" "2"
|
echoRgb "全部應用備份結束後是否備份自定義目錄\n -音量上備份,音量下不備份" "2"
|
||||||
get_version "備份" "不備份" && backup_media="$branch"
|
get_version "備份" "不備份" && backup_media="$branch"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
[[ $Backup_Mode = "" ]] && {
|
||||||
|
echoRgb "選擇備份模式\n -音量上備份應用+數據,音量下僅應用不包含數據" "2"
|
||||||
|
get_version "應用+數據" "僅應用" && Backup_Mode="$branch"
|
||||||
|
} || isBoolean "$Backup_Mode" "Backup_Mode" && Backup_Mode="$nsx"
|
||||||
|
if [[ $Backup_Mode = true ]]; then
|
||||||
|
if [[ $(echo "$blacklist" | grep -v "#" | wc -l) -gt 0 ]]; then
|
||||||
|
[[ $blacklist_mode = "" ]] && {
|
||||||
|
echoRgb "選擇黑名單模式\n -音量上不備份,音量下僅備份安裝檔" "2"
|
||||||
|
get_version "不備份" "備份安裝檔" && blacklist_mode="$branch"
|
||||||
|
} || isBoolean "$blacklist_mode" "blacklist_mode" && blacklist_mode="$nsx"
|
||||||
|
fi
|
||||||
|
[[ $Backup_obb_data = "" ]] && {
|
||||||
|
echoRgb "是否備份外部數據 即比如原神的數據包\n -音量上備份,音量下不備份" "2"
|
||||||
|
get_version "備份" "不備份" && Backup_obb_data="$branch"
|
||||||
|
} || isBoolean "$Backup_obb_data" "Backup_obb_data" && Backup_obb_data="$nsx"
|
||||||
|
[[ $Backup_user_data = "" ]] && {
|
||||||
|
echoRgb "是否備份使用者數據\n -音量上備份,音量下不備份" "2"
|
||||||
|
get_version "備份" "不備份" && Backup_user_data="$branch"
|
||||||
|
} || isBoolean "$Backup_user_data" "Backup_user_data" && Backup_user_data="$nsx"
|
||||||
|
fi
|
||||||
|
[[ $backup_media = "" ]] && {
|
||||||
|
echoRgb "全部應用備份結束後是否備份自定義目錄\n -音量上備份,音量下不備份" "2"
|
||||||
|
get_version "備份" "不備份" && backup_media="$branch"
|
||||||
|
} || isBoolean "$backup_media" "backup_media" && backup_media="$nsx"
|
||||||
fi
|
fi
|
||||||
i=1
|
i=1
|
||||||
#數據目錄
|
#數據目錄
|
||||||
@@ -1438,47 +1516,13 @@ backup)
|
|||||||
sort -u "$txt" -o "$txt" &>/dev/null
|
sort -u "$txt" -o "$txt" &>/dev/null
|
||||||
data="$MODDIR"
|
data="$MODDIR"
|
||||||
hx="本地"
|
hx="本地"
|
||||||
echoRgb "腳本受到內核機制影響 息屏後io性能嚴重影響\n -請勿關閉終端或是息屏備份 如需終止腳本\n -請執行終止腳本.sh即可停止" "3"
|
echoRgb "腳本受到內核機制影響 息屏後IO性能嚴重影響\n -請勿關閉終端或是息屏備份 如需終止腳本\n -請執行終止腳本.sh即可停止" "3"
|
||||||
backup_path
|
backup_path
|
||||||
echoRgb "配置詳細:\n -壓縮方式:$Compression_method\n -音量鍵確認:$Lo\n -更新:$update\n -已卸載應用檢查:$delete_folder\n -卸載應用默認操作(true刪除false移動):$default_behavior\n -默認使用usb:$USBdefault\n -備份外部數據:$Backup_obb_data\n -備份user數據:$Backup_user_data\n -自定義目錄備份:$backup_media\n -黑名單模式:$blacklist_mode"
|
echoRgb "配置詳細:\n -壓縮方式:$Compression_method\n -音量鍵確認:$Lo\n -更新:$update\n -備份模式:$Backup_Mode\n -備份外部數據:$Backup_obb_data\n -備份user數據:$Backup_user_data\n -自定義目錄備份:$backup_media\n"
|
||||||
D="1"
|
D="1"
|
||||||
C="$(sed -e '/^$/d' "$txt" 2>/dev/null | sed -n '$=')"
|
C="$(sed -e '/^$/d' "$txt" 2>/dev/null | sed -n '$=')"
|
||||||
[[ $user = 0 ]] && Apk_info="$(appinfo -sort-i -o pn -pn $system -3 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)" || Apk_info="$(appinfo -sort-i -o pn -pn $system $(pm list packages -3 --user "$user" | cut -f2 -d ':') 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)"
|
[[ $user = 0 ]] && Apk_info="$(appinfo -sort-i -o pn -pn $system -3 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)" || Apk_info="$(appinfo -sort-i -o pn -pn $system $(pm list packages -3 --user "$user" | cut -f2 -d ':') 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)"
|
||||||
[[ $Apk_info = "" ]] && echoRgb "appinfo輸出失敗" "0" && exit 2
|
[[ $Apk_info = "" ]] && echoRgb "appinfo輸出失敗" "0" && exit 2
|
||||||
if [[ -d $Backup && $backup_mode = "" ]]; then
|
|
||||||
if [[ $delete_folder = true ]]; then
|
|
||||||
find "$Backup" -maxdepth 1 -type d 2>/dev/null | sort | while read; do
|
|
||||||
if [[ -f $REPLY/app_details ]]; then
|
|
||||||
unset PackageName
|
|
||||||
. "$REPLY/app_details" &>/dev/null
|
|
||||||
if [[ $PackageName != "" && $(echo "$Apk_info" | egrep -w "^$PackageName$") = "" ]]; then
|
|
||||||
if [[ $default_behavior = true ]]; then
|
|
||||||
rm -rf "$REPLY"
|
|
||||||
echoRgb "${REPLY##*/}不存在系統 刪除資料夾" "0"
|
|
||||||
else
|
|
||||||
if [[ ! -d $Backup/被卸載的應用 ]]; then
|
|
||||||
mkdir -p "$Backup/被卸載的應用" && mv "$REPLY" "$Backup/被卸載的應用/"
|
|
||||||
else
|
|
||||||
mv "$REPLY" "$Backup/被卸載的應用/"
|
|
||||||
fi
|
|
||||||
[[ ! -d $Backup/被卸載的應用/tools ]] && cp -r "$tools_path" "$Backup/被卸載的應用"
|
|
||||||
[[ ! -f $Backup/被卸載的應用/恢復備份.sh ]] && touch_shell "Restore" "$Backup/被卸載的應用/恢復備份.sh"
|
|
||||||
[[ ! -f $Backup/被卸載的應用/重新生成應用列表.sh ]] && touch_shell "dumpname" "$Backup/被卸載的應用/重新生成應用列表.sh"
|
|
||||||
[[ ! -f $Backup/被卸載的應用/轉換資料夾名稱.sh ]] && touch_shell "convert" "$Backup/被卸載的應用/轉換資料夾名稱.sh"
|
|
||||||
[[ ! -f $Backup/被卸載的應用/壓縮檔完整性檢查.sh ]] && touch_shell "check_file" "$Backup/被卸載的應用/壓縮檔完整性檢查.sh"
|
|
||||||
[[ ! -f $Backup/被卸載的應用/終止腳本.sh ]] && cp -r "$MODDIR/終止腳本.sh" "$Backup/被卸載的應用/終止腳本.sh"
|
|
||||||
[[ ! -f $Backup/被卸載的應用/restore_settings.conf ]] && update_Restore_settings_conf>"$Backup/被卸載的應用/restore_settings.conf"
|
|
||||||
txt2="$Backup/被卸載的應用/appList.txt"
|
|
||||||
[[ ! -f $txt2 ]] && echo "#不需要恢復還原的應用請在開頭注釋# 比如#xxxxxxxx 酷安">"$txt2"
|
|
||||||
echo "${REPLY##*/} $PackageName">>"$txt2"
|
|
||||||
echo "$(sed -e "s/${REPLY##*/} $PackageName//g ; /^$/d" "$Backup/appList.txt")" >"$Backup/appList.txt"
|
|
||||||
echoRgb "${REPLY##*/}不存在系統 已移動到$Backup/被卸載的應用" "0"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
[[ $backup_mode = "" ]] && {
|
[[ $backup_mode = "" ]] && {
|
||||||
echoRgb "檢查備份列表中是否存在已經卸載應用" "3"
|
echoRgb "檢查備份列表中是否存在已經卸載應用" "3"
|
||||||
while [[ $D -le $C ]]; do
|
while [[ $D -le $C ]]; do
|
||||||
@@ -1486,7 +1530,7 @@ backup)
|
|||||||
name2="$(sed -e '/^$/d' "$txt" 2>/dev/null | sed -n "${D}p" | awk '{print $2}')"
|
name2="$(sed -e '/^$/d' "$txt" 2>/dev/null | sed -n "${D}p" | awk '{print $2}')"
|
||||||
if [[ $name1 != "" && $name2 != "" ]]; then
|
if [[ $name1 != "" && $name2 != "" ]]; then
|
||||||
if [[ $(echo "$Apk_info" | egrep -w "^$name2$") != "" ]]; then
|
if [[ $(echo "$Apk_info" | egrep -w "^$name2$") != "" ]]; then
|
||||||
[[ $Tmplist = "" ]] && Tmplist='#不需要備份的應用請在開頭注釋# 比如#酷安 xxxxxxxx\n#不需要備份數據比如!酷安 xxxxxxxx應用名前方方加一個驚嘆號即可 注意是應用名不是包名'
|
[[ $Tmplist = "" ]] && Tmplist='#不需要備份的應用請在開頭使用#注釋 比如:#酷安 com.coolapk.market(忽略安裝包和數據)\n#不需要備份數據的應用請在開頭使用!注釋 比如:!酷安 com.coolapk.market(僅忽略數據)'
|
||||||
Tmplist="$Tmplist\n$name1 $name2"
|
Tmplist="$Tmplist\n$name1 $name2"
|
||||||
else
|
else
|
||||||
case $name1 in
|
case $name1 in
|
||||||
@@ -1504,11 +1548,13 @@ backup)
|
|||||||
r="$(grep -v "#" "$txt" 2>/dev/null | sed -e '/^$/d' | sed -n '$=')"
|
r="$(grep -v "#" "$txt" 2>/dev/null | sed -e '/^$/d' | sed -n '$=')"
|
||||||
[[ $backup_mode != "" ]] && r=1
|
[[ $backup_mode != "" ]] && r=1
|
||||||
[[ $r = "" && $backup_mode = "" ]] && echoRgb "$MODDIR_NAME/appList.txt是空的或是包名被注釋備份個鬼\n -檢查是否注釋亦或者執行$MODDIR_NAME/生成應用列表.sh" "0" && exit 1
|
[[ $r = "" && $backup_mode = "" ]] && echoRgb "$MODDIR_NAME/appList.txt是空的或是包名被注釋備份個鬼\n -檢查是否注釋亦或者執行$MODDIR_NAME/生成應用列表.sh" "0" && exit 1
|
||||||
[[ $Backup_user_data = false ]] && echoRgb "當前$MODDIR_NAME/backup_settings.conf的\n -Backup_user_data=0將不備份user數據" "0"
|
if [[ $Backup_Mode = true ]]; then
|
||||||
[[ $Backup_obb_data = false ]] && echoRgb "當前$MODDIR_NAME/backup_settings.conf的\n -Backup_obb_data=0將不備份外部數據" "0"
|
[[ $Backup_user_data = false ]] && echoRgb "當前$MODDIR_NAME/backup_settings.conf的\n -Backup_user_data=0將不備份user數據" "0"
|
||||||
|
[[ $Backup_obb_data = false ]] && echoRgb "當前$MODDIR_NAME/backup_settings.conf的\n -Backup_obb_data=0將不備份外部數據" "0"
|
||||||
|
fi
|
||||||
[[ $backup_media = false ]] && echoRgb "當前$MODDIR_NAME/backup_settings.conf的\n -backup_media=0將不備份自定義資料夾" "0"
|
[[ $backup_media = false ]] && echoRgb "當前$MODDIR_NAME/backup_settings.conf的\n -backup_media=0將不備份自定義資料夾" "0"
|
||||||
txt2="$Backup/appList.txt"
|
txt2="$Backup/appList.txt"
|
||||||
[[ ! -f $txt2 ]] && echo "#不需要恢復還原的應用請在開頭注釋# 比如#xxxxxxxx 酷安">"$txt2"
|
[[ ! -f $txt2 ]] && echo "#不需要恢復還原的應用請在開頭使用#注釋 比如:#酷安 com.coolapk.market">"$txt2"
|
||||||
[[ ! -d $Backup/tools ]] && cp -r "$tools_path" "$Backup"
|
[[ ! -d $Backup/tools ]] && cp -r "$tools_path" "$Backup"
|
||||||
[[ ! -f $Backup/恢復備份.sh ]] && touch_shell "Restore" "$Backup/恢復備份.sh"
|
[[ ! -f $Backup/恢復備份.sh ]] && touch_shell "Restore" "$Backup/恢復備份.sh"
|
||||||
[[ ! -f $Backup/終止腳本.sh ]] && cp -r "$MODDIR/終止腳本.sh" "$Backup/終止腳本.sh"
|
[[ ! -f $Backup/終止腳本.sh ]] && cp -r "$MODDIR/終止腳本.sh" "$Backup/終止腳本.sh"
|
||||||
@@ -1564,15 +1610,22 @@ backup)
|
|||||||
echoRgb "備份第$i/$r個應用 剩下$((r - i))個" "3"
|
echoRgb "備份第$i/$r個應用 剩下$((r - i))個" "3"
|
||||||
echoRgb "備份 $name1 \"$name2\"" "2"
|
echoRgb "備份 $name1 \"$name2\"" "2"
|
||||||
unset Backup_folder ChineseName PackageName nobackup No_backupdata result apk_version versionName apk_version2 apk_version3 zsize zmediapath Size data_path userSize dataSize obbSize Ssaid Permissions
|
unset Backup_folder ChineseName PackageName nobackup No_backupdata result apk_version versionName apk_version2 apk_version3 zsize zmediapath Size data_path userSize dataSize obbSize Ssaid Permissions
|
||||||
if [[ $name1 = !* || $name1 = !* ]]; then
|
if [[ $Backup_Mode = true ]]; then
|
||||||
name1="$(echo "$name1" | sed 's/!//g ; s/!//g')"
|
if [[ $name1 = !* || $name1 = !* ]]; then
|
||||||
echoRgb "跳過備份所有數據" "0"
|
name1="$(echo "$name1" | sed 's/!//g ; s/!//g')"
|
||||||
No_backupdata=1
|
echoRgb "跳過備份所有數據" "0"
|
||||||
fi
|
No_backupdata=1
|
||||||
if [[ $(echo "$blacklist" | grep -w "$name2") = $name2 ]]; then
|
fi
|
||||||
echoRgb "黑名單應用跳過備份所有數據" "0"
|
if [[ $(echo "$blacklist" | grep -w "$name2") = $name2 ]]; then
|
||||||
No_backupdata=1
|
if [[ $blacklist_mode = true ]]; then
|
||||||
fi
|
echoRgb "黑名單應用跳過備份" "0"
|
||||||
|
nobackup="true"
|
||||||
|
else
|
||||||
|
echoRgb "黑名單應用跳過備份所有數據" "0"
|
||||||
|
fi
|
||||||
|
No_backupdata=1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
Backup_folder="$Backup/$name1"
|
Backup_folder="$Backup/$name1"
|
||||||
app_details="$Backup_folder/app_details"
|
app_details="$Backup_folder/app_details"
|
||||||
app_Permissions="$Backup_folder/Permissions"
|
app_Permissions="$Backup_folder/Permissions"
|
||||||
@@ -1593,27 +1646,31 @@ backup)
|
|||||||
[[ $name2 = com.tencent.mobileqq ]] && echoRgb "QQ可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" "0"
|
[[ $name2 = com.tencent.mobileqq ]] && echoRgb "QQ可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" "0"
|
||||||
[[ $name2 = com.tencent.mm ]] && echoRgb "WX可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" "0"
|
[[ $name2 = com.tencent.mm ]] && echoRgb "WX可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" "0"
|
||||||
apk_number="$(echo "$apk_path" | wc -l)"
|
apk_number="$(echo "$apk_path" | wc -l)"
|
||||||
if [[ $apk_number = 1 ]]; then
|
if [[ $nobackup != true ]]; then
|
||||||
Backup_apk "非Split Apk" "3"
|
if [[ $apk_number = 1 ]]; then
|
||||||
else
|
Backup_apk "非Split Apk" "3"
|
||||||
Backup_apk "Split Apk支持備份" "3"
|
else
|
||||||
fi
|
Backup_apk "Split Apk支持備份" "3"
|
||||||
if [[ $result = 0 && $No_backupdata = "" && $nobackup != true ]]; then
|
fi
|
||||||
if [[ $Backup_obb_data = true ]]; then
|
if [[ $result = 0 && $No_backupdata = "" ]]; then
|
||||||
#備份data數據
|
if [[ $Backup_Mode = true ]]; then
|
||||||
Backup_data "data"
|
if [[ $Backup_obb_data = true ]]; then
|
||||||
#備份obb數據
|
#備份data數據
|
||||||
Backup_data "obb"
|
Backup_data "data"
|
||||||
fi
|
#備份obb數據
|
||||||
#備份user數據
|
Backup_data "obb"
|
||||||
[[ $Backup_user_data = true ]] && Backup_data "user"
|
fi
|
||||||
[[ $name2 = github.tornaco.android.thanos ]] && Backup_data "thanox" "$(find "/data/system" -name "thanos*" -maxdepth 1 -type d 2>/dev/null)"
|
#備份user數據
|
||||||
[[ $name2 = moe.shizuku.redirectstorage ]] && Backup_data "storage-isolation" "/data/adb/storage-isolation"
|
[[ $Backup_user_data = true ]] && Backup_data "user"
|
||||||
Set_service
|
[[ $name2 = github.tornaco.android.thanos ]] && Backup_data "thanox" "$(find "/data/system" -name "thanos*" -maxdepth 1 -type d 2>/dev/null)"
|
||||||
fi
|
[[ $name2 = moe.shizuku.redirectstorage ]] && Backup_data "storage-isolation" "/data/adb/storage-isolation"
|
||||||
[[ -f $Backup_folder/${name2}.sh ]] && rm -rf "$Backup_folder/${name2}.sh"
|
Set_service
|
||||||
[[ ! -f $Backup_folder/recover.sh ]] && touch_shell "Restore2" "$Backup_folder/recover.sh"
|
fi
|
||||||
[[ ! -f $Backup_folder/backup.sh ]] && touch_shell "backup" "$Backup_folder/backup.sh" "backup_mode" "backup_mode=\"1\""
|
fi
|
||||||
|
[[ -f $Backup_folder/${name2}.sh ]] && rm -rf "$Backup_folder/${name2}.sh"
|
||||||
|
[[ ! -f $Backup_folder/recover.sh ]] && touch_shell "Restore2" "$Backup_folder/recover.sh"
|
||||||
|
[[ ! -f $Backup_folder/backup.sh ]] && touch_shell "backup" "$Backup_folder/backup.sh" "backup_mode" "backup_mode=\"1\""
|
||||||
|
fi
|
||||||
endtime 2 "$name1 備份" "3"
|
endtime 2 "$name1 備份" "3"
|
||||||
lxj="$(echo "$Occupation_status" | awk '{print $3}' | sed 's/%//g')"
|
lxj="$(echo "$Occupation_status" | awk '{print $3}' | sed 's/%//g')"
|
||||||
echoRgb "完成$((i * 100 / r))% $hx$(echo "$Occupation_status" | awk 'END{print "剩餘:"$1"使用率:"$2}')" "3"
|
echoRgb "完成$((i * 100 / r))% $hx$(echo "$Occupation_status" | awk 'END{print "剩餘:"$1"使用率:"$2}')" "3"
|
||||||
@@ -1658,11 +1715,20 @@ backup)
|
|||||||
app_details="$Backup_folder/app_details"
|
app_details="$Backup_folder/app_details"
|
||||||
[[ -f $app_details ]] && . "$app_details" &>/dev/null || touch "$app_details"
|
[[ -f $app_details ]] && . "$app_details" &>/dev/null || touch "$app_details"
|
||||||
mediatxt="$Backup/mediaList.txt"
|
mediatxt="$Backup/mediaList.txt"
|
||||||
[[ ! -f $mediatxt ]] && echo "#不需要恢復的資料夾請在開頭注釋# 比如#媒體" > "$mediatxt"
|
[[ ! -f $mediatxt ]] && echo "#不需要恢復的資料夾請在開頭使用#注釋 比如:#Download" > "$mediatxt"
|
||||||
echo "$Custom_path" | grep -v "#" | sed -e '/^$/d' | sed 's/\/$//' | while read; do
|
echo "$Custom_path" | grep -v "#" | sed -e '/^$/d' | sed 's/\/$//' | while read; do
|
||||||
echoRgb "備份第$A/$B個資料夾 剩下$((B - A))個" "3"
|
echoRgb "備份第$A/$B個資料夾 剩下$((B - A))個" "3"
|
||||||
starttime2="$(date -u "+%s")"
|
starttime2="$(date -u "+%s")"
|
||||||
Backup_data "${REPLY##*/}" "$REPLY"
|
if [[ ${REPLY##*/} = adb ]]; then
|
||||||
|
if [[ $ksu != ksu ]]; then
|
||||||
|
Backup_data "${REPLY##*/}" "$REPLY"
|
||||||
|
else
|
||||||
|
echoRgb "KSU不支持備份adb模塊資料夾" "0"
|
||||||
|
Set_back_1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
Backup_data "${REPLY##*/}" "$REPLY"
|
||||||
|
fi
|
||||||
endtime 2 "${REPLY##*/}備份" "1"
|
endtime 2 "${REPLY##*/}備份" "1"
|
||||||
echoRgb "完成$((A * 100 / B))% $hx$(echo "$Occupation_status" | awk 'END{print "剩餘:"$1"使用率:"$2}')" "2"
|
echoRgb "完成$((A * 100 / B))% $hx$(echo "$Occupation_status" | awk 'END{print "剩餘:"$1"使用率:"$2}')" "2"
|
||||||
rgb_d="$rgb_a"
|
rgb_d="$rgb_a"
|
||||||
@@ -1962,21 +2028,26 @@ Getlist)
|
|||||||
isBoolean "$debug_list" "debug_list" && debug_list="$nsx"
|
isBoolean "$debug_list" "debug_list" && debug_list="$nsx"
|
||||||
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
||||||
if [[ $Lo = false ]]; then
|
if [[ $Lo = false ]]; then
|
||||||
isBoolean "$blacklist_mode" "blacklist_mode" && blacklist_mode="$nsx"
|
[[ $blacklist_mode != "" ]] && isBoolean "$blacklist_mode" "blacklist_mode" && blacklist_mode="$nsx" || {
|
||||||
|
echoRgb "選擇黑名單模式\n -音量上不備份,音量下僅備份安裝檔" "2"
|
||||||
|
get_version "不備份" "備份安裝檔" && blacklist_mode="$branch"
|
||||||
|
}
|
||||||
else
|
else
|
||||||
if [[ $(echo "$blacklist" | grep -v "#" | wc -l) -gt 0 ]]; then
|
if [[ $(echo "$blacklist" | grep -v "#" | wc -l) -gt 0 ]]; then
|
||||||
|
[[ $blacklist_mode = "" ]] && {
|
||||||
echoRgb "選擇黑名單模式\n -音量上不備份,音量下僅備份安裝檔" "2"
|
echoRgb "選擇黑名單模式\n -音量上不備份,音量下僅備份安裝檔" "2"
|
||||||
get_version "不備份" "備份安裝檔" && blacklist_mode="$branch"
|
get_version "不備份" "備份安裝檔" && blacklist_mode="$branch"
|
||||||
|
} || isBoolean "$blacklist_mode" "blacklist_mode" && blacklist_mode="$nsx"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
txtpath="$MODDIR"
|
txtpath="$MODDIR"
|
||||||
[[ $debug_list = true ]] && txtpath="${txtpath/'/storage/emulated/'/'/data/media/'}"
|
[[ $debug_list = true ]] && txtpath="${txtpath/'/storage/emulated/'/'/data/media/'}"
|
||||||
nametxt="$txtpath/appList.txt"
|
nametxt="$txtpath/appList.txt"
|
||||||
[[ ! -f $nametxt ]] && echo '#不需要備份的應用請在開頭注釋# 比如#酷安 xxxxxxxx\n#不需要備份數據比如!酷安 xxxxxxxx應用名前方方加一個驚嘆號即可 注意是應用名不是包名' >"$nametxt"
|
[[ ! -f $nametxt ]] && echo '#不需要備份的應用請在開頭使用#注釋 比如:#酷安 com.coolapk.market(忽略安裝包和數據)\n#不需要備份數據的應用請在開頭使用!注釋 比如:!酷安 com.coolapk.market(僅忽略數據)' >"$nametxt"
|
||||||
echoRgb "請勿關閉腳本,等待提示結束"
|
echoRgb "請勿關閉腳本,等待提示結束"
|
||||||
rgb_a=118
|
rgb_a=118
|
||||||
starttime1="$(date -u "+%s")"
|
starttime1="$(date -u "+%s")"
|
||||||
echoRgb "提示! 腳本會屏蔽預裝應用" "0"
|
echoRgb "提示! 腳本默認會屏蔽預裝應用 如需備份請添加預裝應用白名單" "0"
|
||||||
xposed_name="$(appinfo -o pn -xm)"
|
xposed_name="$(appinfo -o pn -xm)"
|
||||||
Apk_info="$(appinfo -sort-i -d " " -o addXpTag:'Xposed: ',anwb,pn -pn $system -3 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)"
|
Apk_info="$(appinfo -sort-i -d " " -o addXpTag:'Xposed: ',anwb,pn -pn $system -3 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)"
|
||||||
[[ $Apk_info = "" ]] && {
|
[[ $Apk_info = "" ]] && {
|
||||||
@@ -1990,6 +2061,7 @@ Getlist)
|
|||||||
rc="0"
|
rc="0"
|
||||||
rd="0"
|
rd="0"
|
||||||
Q="0"
|
Q="0"
|
||||||
|
rb="0"
|
||||||
Output_list() {
|
Output_list() {
|
||||||
if [[ $(cat "$nametxt" | cut -f2 -d ' ' | egrep -w "^${app_1[1]}$") != ${app_1[1]} ]]; then
|
if [[ $(cat "$nametxt" | cut -f2 -d ' ' | egrep -w "^${app_1[1]}$") != ${app_1[1]} ]]; then
|
||||||
case ${app_1[1]} in
|
case ${app_1[1]} in
|
||||||
@@ -2012,7 +2084,7 @@ Getlist)
|
|||||||
echoRgb "$REPLY($rgb_a)"
|
echoRgb "$REPLY($rgb_a)"
|
||||||
let i++
|
let i++
|
||||||
else
|
else
|
||||||
echoRgb "${app_1[2]}非Xposed模塊 忽略輸出" "0"
|
echoRgb "${app_1[2]} 預裝應用 忽略輸出" "0"
|
||||||
let rc++
|
let rc++
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -2039,14 +2111,16 @@ Getlist)
|
|||||||
echo "$Apk_info" | sed 's/\///g ; s/\://g ; s/(//g ; s/)//g ; s/\[//g ; s/\]//g ; s/\-//g ; s/!//g' | while read; do
|
echo "$Apk_info" | sed 's/\///g ; s/\://g ; s/(//g ; s/)//g ; s/\[//g ; s/\]//g ; s/\-//g ; s/!//g' | while read; do
|
||||||
[[ $rgb_a -ge 229 ]] && rgb_a=118
|
[[ $rgb_a -ge 229 ]] && rgb_a=118
|
||||||
app_1=($REPLY $REPLY)
|
app_1=($REPLY $REPLY)
|
||||||
if [[ $blacklist_mode = true ]]; then
|
if [[ $(echo "$blacklist" | egrep -w "^${app_1[1]}$") != ${app_1[1]} ]]; then
|
||||||
if [[ $(echo "$blacklist" | egrep -w "^${app_1[1]}$") != ${app_1[1]} ]]; then
|
Output_list
|
||||||
|
else
|
||||||
|
if [[ $blacklist_mode = false ]]; then
|
||||||
Output_list
|
Output_list
|
||||||
|
let rb++
|
||||||
else
|
else
|
||||||
echoRgb "${app_1[2]}黑名單應用 不輸出" "0"
|
echoRgb "${app_1[2]}黑名單應用 不輸出" "0"
|
||||||
|
let rb++
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
Output_list
|
|
||||||
fi
|
fi
|
||||||
if [[ $LR = $Apk_Quantity ]]; then
|
if [[ $LR = $Apk_Quantity ]]; then
|
||||||
echo "$REPLY2">>"$nametxt"
|
echo "$REPLY2">>"$nametxt"
|
||||||
@@ -2055,7 +2129,7 @@ Getlist)
|
|||||||
echoRgb "\n -輸出異常 請將$conf_path中的debug_list=\"0\"改為1或是重新執行本腳本" "0"
|
echoRgb "\n -輸出異常 請將$conf_path中的debug_list=\"0\"改為1或是重新執行本腳本" "0"
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
[[ $tmp != "" ]] && echoRgb "\n -第三方apk數量=\"$Apk_Quantity\"\n -已過濾=\"$rc\"\n -xposed=\"$rd\"\n -存在列表中=\"$Q\"\n -輸出=\"$i\""
|
[[ $tmp != "" ]] && echoRgb "\n -第三方apk數量=\"$Apk_Quantity\"\n -已過濾=\"$rc\"\n -xposed=\"$rd\"\n -黑名單應用=\"$rb\"\n -存在列表中=\"$Q\"\n -輸出=\"$i\""
|
||||||
fi
|
fi
|
||||||
let rgb_a++ LR++
|
let rgb_a++ LR++
|
||||||
done
|
done
|
||||||
@@ -2067,7 +2141,7 @@ Getlist)
|
|||||||
name2="$(sed -e '/^$/d' "$nametxt" | sed -n "${D}p" | awk '{print $2}')"
|
name2="$(sed -e '/^$/d' "$nametxt" | sed -n "${D}p" | awk '{print $2}')"
|
||||||
if [[ $name1 != "" && $name2 != "" ]]; then
|
if [[ $name1 != "" && $name2 != "" ]]; then
|
||||||
if [[ $(echo "$Apk_info2" | egrep -w "^$name2$") != "" ]]; then
|
if [[ $(echo "$Apk_info2" | egrep -w "^$name2$") != "" ]]; then
|
||||||
[[ $Tmplist = "" ]] && Tmplist='#不需要備份的應用請在開頭注釋# 比如#酷安 xxxxxxxx\n#不需要備份數據比如!酷安 xxxxxxxx應用名前方方加一個驚嘆號即可 注意是應用名不是包名'
|
[[ $Tmplist = "" ]] && Tmplist='#不需要備份的應用請在開頭使用#注釋 比如:#酷安 com.coolapk.market(忽略安裝包和數據)\n#不需要備份數據的應用請在開頭使用!注釋 比如:!酷安 com.coolapk.market(僅忽略數據)'
|
||||||
Tmplist="$Tmplist\n$name1 $name2"
|
Tmplist="$Tmplist\n$name1 $name2"
|
||||||
else
|
else
|
||||||
case $name1 in
|
case $name1 in
|
||||||
@@ -2105,14 +2179,23 @@ backup_media)
|
|||||||
filesize="$(du -s "$Backup_folder" | awk '{print $1}')"
|
filesize="$(du -s "$Backup_folder" | awk '{print $1}')"
|
||||||
[[ -f $app_details ]] && . "$app_details" &>/dev/null || touch "$app_details"
|
[[ -f $app_details ]] && . "$app_details" &>/dev/null || touch "$app_details"
|
||||||
mediatxt="$Backup/mediaList.txt"
|
mediatxt="$Backup/mediaList.txt"
|
||||||
[[ ! -f $mediatxt ]] && echo "#不需要恢復的資料夾請在開頭注釋# 比如#媒體" > "$mediatxt"
|
[[ ! -f $mediatxt ]] && echo "#不需要恢復的資料夾請在開頭使用#注釋 比如:#Download" > "$mediatxt"
|
||||||
echo "$script">"$TMPDIR/scriptTMP"
|
echo "$script">"$TMPDIR/scriptTMP"
|
||||||
Set_screen_pause_seconds on
|
Set_screen_pause_seconds on
|
||||||
{
|
{
|
||||||
echo "$Custom_path" | grep -v "#" | sed -e '/^$/d' | sed 's/\/$//' | while read; do
|
echo "$Custom_path" | grep -v "#" | sed -e '/^$/d' | sed 's/\/$//' | while read; do
|
||||||
echoRgb "備份第$A/$B個資料夾 剩下$((B - A))個" "3"
|
echoRgb "備份第$A/$B個資料夾 剩下$((B - A))個" "3"
|
||||||
starttime2="$(date -u "+%s")"
|
starttime2="$(date -u "+%s")"
|
||||||
Backup_data "${REPLY##*/}" "$REPLY"
|
if [[ ${REPLY##*/} = adb ]]; then
|
||||||
|
if [[ $ksu != ksu ]]; then
|
||||||
|
Backup_data "${REPLY##*/}" "$REPLY"
|
||||||
|
else
|
||||||
|
echoRgb "KSU不支持備份adb模塊資料夾" "0"
|
||||||
|
Set_back_1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
Backup_data "${REPLY##*/}" "$REPLY"
|
||||||
|
fi
|
||||||
endtime 2 "${REPLY##*/}備份" "1"
|
endtime 2 "${REPLY##*/}備份" "1"
|
||||||
echoRgb "完成$((A * 100 / B))% $hx$(echo "$Occupation_status" | awk 'END{print "剩餘:"$1"使用率:"$2}')" "2" && echoRgb "____________________________________" && let A++
|
echoRgb "完成$((A * 100 / B))% $hx$(echo "$Occupation_status" | awk 'END{print "剩餘:"$1"使用率:"$2}')" "2" && echoRgb "____________________________________" && let A++
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user