This commit is contained in:
Yawasau
2024-12-28 22:57:47 +08:00
parent e979cf54d2
commit a8c26d334c
2 changed files with 152 additions and 134 deletions

View File

@@ -2387,6 +2387,8 @@
"PJF110" "OnePlus Ace 3V 國行版" "PJF110" "OnePlus Ace 3V 國行版"
"PJX110" "OnePlus Ace 3 Pro 國行版" "PJX110" "OnePlus Ace 3 Pro 國行版"
"PJZ110" "OnePlus 13 國行版" "PJZ110" "OnePlus 13 國行版"
"PKG110" "OnePlus Ace 5 國行版"
"PKR110" "OnePlus Ace 5 Pro 國行版"
"AC2001" "OnePlus Nord 印度版" "AC2001" "OnePlus Nord 印度版"
"AC2003" "OnePlus Nord 歐洲版 / 國際版" "AC2003" "OnePlus Nord 歐洲版 / 國際版"
"DN2101" "OnePlus Nord 2 印度版" "DN2101" "OnePlus Nord 2 印度版"
@@ -2424,9 +2426,10 @@
"DE2118" "OnePlus Nord N200 T-Mobile 版" "DE2118" "OnePlus Nord N200 T-Mobile 版"
"CPH2389" "OnePlus Nord N300" "CPH2389" "OnePlus Nord N300"
"CPH2551" "OnePlus Open" "CPH2551" "OnePlus Open"
"OPD2203" "OnePlus Pad" "OPD2203" "OnePlus Pad (國際)"
"OPD2304" "OnePlus Pad Go LTE" "OPD2304" "OnePlus Pad Go LTE"
"OPD2305" "OnePlus Pad Go Wi-Fi" "OPD2305" "OnePlus Pad Go Wi-Fi"
"OPD2407" "OnePlus Pad (國行)"
"OPD2404" "OnePlus Pad Pro" "OPD2404" "OnePlus Pad Pro"
"OPD2403" "OnePlus Pad 2" "OPD2403" "OnePlus Pad 2"
"W101IN" "OnePlus Band 印度版" "W101IN" "OnePlus Band 印度版"
@@ -2603,6 +2606,7 @@
"RMX5000" "realme 13+ 5G" "RMX5000" "realme 13+ 5G"
"RMX3990" "realme 13 Pro 5G" "RMX3990" "realme 13 Pro 5G"
"RMX3921" "realme 13 Pro+ 5G" "RMX3921" "realme 13 Pro+ 5G"
"RMX3940" "realme 14x 5G"
"RMX1921" "realme XT Global" "RMX1921" "realme XT Global"
"RMX1922" "realme XT India" "RMX1922" "realme XT India"
"RMX1992" "realme X2 India" "RMX1992" "realme X2 India"
@@ -2853,7 +2857,7 @@
"V2343A" "vivo Y200 5G" "V2343A" "vivo Y200 5G"
"V2361GA" "vivo Y200 GT 5G" "V2361GA" "vivo Y200 GT 5G"
"V2353DA" "vivo Y200t 5G" "V2353DA" "vivo Y200t 5G"
"V2435A" "vivo Y300" "V2435A" "vivo Y300 5G"
"V2410A" "vivo Y300 Pro 5G" "V2410A" "vivo Y300 Pro 5G"
"V2115A" "vivo T1" "V2115A" "vivo T1"
"V2188A" "vivo T2x" "V2188A" "vivo T2x"
@@ -2934,6 +2938,7 @@
"V2312A" "iQOO Z8x" "V2312A" "iQOO Z8x"
"V2361A" "iQOO Z9" "V2361A" "iQOO Z9"
"V2352A" "iQOO Z9 Turbo" "V2352A" "iQOO Z9 Turbo"
"V2352GA" "iQOO Z9 Turbo 長續航版"
"V2417A" "iQOO Z9 Turbo+" "V2417A" "iQOO Z9 Turbo+"
"V2353A" "iQOO Z9x" "V2353A" "iQOO Z9x"
"V2023A" "iQOO U1" "V2023A" "iQOO U1"
@@ -3284,6 +3289,7 @@
"PKD130" "OPPO A3x" "PKD130" "OPPO A3x"
"PKL110" "OPPO A3i" "PKL110" "OPPO A3i"
"PJY110" "OPPO A3 Pro" "PJY110" "OPPO A3 Pro"
"PKP110" "OPPO A5 Pro"
"PBCM30" "OPPO K1" "PBCM30" "OPPO K1"
"PCGM00" "OPPO K3 全網通版" "PCGM00" "OPPO K3 全網通版"
"PCGT00" "OPPO K3 移動版" "PCGT00" "OPPO K3 移動版"

View File

@@ -9,7 +9,7 @@ MODDIR="$MODDIR"
MODDIR_NAME="${MODDIR##*/}" MODDIR_NAME="${MODDIR##*/}"
tools_path="$MODDIR/tools" tools_path="$MODDIR/tools"
script="${0##*/}" script="${0##*/}"
backup_version="202412011445" backup_version="202412282251"
[[ $SHELL = *mt* ]] && echo "請勿使用MT管理器拓展包環境執行,請更換系統環境" && exit 2 [[ $SHELL = *mt* ]] && echo "請勿使用MT管理器拓展包環境執行,請更換系統環境" && exit 2
update_backup_settings_conf() { update_backup_settings_conf() {
echo "#0關閉音量鍵選擇 (如選項未設置,則強制使用音量鍵選擇) echo "#0關閉音量鍵選擇 (如選項未設置,則強制使用音量鍵選擇)
@@ -756,10 +756,7 @@ update_script() {
esac esac
echoRgb "$zipFile更新" echoRgb "$zipFile更新"
if [[ -d $path_hierarchy/tools ]]; then if [[ -d $path_hierarchy/tools ]]; then
cp -r "$path_hierarchy/tools" "$TMPDIR" mv "$path_hierarchy/tools" "$TMPDIR"
mv "$zipFile" "$path_hierarchy"
zipFile="$path_hierarchy/${zipFile##*/}"
rm -rf "$path_hierarchy/tools"
unzip -o "$zipFile" tools/* -d "$path_hierarchy" | sed 's/inflating/釋放/g ; s/creating/創建/g ; s/Archive/解壓縮/g' unzip -o "$zipFile" tools/* -d "$path_hierarchy" | sed 's/inflating/釋放/g ; s/creating/創建/g ; s/Archive/解壓縮/g'
echo_log "解壓縮${zipFile##*/}" echo_log "解壓縮${zipFile##*/}"
if [[ $result = 0 ]]; then if [[ $result = 0 ]]; then
@@ -794,7 +791,7 @@ update_script() {
echoRgb "$update_path/tools已經更新完成" echoRgb "$update_path/tools已經更新完成"
fi fi
else else
cp -r "$TMPDIR/tools" "$MODDIR" mv "$TMPDIR/tools" "$MODDIR"
fi fi
rm -rf "$TMPDIR"/* "$zipFile" "$MODDIR/tools.sh" rm -rf "$TMPDIR"/* "$zipFile" "$MODDIR/tools.sh"
echoRgb "更新完成 請重新執行腳本" "2" echoRgb "更新完成 請重新執行腳本" "2"
@@ -1033,10 +1030,11 @@ size() {
} }
#分區佔用信息 #分區佔用信息
partition_info() { partition_info() {
unset Skip
Occupation_status="$(df -B1 "${1%/*}" | sed -n 's|% /.*|%|p' | awk '{print $(NF-1)}')" Occupation_status="$(df -B1 "${1%/*}" | sed -n 's|% /.*|%|p' | awk '{print $(NF-1)}')"
Filesize2="$(size "$Filesize")" Filesize2="$(size "$Filesize")"
echo " -$2大小:$Filesize2 剩餘大小:$(size "$Occupation_status")" echo " -$2大小:$Filesize2 剩餘大小:$(size "$Occupation_status")"
[[ $Filesize != "" ]] && [[ $(echo "$Filesize > $Occupation_status" | bc) -eq 1 ]] && echoRgb "$2備份大小將超出rom可用大小" "0" && exit 2 [[ $Filesize != "" ]] && [[ $(echo "$Filesize > $Occupation_status" | bc) -eq 1 ]] && echoRgb "$2備份大小將超出rom可用大小" "0" && Skip=1
Occupation_status="$(df -h "${Backup%/*}" | sed -n 's|% /.*|%|p' | awk '{print $(NF-1),$(NF)}')" Occupation_status="$(df -h "${Backup%/*}" | sed -n 's|% /.*|%|p' | awk '{print $(NF-1),$(NF)}')"
} }
kill_app() { kill_app() {
@@ -1080,53 +1078,55 @@ Backup_apk() {
Filesize="$(find "$apk_path2" -type f -printf "%s\n" | awk '{s+=$1} END {print s}')" Filesize="$(find "$apk_path2" -type f -printf "%s\n" | awk '{s+=$1} END {print s}')"
rm -rf "$Backup_folder/apk.tar"* rm -rf "$Backup_folder/apk.tar"*
partition_info "$Backup" "$name1 apk" partition_info "$Backup" "$name1 apk"
#備份apk if [[ $Skip != 1 ]]; then
echoRgb "$1" #備份apk
echo "$apk_path" | sed -e '/^$/d' | while read; do echoRgb "$1"
echoRgb "${REPLY##*/} $(size "$REPLY")" echo "$apk_path" | sed -e '/^$/d' | while read; do
done echoRgb "${REPLY##*/} $(size "$REPLY")"
( done
cd "$apk_path2" (
case $Compression_method in cd "$apk_path2"
tar | TAR | Tar) tar --checkpoint-action="ttyout=%T\r" -cf "$Backup_folder/apk.tar" *.apk ;; case $Compression_method in
zstd | Zstd | ZSTD) tar --checkpoint-action="ttyout=%T\r" -cf - *.apk | zstd --ultra -3 -T0 -q --priority=rt >"$Backup_folder/apk.tar.zst" ;; tar | TAR | Tar) tar --checkpoint-action="ttyout=%T\r" -cf "$Backup_folder/apk.tar" *.apk ;;
esac zstd | Zstd | ZSTD) tar --checkpoint-action="ttyout=%T\r" -cf - *.apk | zstd --ultra -3 -T0 -q --priority=rt >"$Backup_folder/apk.tar.zst" ;;
) esac
echo_log "備份$apk_number個Apk" )
if [[ $result = 0 ]]; then echo_log "備份$apk_number個Apk"
Validation_file "$Backup_folder/apk.tar"* if [[ $result = 0 ]]; then
if [[ $result = 0 ]]; then Validation_file "$Backup_folder/apk.tar"*
[[ $(sed -e '/^$/d' "$txt2" 2>/dev/null | awk '{print $2}' | grep -w "^${name2}$" | head -1) = "" ]] && echo "${Backup_folder##*/} $name2" >>"$txt2" if [[ $result = 0 ]]; then
[[ $apk_version != "" ]] && { [[ $(sed -e '/^$/d' "$txt2" 2>/dev/null | awk '{print $2}' | grep -w "^${name2}$" | head -1) = "" ]] && echo "${Backup_folder##*/} $name2" >>"$txt2"
echoRgb "覆蓋app_details" [[ $apk_version != "" ]] && {
jq --arg apk_version "$apk_version2" --arg software "$name1" '.[$software].apk_version = $apk_version' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json echoRgb "覆蓋app_details"
} || { jq --arg apk_version "$apk_version2" --arg software "$name1" '.[$software].apk_version = $apk_version' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
echoRgb "新增app_details" } || {
extra_content="{ echoRgb "新增app_details"
\"$name1\": { extra_content="{
\"PackageName\": \"$name2\", \"$name1\": {
\"apk_version\": \"$apk_version2\" \"PackageName\": \"$name2\",
} \"apk_version\": \"$apk_version2\"
}" }
jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json }"
} jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
else }
rm -rf "$Backup_folder" else
fi rm -rf "$Backup_folder"
if [[ $name2 = com.android.chrome ]]; then fi
#刪除所有舊apk ,保留一個最新apk進行備份 if [[ $name2 = com.android.chrome ]]; then
ReservedNum=1 #刪除所有舊apk ,保留一個最新apk進行備份
FileNum="$(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | wc -l)" ReservedNum=1
while [[ $FileNum -gt $ReservedNum ]]; do FileNum="$(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | wc -l)"
OldFile="$(ls -rt /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | head -1)" while [[ $FileNum -gt $ReservedNum ]]; do
rm -rf "${OldFile%/*/*}" && echoRgb "刪除文件:${OldFile%/*/*}" OldFile="$(ls -rt /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | head -1)"
let "FileNum--" rm -rf "${OldFile%/*/*}" && echoRgb "刪除文件:${OldFile%/*/*}"
done let "FileNum--"
[[ -f $(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null) && $(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | wc -l) = 1 ]] && cp -r "$(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null)" "$Backup_folder/nmsl.apk" done
fi [[ -f $(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null) && $(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | wc -l) = 1 ]] && cp -r "$(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null)" "$Backup_folder/nmsl.apk"
else fi
rm -rf "$Backup_folder" else
fi rm -rf "$Backup_folder"
fi
fi
else else
let osj++ let osj++
rm -rf "$Backup_folder" rm -rf "$Backup_folder"
@@ -1195,71 +1195,73 @@ Backup_data() {
esac esac
rm -rf "$Backup_folder/$1.tar"* rm -rf "$Backup_folder/$1.tar"*
partition_info "$Backup" "$1" partition_info "$Backup" "$1"
echoRgb "備份$1數據" if [[ $Skip != 1 ]]; then
# 判斷是否超過指定大小 echoRgb "備份$1數據"
if [[ $Filesize2 != *"bytes"* ]]; then # 判斷是否超過指定大小
if [[ $Filesize2 = *"KB"* ]]; then if [[ $Filesize2 != *"bytes"* ]]; then
if [[ $(echo "${Filesize2% KB}" | bc) > 1 ]]; then if [[ $Filesize2 = *"KB"* ]]; then
Start_backup="true" if [[ $(echo "${Filesize2% KB}" | bc) > 1 ]]; then
Start_backup="true"
else
Start_backup="false"
fi
else else
Start_backup="false" Start_backup="true"
fi fi
else else
Start_backup="true" Start_backup="false"
fi fi
else [[ $Start_backup = true ]] && {
Start_backup="false" case $1 in
fi user|user_de)
[[ $Start_backup = true ]] && { case $Compression_method in
case $1 in tar | Tar | TAR) tar --checkpoint-action="ttyout=%T\r" --exclude="${data_path##*/}/.ota" --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/lib" --exclude="${data_path##*/}/code_cache" --exclude="${data_path##*/}/no_backup" --warning=no-file-changed -cpf "$Backup_folder/$1.tar" -C "${data_path%/*}" "${data_path##*/}" 2>/dev/null ;;
user|user_de) zstd | Zstd | ZSTD) tar --checkpoint-action="ttyout=%T\r" --exclude="${data_path##*/}/.ota" --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/lib" --exclude="${data_path##*/}/code_cache" --exclude="${data_path##*/}/no_backup" --warning=no-file-changed -cpf - -C "${data_path%/*}" "${data_path##*/}" | zstd --ultra -3 -T0 -q --priority=rt >"$Backup_folder/$1.tar.zst" 2>/dev/null ;;
case $Compression_method in esac
tar | Tar | TAR) tar --checkpoint-action="ttyout=%T\r" --exclude="${data_path##*/}/.ota" --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/lib" --exclude="${data_path##*/}/code_cache" --exclude="${data_path##*/}/no_backup" --warning=no-file-changed -cpf "$Backup_folder/$1.tar" -C "${data_path%/*}" "${data_path##*/}" 2>/dev/null ;; ;;
zstd | Zstd | ZSTD) tar --checkpoint-action="ttyout=%T\r" --exclude="${data_path##*/}/.ota" --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/lib" --exclude="${data_path##*/}/code_cache" --exclude="${data_path##*/}/no_backup" --warning=no-file-changed -cpf - -C "${data_path%/*}" "${data_path##*/}" | zstd --ultra -3 -T0 -q --priority=rt >"$Backup_folder/$1.tar.zst" 2>/dev/null ;; *)
esac case $Compression_method in
;; tar | Tar | TAR) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/QQ" --exclude="${data_path##*/}/Telegram" --exclude="${data_path##*/}"/.* --warning=no-file-changed -cpf "$Backup_folder/$1.tar" -C "${data_path%/*}" "${data_path##*/}" ;;
*) zstd | Zstd | ZSTD) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/QQ" --exclude="${data_path##*/}/Telegram" --exclude="${data_path##*/}"/.* --warning=no-file-changed -cpf - -C "${data_path%/*}" "${data_path##*/}" | zstd --ultra -3 -T0 -q --priority=rt >"$Backup_folder/$1.tar.zst" ;;
case $Compression_method in esac
tar | Tar | TAR) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/QQ" --exclude="${data_path##*/}/Telegram" --exclude="${data_path##*/}"/.* --warning=no-file-changed -cpf "$Backup_folder/$1.tar" -C "${data_path%/*}" "${data_path##*/}" ;; ;;
zstd | Zstd | ZSTD) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/QQ" --exclude="${data_path##*/}/Telegram" --exclude="${data_path##*/}"/.* --warning=no-file-changed -cpf - -C "${data_path%/*}" "${data_path##*/}" | zstd --ultra -3 -T0 -q --priority=rt >"$Backup_folder/$1.tar.zst" ;;
esac esac
;; echo_log "備份$1數據"
esac } || {
echo_log "備份$1數據" echoRgb "$1數據 $Filesize2太小" "0" && result=1
} || { }
echoRgb "$1數據 $Filesize2太小" "0" && result=1 if [[ $result = 0 ]]; then
} Validation_file "$Backup_folder/$1.tar"*
if [[ $result = 0 ]]; then if [[ $result = 0 ]]; then
Validation_file "$Backup_folder/$1.tar"* if [[ ! $Filesize -eq 0 ]]; then
if [[ $result = 0 ]]; then size2="$(stat -c %s "$Backup_folder/$1.tar"*)"
if [[ ! $Filesize -eq 0 ]]; then rate="$(echo "scale=2; (1 - ($size2 / $Filesize)) * 100" | bc)"
size2="$(stat -c %s "$Backup_folder/$1.tar"*)" echoRgb "壓縮率${rate}% 大小$(size "$size2")"
rate="$(echo "scale=2; (1 - ($size2 / $Filesize)) * 100" | bc)" fi
echoRgb "壓縮率${rate}% 大小$(size "$size2")" [[ ${Backup_folder##*/} = Media ]] && [[ $(sed -e '/^$/d' "$mediatxt" | grep -w "${REPLY##*/}.tar$" | head -1) = "" ]] && echo "$FILE_NAME" >> "$mediatxt"
fi if [[ $zsize != "" ]]; then
[[ ${Backup_folder##*/} = Media ]] && [[ $(sed -e '/^$/d' "$mediatxt" | grep -w "${REPLY##*/}.tar$" | head -1) = "" ]] && echo "$FILE_NAME" >> "$mediatxt" extra_content="{
if [[ $zsize != "" ]]; then \"$1\": {
extra_content="{ \"path\": \"$2\",
\"$1\": { \"Size\": \"$Filesize\"
\"path\": \"$2\", }
\"Size\": \"$Filesize\" }"
} jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
}" else
jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json extra_content="{
else \"$1\": {
extra_content="{ \"Size\": \"$Filesize\"
\"$1\": { }
\"Size\": \"$Filesize\" }"
} jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
}" fi
jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json else
fi rm -rf "$Backup_folder/$1".tar.*
else fi
rm -rf "$Backup_folder/$1".tar.* fi
fi [[ $Compression_method1 != "" ]] && Compression_method="$Compression_method1"
fi unset Compression_method1
[[ $Compression_method1 != "" ]] && Compression_method="$Compression_method1" fi
unset Compression_method1
else else
[[ $Size != "" ]] && echoRgb "$1數據無發生變化 跳過備份" "2" [[ $Size != "" ]] && echoRgb "$1數據無發生變化 跳過備份" "2"
fi fi
@@ -1820,11 +1822,12 @@ backup)
[[ $setDisplayPowerMode = "" ]] && { [[ $setDisplayPowerMode = "" ]] && {
echoRgb "應用備份開始後關閉螢幕\n -音量上關閉,音量下不關閉" "2" echoRgb "應用備份開始後關閉螢幕\n -音量上關閉,音量下不關閉" "2"
get_version "關閉" "不關閉" && setDisplayPowerMode="$branch" get_version "關閉" "不關閉" && setDisplayPowerMode="$branch"
} } || isBoolean "$setDisplayPowerMode" "setDisplayPowerMode" && setDisplayPowerMode="$nsx"
[[ $Background_apps_ignore = "" ]] && { [[ $Background_apps_ignore = "" ]] && {
echoRgb "存在進程忽略備份\n -音量上忽略,音量下備份" "2" echoRgb "存在進程忽略備份\n -音量上忽略,音量下備份" "2"
get_version "忽略" "備份" && Background_apps_ignore="$branch" get_version "忽略" "備份" && Background_apps_ignore="$branch"
} ;; } || isBoolean "$Background_apps_ignore" "Background_apps_ignore" && Background_apps_ignore="$nsx"
;;
2) 2)
[[ $Backup_Mode = "" ]] && { [[ $Backup_Mode = "" ]] && {
Enter_options "輸入1備份應用+數據輸入0僅應用不包含數據" "應用+數據" "僅應用" && isBoolean "$parameter" "Backup_Mode" && Backup_Mode="$nsx" Enter_options "輸入1備份應用+數據輸入0僅應用不包含數據" "應用+數據" "僅應用" && isBoolean "$parameter" "Backup_Mode" && Backup_Mode="$nsx"
@@ -1858,7 +1861,7 @@ backup)
[[ $setDisplayPowerMode = "" ]] && { [[ $setDisplayPowerMode = "" ]] && {
Enter_options "應用備份開始後關閉螢幕\n -輸入1關閉0不關閉" "關閉" "不關閉" && isBoolean "$parameter" "setDisplayPowerMode" && setDisplayPowerMode="$nsx" Enter_options "應用備份開始後關閉螢幕\n -輸入1關閉0不關閉" "關閉" "不關閉" && isBoolean "$parameter" "setDisplayPowerMode" && setDisplayPowerMode="$nsx"
} || { } || {
isBoolean "$backup_media" "backup_media" && backup_media="$nsx" isBoolean "$setDisplayPowerMode" "setDisplayPowerMode" && setDisplayPowerMode="$nsx"
} }
[[ $Background_apps_ignore = "" ]] && { [[ $Background_apps_ignore = "" ]] && {
Enter_options "存在進程忽略備份\n -輸入1不備份0備份" "忽略" "備份" && isBoolean "$parameter" "Background_apps_ignore" && Background_apps_ignore="$nsx" Enter_options "存在進程忽略備份\n -輸入1不備份0備份" "忽略" "備份" && isBoolean "$parameter" "Background_apps_ignore" && Background_apps_ignore="$nsx"
@@ -1891,7 +1894,7 @@ backup)
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 -備份模式:$Backup_Mode\n -備份外部數據:$Backup_obb_data\n -備份user數據:$Backup_user_data\n -自定義目錄備份:$backup_media\n -存在進程忽略備份:$Background_apps_ignore" echoRgb "配置詳細:\n -壓縮方式:$Compression_method\n -音量鍵確認:$Lo\n -更新:$update\n -備份模式:$Backup_Mode\n -備份外部數據:$Backup_obb_data\n -備份user數據:$Backup_user_data\n -自定義目錄備份:$backup_media\n -存在進程忽略備份:$Background_apps_ignore\n -關閉螢幕:$setDisplayPowerMode"
D="1" D="1"
Apk_info="$(pm list packages -u --user "$user" | cut -f2 -d ':' | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)" Apk_info="$(pm list packages -u --user "$user" | cut -f2 -d ':' | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)"
if [[ $Apk_info != "" ]]; then if [[ $Apk_info != "" ]]; then
@@ -2381,18 +2384,8 @@ Restore|Restore2)
restore_permissions restore_permissions
Ssaid="$(jq -r '.[] | select(.Ssaid != null).Ssaid' "$app_details")" Ssaid="$(jq -r '.[] | select(.Ssaid != null).Ssaid' "$app_details")"
if [[ $Ssaid != "" ]]; then if [[ $Ssaid != "" ]]; then
if [[ $(get_ssaid "$name2") != $Ssaid ]]; then SSAID_Package="$(echo "$name1 $name2 $Ssaid")"
set_ssaid "$name2" "$Ssaid" SSAID_Package2="$(echo "$SSAID_Package\n$SSAID_Package2")"
if [[ $(get_ssaid "$name2") = $Ssaid ]]; then
echoRgb "SSAID恢復成功" "1"
SSAID_Package="$(echo "$name1 \"$name2\"")"
SSAID_Package2="$(echo "$SSAID_Package\n$SSAID_Package2")"
else
echoRgb "SSAID恢復失敗" "0"
SSAID_Package1="$(echo "$name1 \"$name2\"")"
SSAID_Package3="$(echo "$SSAID_Package1\n$SSAID_Package3")"
fi
fi
unset Ssaid unset Ssaid
fi fi
} }
@@ -2411,7 +2404,26 @@ Restore|Restore2)
fi fi
if [[ $i = $r && $operate != Restore2 ]]; then if [[ $i = $r && $operate != Restore2 ]]; then
endtime 1 "應用恢復" "2" endtime 1 "應用恢復" "2"
echoRgb "\n -下列為已設置SSAID應用,請勿打開需要重啟後才能使用否則ssaid設置失敗\n$SSAID_Package2\n -下列為設置SSAID失敗應用....\n$SSAID_Package3" "3" [[ $SSAID_Package2 != "" ]] && {
echoRgb "開始恢復saaid" "0"
echo "$SSAID_Package2" | while read; do
Ssaid="$(echo "$REPLY" | awk '{print $3}')"
name1="$(echo "$REPLY" | awk '{print $1}')"
name2="$(echo "$REPLY" | awk '{print $2}')"
set_ssaid "$name2" "$Ssaid"
if [[ $(get_ssaid "$name2") = $Ssaid ]]; then
echoRgb "$name1 SSAID恢復成功" "1"
SSAID_Package0="$(echo "$name1 \"$name2\"")"
SSAID_Package1="$(echo "$SSAID_Package0\n$SSAID_Package1")"
else
echoRgb "$name1 SSAID恢復失敗" "0"
SSAID_Package3="$(echo "$name1 \"$name2\"")"
SSAID_Package4="$(echo "$SSAID_Package3\n$SSAID_Package4")"
fi
unset Ssaid
done
echoRgb "SSAID恢復後必須重新開機套用,否則應用閃退,如果沒有應用恢復ssaid則無須重啟" "0"
}
if [[ $media_recovery = true ]]; then if [[ $media_recovery = true ]]; then
starttime1="$(date -u "+%s")" starttime1="$(date -u "+%s")"
app_details="$Backup_folder2/app_details.json" app_details="$Backup_folder2/app_details.json"
@@ -2447,7 +2459,7 @@ Restore|Restore2)
done done
Set_screen_pause_seconds off Set_screen_pause_seconds off
starttime1="$TIME" starttime1="$TIME"
echoRgb "$DX完成" && endtime 1 "$DX開始到結束" && [[ $SSAID_Package2 != "" ]] && echoRgb "SSAID恢復後必須重啟套用,如發現應用閃退請重新開機" "0" echoRgb "$DX完成" && endtime 1 "$DX開始到結束"
rm -rf "$TMPDIR"/* rm -rf "$TMPDIR"/*
} & } &
wait && exit wait && exit