diff --git a/tools/META-INF/com/google/android/update-binary b/tools/META-INF/com/google/android/update-binary index 6879ef3..26860fe 100644 --- a/tools/META-INF/com/google/android/update-binary +++ b/tools/META-INF/com/google/android/update-binary @@ -90,7 +90,7 @@ Backup_apk() { ui_print "$1" [[ $lxj -ge 95 ]] && ui_print "$data空間不足,達到$lxj%" && exit 2 rm -rf "$Backup_folder"/*.apk - [[ $(cat "$Backup/應用列表.txt" | grep -v "#" | sed -e '/^$/d' | awk '{print $2}' | grep -w "^${name}$" | head -1) = "" ]] && echo "$name2 $name" >>"$Backup/應用列表.txt" + [[ $(cat "$Backup/應用列表.txt" | grep -v "#" | sed -e '/^$/d' | awk '{print $2}' | grep -w "^${name2}$" | head -1) = "" ]] && echo "$name1 $name2" >>"$Backup/應用列表.txt" find "$apk_path" -maxdepth 1 -name "*.apk" -type f | while read; do path="$REPLY" b_size="$(ls -l "$path" | awk '{print $5}')" @@ -105,11 +105,11 @@ Backup_apk() { esac) echo_log "備份$apk_number個Apk" if [[ $result = 0 ]]; then - [[ $PackageName = "" ]] && echo "PackageName=\"$name\"" >>"$app_details" - [[ $ChineseName = "" ]] && echo "ChineseName=\"$name2\"" >>"$app_details" + [[ $PackageName = "" ]] && echo "PackageName=\"$name2\"" >>"$app_details" + [[ $ChineseName = "" ]] && echo "ChineseName=\"$name1\"" >>"$app_details" [[ ! -f $Backup_folder/還原備份.sh ]] && cp -r "$MODDIR/script/restore2" "$Backup_folder/還原備份.sh" fi - if [[ $name = com.android.chrome ]]; then + if [[ $name2 = com.android.chrome ]]; then #刪除所有舊apk ,保留一個最新apk進行備份 ReservedNum=1 FileNum="$(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | wc -l)" @@ -121,16 +121,16 @@ Backup_apk() { done [[ -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" fi - [[ $name = bin.mt.plus && -f $apk_path/base.apk && ! -f $Backup/$name2.apk ]] && cp -r "$apk_path/base.apk" "$Backup/$name2.apk" + [[ $name2 = bin.mt.plus && -f $apk_path/base.apk && ! -f $Backup/$name1.apk ]] && cp -r "$apk_path/base.apk" "$Backup/$name1.apk" unset PackageName ChineseName ; D=1 } #檢測數據位置進行備份 Backup_data() { unset zsize case $1 in - user) data_path="$path2/$name" ;; - data) data_path="$path/$1/$name" ;; - obb) data_path="$path/$1/$name" ;; + user) data_path="$path2/$name2" ;; + data) data_path="$path/$1/$name2" ;; + obb) data_path="$path/$1/$name2" ;; *) [[ -f $app_details ]] && data_path="$2" && Compression_method=tar && zsize=1 ;; esac if [[ -d $data_path ]]; then @@ -172,26 +172,34 @@ starttime1="$(date -u "+%s")" { while [[ $i -le $r ]]; do ui_print "備份第$i個應用 總共$r個 剩下$((r-i))個應用" - name="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" - name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" + name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" + name1="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" lxj="$(df -h "$data" | awk 'END{print $4}' | sed 's/%//g')" - if [[ $name2 = *! || $name2 = *! ]]; then - name2="$(echo "$name2" | sed 's/!//g ; s/!//g')" - ui_print "跳過備份$name2 所有數據" + if [[ $name1 = *! || $name1 = *! ]]; then + name1="$(echo "$name1" | sed 's/!//g ; s/!//g')" + ui_print "跳過備份$name1 所有數據" No_backupdata=1 else [[ $No_backupdata != "" ]] && unset No_backupdata fi - Backup_folder="$Backup/${name2}[${name}]" + Backup_folder="$Backup/$name1" app_details="$Backup_folder/app_details" - [[ -f $app_details ]] && . "$app_details" - [[ $name = "" ]] && ui_print "警告! 應用列表.txt應用包名獲取失敗,可能修改有問題" && exit 1 + if [[ -f $app_details ]]; then + . "$app_details" + if [[ $PackageName != $name2 ]]; then + unset ChineseName PackageName + Backup_folder="$Backup/${name1}[${name2}]" + app_details="$Backup_folder/app_details" + [[ -f $app_details ]] && . "$app_details" + fi + fi + [[ $name2 = "" ]] && ui_print "警告! 應用列表.txt應用包名獲取失敗,可能修改有問題" && exit 1 apk_path="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $3}')" if [[ -d $apk_path ]]; then starttime2="$(date -u "+%s")" - ui_print "備份$name2 ($name)" - [[ $name = com.tencent.mobileqq ]] && ui_print "QQ可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的軟件備份" - [[ $name = com.tencent.mm ]] && ui_print "WX可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的軟件備份" + ui_print "備份$name1 ($name2)" + [[ $name2 = com.tencent.mobileqq ]] && ui_print "QQ可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的軟件備份" + [[ $name2 = com.tencent.mm ]] && ui_print "WX可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的軟件備份" apk_number="$(find "$apk_path" -maxdepth 1 -name "*.apk" -type f 2>/dev/null | wc -l)" if [[ $apk_number = 1 ]]; then if [[ $Splist = false ]]; then @@ -213,10 +221,10 @@ while [[ $i -le $r ]]; do #備份user數據 [[ $Backup_user_data = true ]] && Backup_data "user" fi - endtime 2 "$name2備份" + endtime 2 "$name1備份" ui_print "完成$((i*100/r))% $hx$(df -h "$data" | awk 'END{print "剩餘:"$3"使用率:"$4}')" else - ui_print "$name2[$name]不在安裝列表,備份個寂寞?" + ui_print "$name1[$name2]不在安裝列表,備份個寂寞?" fi ui_print " " diff --git a/tools/bin/appinfo.dex b/tools/bin/appinfo.dex index 3f892c9..8a12c13 100644 Binary files a/tools/bin/appinfo.dex and b/tools/bin/appinfo.dex differ diff --git a/tools/script/Get_DirName b/tools/script/Get_DirName index d98cbb1..0ccfae8 100644 --- a/tools/script/Get_DirName +++ b/tools/script/Get_DirName @@ -6,9 +6,9 @@ txt="$MODDIR/應用列表.txt" . "$bin_path/bin.sh" echo "#不需要恢復還原的應用請在開頭注釋# 比如#xxxxxxxx 酷安">"$txt" find "$MODDIR" -maxdepth 1 -type d | sort | sed 's/\[/ /g ; s/\]//g' | while read; do - case ${REPLY##*/} in - 媒體|backup_*|Backup_*|bin) ;; - *) echo "${REPLY##*/}">>"$txt" ;; - esac + if [[ -f $REPLY/app_details ]]; then + . $REPLY/app_details + echo "${REPLY##*/} $PackageName">>"$txt" + fi done echoRgb "$txt重新生成" \ No newline at end of file diff --git a/tools/script/restore b/tools/script/restore index 9d4c434..9384b0c 100644 --- a/tools/script/restore +++ b/tools/script/restore @@ -23,7 +23,7 @@ echo_log() { } Release_data() { tar_path="$1" - X="$path2/$name" + X="$path2/$name2" FILE_NAME="${tar_path##*/}" FILE_NAME2="${FILE_NAME%%.*}" echoRgb "恢復$FILE_NAME2數據" "2" @@ -50,10 +50,10 @@ Release_data() { if [[ $result = 0 ]]; then if [[ $FILE_NAME2 = user ]]; then if [[ -d $X ]]; then - if [[ -f /config/sdcardfs/$name/appid ]]; then - G="$(cat "/config/sdcardfs/$name/appid")" + if [[ -f /config/sdcardfs/$name2/appid ]]; then + G="$(cat "/config/sdcardfs/$name2/appid")" else - G="$(dumpsys package "$name" | awk '/userId=/{print $1}' | cut -f2 -d '=' | head -1)" + G="$(dumpsys package "$name2" | awk '/userId=/{print $1}' | cut -f2 -d '=' | head -1)" fi ; G="$(echo "$G" | grep -Eo '[0-9]+')" if [[ $G != "" ]]; then echoRgb "路徑:$X" @@ -70,7 +70,7 @@ Release_data() { echoRgb "路徑$X不存在" "0" fi elif [[ $FILE_NAME2 = data ]]; then - chown -R "1023:1078" "$path/data/$name" + chown -R "1023:1078" "$path/data/$name2" fi fi } @@ -85,15 +85,15 @@ while [[ $i -le $r ]]; do #let bn++ #[[ $bn -ge 37 ]] && bn=31 echoRgb "恢複第$i個應用 總共$r個 剩下$((r-i))個應用" - name="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" - name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" - Backup_folder="$MODDIR/${name2}[${name}]" + name1="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" + name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" + Backup_folder="$MODDIR/$name1" Backup_folder2="$MODDIR/媒體" - [[ $name = "" ]] && echoRgb "警告! 應用列表.txt應用包名獲取失敗,可能修改有問題" "0" && exit 1 + [[ $name2 = "" ]] && echoRgb "應用包名獲取失敗" "0" && exit 1 if [[ -d $Backup_folder ]]; then - echoRgb "恢複$name2 ($name)" + echoRgb "恢複$name1 ($name2)" starttime2="$(date -u "+%s")" - if [[ $(pm path "$name") = "" ]]; then + if [[ $(pm path "$name2") = "" ]]; then apkfile="$(find "$Backup_folder" -maxdepth 1 -name "apk.*" -type f 2>/dev/null)" if [[ $apkfile != "" ]]; then rm -rf "$TMPDIR"/* @@ -136,14 +136,14 @@ while [[ $i -le $r ]]; do else echoRgb "存在當前系統中略過安裝Apk" fi - if [[ $(pm path "$name") != "" ]]; then + if [[ $(pm path "$name2") != "" ]]; then #停止應用 - [[ $name != $Open_apps ]] && am force-stop "$name" + [[ $name2 != $Open_apps ]] && am force-stop "$name2" find "$Backup_folder" -maxdepth 1 ! -name "apk.*" -name "*.tar*" -type f | sort | while read; do Release_data "$REPLY" done else - echoRgb "$name2沒有安裝無法恢復數據" "0" + echoRgb "$name1沒有安裝無法恢復數據" "0" fi endtime 2 "恢複" && echoRgb "完成$((i*100/r))%" && echoRgb else diff --git a/備份應用.sh b/備份應用.sh index dc50490..69a9a17 100644 --- a/備份應用.sh +++ b/備份應用.sh @@ -95,8 +95,8 @@ echo_log() { Backup_apk() { #創建APP備份文件夾 [[ ! -d $Backup_folder ]] && mkdir -p "$Backup_folder" - [[ $(cat "$Backup/應用列表.txt" | grep -v "#" | sed -e '/^$/d' | awk '{print $2}' | grep -w "^${name}$" | head -1) = "" ]] && echo "$name2 $name" >>"$Backup/應用列表.txt" - if [[ $apk_version = $(dumpsys package "$name" | awk '/versionName=/{print $1}' | cut -f2 -d '=' | head -1) ]]; then + [[ $(cat "$Backup/應用列表.txt" | grep -v "#" | sed -e '/^$/d' | awk '{print $2}' | grep -w "^${name2}$" | head -1) = "" ]] && echo "$name1 $name2" >>"$Backup/應用列表.txt" + if [[ $apk_version = $(dumpsys package "$name2" | awk '/versionName=/{print $1}' | cut -f2 -d '=' | head -1) ]]; then unset xb ; result=0 echoRgb "Apk版本無更新 跳過備份" else @@ -104,7 +104,7 @@ Backup_apk() { rm -rf "$Backup_folder"/*.apk #備份apk echoRgb "$1" - [[ $name != $Open_apps ]] && am force-stop "$name" + [[ $name2 != $Open_apps ]] && am force-stop "$name2" echo "$apk_path" | sed -e '/^$/d' | while read; do path="$REPLY" b_size="$(ls -l "$path" | awk '{print $5}')" @@ -120,12 +120,12 @@ Backup_apk() { esac) echo_log "備份$apk_number個Apk" if [[ $result = 0 ]]; then - echo "apk_version=\"$(dumpsys package "$name" | awk '/versionName=/{print $1}' | cut -f2 -d '=' | head -1)\"" >>"$app_details" - [[ $PackageName = "" ]] && echo "PackageName=\"$name\"" >>"$app_details" - [[ $ChineseName = "" ]] && echo "ChineseName=\"$name2\"" >>"$app_details" + echo "apk_version=\"$(dumpsys package "$name2" | awk '/versionName=/{print $1}' | cut -f2 -d '=' | head -1)\"" >>"$app_details" + [[ $PackageName = "" ]] && echo "PackageName=\"$name2\"" >>"$app_details" + [[ $ChineseName = "" ]] && echo "ChineseName=\"$name1\"" >>"$app_details" [[ ! -f $Backup_folder/還原備份.sh ]] && cp -r "$script_path/restore2" "$Backup_folder/還原備份.sh" fi - if [[ $name = com.android.chrome ]]; then + if [[ $name2 = com.android.chrome ]]; then #刪除所有舊apk ,保留一個最新apk進行備份 ReservedNum=1 FileNum="$(ls /data/app/*/com.google.android.trichromelibrary_*/base.apk 2>/dev/null | wc -l)" @@ -137,20 +137,21 @@ Backup_apk() { [[ -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" fi fi - [[ $name = bin.mt.plus && ! -f $Backup/$name2.apk ]] && cp -r "$apk_path" "$Backup/$name2.apk" + [[ $name2 = bin.mt.plus && ! -f $Backup/$name1.apk ]] && cp -r "$apk_path" "$Backup/$name1.apk" unset ChineseName PackageName ; D=1 } #檢測數據位置進行備份 Backup_data() { unset zsize case $1 in - user) Size="$userSize" && data_path="$path2/$name" ;; - data) Size="$dataSize" && data_path="$path/$1/$name" ;; - obb) Size="$obbSize" && data_path="$path/$1/$name" ;; + user) Size="$userSize" && data_path="$path2/$name2" ;; + data) Size="$dataSize" && data_path="$path/$1/$name2" ;; + obb) Size="$obbSize" && data_path="$path/$1/$name2" ;; *) [[ -f $app_details ]] && Size="$(cat "$app_details" | awk "/$1Size/"'{print $1}' | cut -f2 -d '=' | tail -n1 | sed 's/\"//g')" ; data_path="$2" ; Compression_method=tar ; zsize=1 esac if [[ -d $data_path ]]; then if [[ $Size != $(du -ks "$data_path" | awk '{print $1}') ]]; then + [[ $name2 != $Open_apps ]] && am force-stop "$name2" [[ $lxj -ge 95 ]] && echoRgb "$data空間不足,達到$lxj%" "0" && exit 2 echoRgb "備份$1數據" "2" case $1 in @@ -183,7 +184,7 @@ Backup_data() { fi } recovery_backup() { - echo "$name2 $name $apk_path2" >>"$script_path/應用列表.txt" + echo "$name1 $name2 $apk_path2" >>"$script_path/應用列表.txt" if [[ $i = $r ]]; then if [[ -f $tools_path/META-INF/com/google/android/update-binary ]]; then echoRgb "輸出用於recovery的備份卡刷包" ; rm -rf "$MODDIR/recovery卡刷備份.zip" ; mkdir -p "$MODDIR/tmp" @@ -217,29 +218,37 @@ TIME="$starttime1" ERROR=1 { while [[ $i -le $r ]]; do - name="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" - name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" - [[ $name = "" ]] && echoRgb "警告! 應用列表.txt應用包名獲取失敗,可能修改有問題" "0" && exit 1 - apk_path="$(pm path "$name" | cut -f2 -d ':')" + name1="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')" + name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')" + [[ $name2 = "" ]] && echoRgb "警告! 應用列表.txt應用包名獲取失敗,可能修改有問題" "0" && exit 1 + apk_path="$(pm path "$name2" | cut -f2 -d ':')" apk_path2="$(echo "$apk_path" | head -1)" ; apk_path2="${apk_path2%/*}" if [[ -d $apk_path2 ]]; then if [[ $Hybrid_backup = false ]]; then echoRgb "備份第$i個應用 總共$r個 剩下$((r-i))個應用" - if [[ $name2 = *! || $name2 = *! ]]; then - name2="$(echo "$name2" | sed 's/!//g ; s/!//g')" - echoRgb "跳過備份$name2 所有數據" "0" + if [[ $name1 = *! || $name1 = *! ]]; then + name1="$(echo "$name1" | sed 's/!//g ; s/!//g')" + echoRgb "跳過備份$name1 所有數據" "0" No_backupdata=1 else [[ $No_backupdata != "" ]] && unset No_backupdata fi - Backup_folder="$Backup/${name2}[${name}]" + Backup_folder="$Backup/$name1" app_details="$Backup_folder/app_details" - [[ -f $app_details ]] && . "$app_details" + if [[ -f $app_details ]]; then + . "$app_details" + if [[ $PackageName != $name2 ]]; then + unset userSize ChineseName PackageName apk_version + Backup_folder="$Backup/${name1}[${name2}]" + app_details="$Backup_folder/app_details" + [[ -f $app_details ]] && . "$app_details" + fi + fi lxj="$(df -h "$data" | awk 'END{print $4}' | sed 's/%//g')" starttime2="$(date -u "+%s")" - echoRgb "備份$name2 ($name)" - [[ $name = com.tencent.mobileqq ]] && echo "QQ可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" - [[ $name = com.tencent.mm ]] && echo "WX可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" + echoRgb "備份$name1 ($name2)" + [[ $name2 = com.tencent.mobileqq ]] && echo "QQ可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" + [[ $name2 = com.tencent.mm ]] && echo "WX可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份" apk_number="$(echo "$apk_path" | wc -l)" if [[ $apk_number = 1 ]]; then if [[ $Splist = false ]]; then @@ -260,7 +269,7 @@ while [[ $i -le $r ]]; do #備份user數據 [[ $Backup_user_data = true ]] && Backup_data "user" fi - endtime 2 "$name2備份" + endtime 2 "$name1備份" echoRgb "完成$((i*100/r))% $hx$(df -h "$data" | awk 'END{print "剩餘:"$3"使用率:"$4}')" echoRgb recovery_backup @@ -268,7 +277,7 @@ while [[ $i -le $r ]]; do recovery_backup fi else - echoRgb "$name2[$name]不在安裝列表,備份個寂寞?" "0" + echoRgb "$name1[$name2]不在安裝列表,備份個寂寞?" "0" fi if [[ $i = $r ]]; then endtime 1 "應用備份" diff --git a/執行狀態日誌.txt b/執行狀態日誌.txt new file mode 100644 index 0000000..4aaf7dc --- /dev/null +++ b/執行狀態日誌.txt @@ -0,0 +1,74 @@ + -13:05:57 + --------------歡迎使用⚡️🤟🐂纸備份-------------- + -當前腳本執行路徑:/data/media/0/Download/數據備份v10 + -busybox路徑:/data/backup_tools/busybox + -busybox版本:v1.34.1-osm0sis + -appinfo版本:2021-10-24(59) + -腳本版本:V10.6 2021/10/22-20:59 + -設備架構arm64-v8a + -品牌:OnePlus + -設備代號:OnePlus8T + -型號:KB2003 + -Android版本:11 + -SDK:30 + -終端:MT管理器 + -13:05:58 -壓縮方式:zstd + -13:05:58 -提示 腳本支持後台壓縮 可以直接離開腳本 + -或是關閉終端也能備份 如需終止腳本 + -請再次執行備份應用.sh即可停止 + -備份結束將發送toast提示語 + -13:05:58 沒有檢測到USB於本地備份 + -13:05:58 當前backup_settings.conf的 + -Backup_obb_data為0將不備份外部數據 + -13:05:58 備份第1個應用 總共4個 剩下3個應用 + -13:05:58 備份1DM+ (idm.internet.download.manager.plus) + -13:05:58 Split Apk支持備份 + -13:05:58 base.apk 9.37MB(9595.70KB) + -13:05:58 split_config.arm64_v8a.apk 18.59MB(19041.17KB) + -13:05:58 split_config.xxhdpi.apk 0.57MB(587.89KB) + -13:05:58 備份3個Apk成功 + -13:05:58 備份user數據 + -13:05:59 備份user數據成功 + -13:05:59 1DM+備份用時:1秒 + -13:05:59 完成25% 本地剩餘:183.8G使用率:18% + -13:05:59 + -13:05:59 備份第2個應用 總共4個 剩下2個應用 + -13:05:59 備份AIDA64 (com.finalwire.aida64) + -13:05:59 非Split Apk + -13:05:59 base.apk 8.94MB(9153.26KB) + -13:06:00 備份1個Apk成功 + -13:06:00 備份user數據 + -13:06:00 備份user數據成功 + -13:06:00 AIDA64備份用時:1秒 + -13:06:00 完成50% 本地剩餘:183.8G使用率:18% + -13:06:00 + -13:06:00 備份第3個應用 總共4個 剩下1個應用 + -13:06:00 備份APK編輯器 (com.gmail.heagoo.apkeditor.pro) + -13:06:00 非Split Apk + -13:06:00 base.apk 6.24MB(6391.15KB) + -13:06:00 備份1個Apk成功 + -13:06:00 備份user數據 + -13:06:02 備份user數據成功 + -13:06:02 APK編輯器備份用時:2秒 + -13:06:02 完成75% 本地剩餘:183.8G使用率:18% + -13:06:02 + -13:06:02 備份第4個應用 總共4個 剩下0個應用 + -13:06:02 備份AccuBattery (com.digibites.accubattery) + -13:06:02 非Split Apk + -13:06:02 base.apk 8.98MB(9196.41KB) + -13:06:02 備份1個Apk成功 + -13:06:02 備份user數據 + -13:06:02 備份user數據成功 + -13:06:02 AccuBattery備份用時:0秒 + -13:06:02 完成100% 本地剩餘:183.8G使用率:18% + -13:06:02 + -13:06:02 輸出用於recovery的備份卡刷包 + -13:06:03 打包卡刷包成功 + -13:06:03 輸出:/data/media/0/Download/數據備份v10/recovery卡刷備份.zip + -13:06:03 應用備份用時:5秒 + -13:06:03 你要備份跑路?祝你卡米9008 + -13:06:03 備份資料夾路徑:/data/media/0/Download/數據備份v10/Backup_zstd + -13:06:03 備份資料夾總體大小88.6M + -13:06:03 本次備份: 83mb + -13:06:03 批量備份完成 + -13:06:03 批量備份開始到結束用時:5秒