bug fix
This commit is contained in:
Binary file not shown.
@@ -86,7 +86,7 @@ if [[ $(which busybox) = "" ]]; then
|
|||||||
echo "環境變量中沒有找到busybox 請在tools/bin內添加一個\narm64可用的busybox\n或是安裝搞機助手 scene或是Magisk busybox模塊...."
|
echo "環境變量中沒有找到busybox 請在tools/bin內添加一個\narm64可用的busybox\n或是安裝搞機助手 scene或是Magisk busybox模塊...."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
Open_apps="$(dumpsys window | grep -w mCurrentFocus | egrep -oh "[^ ]*/[^//}]+" | cut -f 1 -d "/")"
|
Open_apps="$(appinfo -ta pn)"
|
||||||
#下列為自定義函數
|
#下列為自定義函數
|
||||||
Set_back() {
|
Set_back() {
|
||||||
return 1
|
return 1
|
||||||
@@ -101,8 +101,9 @@ endtime() {
|
|||||||
duration="$(echo $((endtime - starttime)) | awk '{t=split("60 秒 60 分 24 時 999 天",a);for(n=1;n<t;n+=2){if($1==0)break;s=$1%a[n]a[n+1]s;$1=int($1/a[n])}print s}')"
|
duration="$(echo $((endtime - starttime)) | awk '{t=split("60 秒 60 分 24 時 999 天",a);for(n=1;n<t;n+=2){if($1==0)break;s=$1%a[n]a[n+1]s;$1=int($1/a[n])}print s}')"
|
||||||
[[ $duration != "" ]] && echoRgb "$2用時:$duration" || echoRgb "$2用時:0秒"
|
[[ $duration != "" ]] && echoRgb "$2用時:$duration" || echoRgb "$2用時:0秒"
|
||||||
}
|
}
|
||||||
|
nskg=1
|
||||||
Print() {
|
Print() {
|
||||||
notify "1" "backup-$(date '+%T')" "$1" bs
|
notify "$nskg" "backup-$(date '+%T')" "$1" bs
|
||||||
}
|
}
|
||||||
echoRgb() {
|
echoRgb() {
|
||||||
#轉換echo顏色提高可讀性
|
#轉換echo顏色提高可讀性
|
||||||
@@ -149,6 +150,13 @@ isBoolean() {
|
|||||||
echoRgb "$MODDIR/backup_settings.conf $1填寫錯誤" "0" && exit 2
|
echoRgb "$MODDIR/backup_settings.conf $1填寫錯誤" "0" && exit 2
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
echo_log() {
|
||||||
|
if [[ $? = 0 ]]; then
|
||||||
|
echoRgb "$1成功" "1" ; result=0
|
||||||
|
else
|
||||||
|
echoRgb "$1失敗,過世了" "0" ; Print "$1失敗,過世了" ; result=1
|
||||||
|
fi
|
||||||
|
}
|
||||||
bn=147
|
bn=147
|
||||||
echoRgb "\n --------------歡迎使用⚡️🤟🐂纸備份--------------\n -當前腳本執行路徑:$MODDIR\n -busybox路徑:$(which busybox)\n -busybox版本:$(busybox | head -1 | awk '{print $2}')\n -appinfo版本:$(appinfo --version)\n -腳本版本:$backup_version\n -設備架構$abi\n -品牌:$(getprop ro.product.brand)\n -設備代號:$(getprop ro.product.device)\n -型號:$(getprop ro.product.model)\n -Android版本:$(getprop ro.build.version.release)\n -SDK:$(getprop ro.build.version.sdk)\n -終端:$(appinfo -o ands -pn "$Open_apps" 2>/dev/null)"
|
echoRgb "\n --------------歡迎使用⚡️🤟🐂纸備份--------------\n -當前腳本執行路徑:$MODDIR\n -busybox路徑:$(which busybox)\n -busybox版本:$(busybox | head -1 | awk '{print $2}')\n -appinfo版本:$(appinfo --version)\n -腳本版本:$backup_version\n -設備架構$abi\n -品牌:$(getprop ro.product.brand)\n -設備代號:$(getprop ro.product.device)\n -型號:$(getprop ro.product.model)\n -Android版本:$(getprop ro.build.version.release)\n -SDK:$(getprop ro.build.version.sdk)\n -終端:$(appinfo -o ands -pn "$Open_apps" 2>/dev/null)"
|
||||||
bn=195
|
bn=195
|
||||||
|
|||||||
@@ -18,13 +18,6 @@ txt="$MODDIR/應用列表.txt"
|
|||||||
r="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n '$=')"
|
r="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n '$=')"
|
||||||
[[ $r = "" ]] && echoRgb "應用列表.txt包名為空或是被注釋了" "0" && exit 1
|
[[ $r = "" ]] && echoRgb "應用列表.txt包名為空或是被注釋了" "0" && exit 1
|
||||||
#顯示執行結果
|
#顯示執行結果
|
||||||
echo_log() {
|
|
||||||
if [[ $? = 0 ]]; then
|
|
||||||
echoRgb "$1成功" "1" && result=0
|
|
||||||
else
|
|
||||||
echoRgb "$1失敗,過世了" "0" && result=1 && let ERROR++
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
Release_data() {
|
Release_data() {
|
||||||
tar_path="$1"
|
tar_path="$1"
|
||||||
X="$path2/$name2"
|
X="$path2/$name2"
|
||||||
@@ -53,6 +46,7 @@ Release_data() {
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
[[ $FILE_NAME2 = thanox ]] && rm -rf "$(find "/data/system" -name "thanos_*" -maxdepth 1 -type d)"
|
||||||
case ${FILE_NAME##*.} in
|
case ${FILE_NAME##*.} in
|
||||||
lz4) pv "$tar_path" | tar -I lz4 -xPpf - ;;
|
lz4) pv "$tar_path" | tar -I lz4 -xPpf - ;;
|
||||||
zst) pv "$tar_path" | tar -I zstd -xPpf - ;;
|
zst) pv "$tar_path" | tar -I zstd -xPpf - ;;
|
||||||
@@ -85,7 +79,10 @@ Release_data() {
|
|||||||
echoRgb "路徑$X不存在" "0"
|
echoRgb "路徑$X不存在" "0"
|
||||||
fi
|
fi
|
||||||
elif [[ $FILE_NAME2 = data ]]; then
|
elif [[ $FILE_NAME2 = data ]]; then
|
||||||
chown -R "1023:1078" "$path/data/$name2"
|
[[ -d $path/data/$name2 ]] && chown -R "1023:1078" "$path/data/$name2"
|
||||||
|
elif [[ $FILE_NAME2 = thanox ]]; then
|
||||||
|
restorecon -R "$(find "/data/system" -name "thanos_*" -maxdepth 1 -type d)" >/dev/null 2>&1
|
||||||
|
echo_log "selinux上下文設置" && echoRgb "警告 thanox配置恢復後務必重啟\n -否則不生效" "0"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@@ -93,8 +90,6 @@ Release_data() {
|
|||||||
#記錄開始時間
|
#記錄開始時間
|
||||||
starttime1="$(date -u "+%s")"
|
starttime1="$(date -u "+%s")"
|
||||||
TIME="$starttime1"
|
TIME="$starttime1"
|
||||||
#記錄error次數起點
|
|
||||||
ERROR=1
|
|
||||||
en=118
|
en=118
|
||||||
{
|
{
|
||||||
while [[ $i -le $r ]]; do
|
while [[ $i -le $r ]]; do
|
||||||
@@ -169,7 +164,7 @@ while [[ $i -le $r ]]; do
|
|||||||
if [[ $i = $r ]]; then
|
if [[ $i = $r ]]; then
|
||||||
endtime 1 "應用恢復"
|
endtime 1 "應用恢復"
|
||||||
if [[ -d $Backup_folder2 ]]; then
|
if [[ -d $Backup_folder2 ]]; then
|
||||||
echoRgb "是否恢復多媒體數據\n 音量上恢復,音量下不恢復"
|
Print "是否恢復多媒體數據 音量上恢復,音量下不恢復" ; echoRgb "是否恢復多媒體數據\n 音量上恢復,音量下不恢復"
|
||||||
get_version "恢復媒體數據" "跳過恢復媒體數據"
|
get_version "恢復媒體數據" "跳過恢復媒體數據"
|
||||||
starttime1="$(date -u "+%s")"
|
starttime1="$(date -u "+%s")"
|
||||||
A=1
|
A=1
|
||||||
@@ -184,12 +179,10 @@ while [[ $i -le $r ]]; do
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
[[ $ERROR -ge 5 ]] && (echoRgb "錯誤次數達到上限 環境已重設\n -請重新執行腳本" "0" && rm -rf "$filepath" && exit)
|
let i++ en++ nskg++
|
||||||
let i++ en++
|
|
||||||
done
|
done
|
||||||
starttime1="$TIME"
|
starttime1="$TIME"
|
||||||
echoRgb "批量恢複完成" && endtime 1 "批量恢複開始到結束" && echoRgb "應用閃退請重新開機" "0"
|
echoRgb "批量恢複完成" && endtime 1 "批量恢複開始到結束" && echoRgb "應用閃退請重新開機" "0"
|
||||||
} &
|
|
||||||
wait
|
|
||||||
longToast "批量恢復完成"
|
longToast "批量恢復完成"
|
||||||
Print "批量恢復完成 執行過程請查看$Status_log" && rm -rf "$TMPDIR"/*
|
Print "批量恢復完成 執行過程請查看$Status_log" && rm -rf "$TMPDIR"/*
|
||||||
|
} &
|
||||||
@@ -13,14 +13,6 @@ path2="/data/data"
|
|||||||
[[ ! -d $path2 ]] && echoRgb "設備不存在user目錄" "0" && exit 1
|
[[ ! -d $path2 ]] && echoRgb "設備不存在user目錄" "0" && exit 1
|
||||||
#記錄開始時間
|
#記錄開始時間
|
||||||
starttime1="$(date -u "+%s")"
|
starttime1="$(date -u "+%s")"
|
||||||
#顯示執行結果
|
|
||||||
echo_log() {
|
|
||||||
if [[ $? = 0 ]]; then
|
|
||||||
echoRgb "$1成功" "1" && result=0
|
|
||||||
else
|
|
||||||
echoRgb "$1失敗,過世了" "0" && result=1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
{
|
{
|
||||||
Backup_folder="$MODDIR"
|
Backup_folder="$MODDIR"
|
||||||
if [[ ! -f $Backup_folder/app_details ]]; then
|
if [[ ! -f $Backup_folder/app_details ]]; then
|
||||||
@@ -97,6 +89,7 @@ if [[ $Recovery_mode = true ]]; then
|
|||||||
echoRgb "$X不存在 無法恢復$FILE_NAME2數據" "0" ; Set_back
|
echoRgb "$X不存在 無法恢復$FILE_NAME2數據" "0" ; Set_back
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
[[ $FILE_NAME2 = thanox ]] && rm -rf "$(find "/data/system" -name "thanos_*" -maxdepth 1 -type d)"
|
||||||
case ${FILE_NAME##*.} in
|
case ${FILE_NAME##*.} in
|
||||||
lz4) pv "$tar_path" | tar --recursive-unlink -I lz4 -xmPpf - ;;
|
lz4) pv "$tar_path" | tar --recursive-unlink -I lz4 -xmPpf - ;;
|
||||||
zst) pv "$tar_path" | tar --recursive-unlink -I zstd -xmPpf - ;;
|
zst) pv "$tar_path" | tar --recursive-unlink -I zstd -xmPpf - ;;
|
||||||
@@ -127,7 +120,10 @@ if [[ $Recovery_mode = true ]]; then
|
|||||||
echoRgb "路徑$X不存在" "0"
|
echoRgb "路徑$X不存在" "0"
|
||||||
fi
|
fi
|
||||||
elif [[ $FILE_NAME2 = data ]]; then
|
elif [[ $FILE_NAME2 = data ]]; then
|
||||||
chown -R "1023:1078" "$path/data/$name"
|
[[ -d $path/data/$name2 ]] && chown -R "1023:1078" "$path/data/$name2"
|
||||||
|
elif [[ $FILE_NAME2 = thanox ]]; then
|
||||||
|
restorecon -R "$(find "/data/system" -name "thanos_*" -maxdepth 1 -type d)" >/dev/null 2>&1
|
||||||
|
echo_log "selinux上下文設置" && echoRgb "警告 thanox配置恢復後務必重啟\n -否則不生效" "0"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
26
備份應用.sh
26
備份應用.sh
@@ -93,14 +93,6 @@ fi
|
|||||||
filesize="$(du -ks "$Backup" | awk '{print $1}')"
|
filesize="$(du -ks "$Backup" | awk '{print $1}')"
|
||||||
#調用二進制
|
#調用二進制
|
||||||
Quantity=0
|
Quantity=0
|
||||||
#顯示執行結果
|
|
||||||
echo_log() {
|
|
||||||
if [[ $? = 0 ]]; then
|
|
||||||
echoRgb "$1成功" "1" && result=0
|
|
||||||
else
|
|
||||||
echoRgb "$1失敗,過世了" "0" && result=1 && let ERROR++
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
#檢測apk狀態進行備份
|
#檢測apk狀態進行備份
|
||||||
Backup_apk() {
|
Backup_apk() {
|
||||||
#創建APP備份文件夾
|
#創建APP備份文件夾
|
||||||
@@ -158,7 +150,7 @@ Backup_data() {
|
|||||||
user) Size="$userSize" && data_path="$path2/$name2" ;;
|
user) Size="$userSize" && data_path="$path2/$name2" ;;
|
||||||
data) Size="$dataSize" && data_path="$path/$1/$name2" ;;
|
data) Size="$dataSize" && data_path="$path/$1/$name2" ;;
|
||||||
obb) Size="$obbSize" && 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
|
*) [[ -f $app_details ]] && Size="$(cat "$app_details" | awk "/$1Size/"'{print $1}' | cut -f2 -d '=' | tail -n1 | sed 's/\"//g')" ; data_path="$2" ; Compression_method1="$Compression_method" ; Compression_method=tar ; zsize=1
|
||||||
esac
|
esac
|
||||||
if [[ -d $data_path ]]; then
|
if [[ -d $data_path ]]; then
|
||||||
if [[ $Size != $(du -ks "$data_path" | awk '{print $1}') ]]; then
|
if [[ $Size != $(du -ks "$data_path" | awk '{print $1}') ]]; then
|
||||||
@@ -177,7 +169,7 @@ Backup_data() {
|
|||||||
tar|Tar|TAR) tar --exclude="Backup_"* -cPpf - "$data_path" 2>/dev/null | pv >"$Backup_folder/$1.tar" ;;
|
tar|Tar|TAR) tar --exclude="Backup_"* -cPpf - "$data_path" 2>/dev/null | pv >"$Backup_folder/$1.tar" ;;
|
||||||
zstd|Zstd|ZSTD) tar --exclude="Backup_"* -cPpf - "$data_path" 2>/dev/null | pv | zstd -r -T0 -6 -q >"$Backup_folder/$1.tar.zst" ;;
|
zstd|Zstd|ZSTD) tar --exclude="Backup_"* -cPpf - "$data_path" 2>/dev/null | pv | zstd -r -T0 -6 -q >"$Backup_folder/$1.tar.zst" ;;
|
||||||
lz4|Lz4|LZ4) tar --exclude="Backup_"* -cPpf - "$data_path" 2>/dev/null | pv | lz4 -1 >"$Backup_folder/$1.tar.lz4" ;;
|
lz4|Lz4|LZ4) tar --exclude="Backup_"* -cPpf - "$data_path" 2>/dev/null | pv | lz4 -1 >"$Backup_folder/$1.tar.lz4" ;;
|
||||||
esac ;;
|
esac ; [[ $Compression_method1 != "" ]] && Compression_method="$Compression_method1" ; unset Compression_method1 ;;
|
||||||
esac
|
esac
|
||||||
echo_log "備份$1數據"
|
echo_log "備份$1數據"
|
||||||
if [[ $result = 0 ]]; then
|
if [[ $result = 0 ]]; then
|
||||||
@@ -225,8 +217,6 @@ echo "#不需要恢復還原的應用請在開頭注釋# 比如#xxxxxxxx 酷安"
|
|||||||
#記錄開始時間
|
#記錄開始時間
|
||||||
starttime1="$(date -u "+%s")"
|
starttime1="$(date -u "+%s")"
|
||||||
TIME="$starttime1"
|
TIME="$starttime1"
|
||||||
#記錄error次數起點
|
|
||||||
ERROR=1
|
|
||||||
en=118
|
en=118
|
||||||
{
|
{
|
||||||
while [[ $i -le $r ]]; do
|
while [[ $i -le $r ]]; do
|
||||||
@@ -281,6 +271,7 @@ while [[ $i -le $r ]]; do
|
|||||||
fi
|
fi
|
||||||
#備份user數據
|
#備份user數據
|
||||||
[[ $Backup_user_data = true ]] && Backup_data "user"
|
[[ $Backup_user_data = true ]] && Backup_data "user"
|
||||||
|
[[ $name2 = github.tornaco.android.thanos ]] && Backup_data "thanox" "$(find "/data/system" -name "thanos_*" -maxdepth 1 -type d)"
|
||||||
fi
|
fi
|
||||||
endtime 2 "$name1備份"
|
endtime 2 "$name1備份"
|
||||||
echoRgb "完成$((i*100/r))% $hx$(df -h "$data" | awk 'END{print "剩餘:"$3"使用率:"$4}')"
|
echoRgb "完成$((i*100/r))% $hx$(df -h "$data" | awk 'END{print "剩餘:"$3"使用率:"$4}')"
|
||||||
@@ -312,10 +303,8 @@ while [[ $i -le $r ]]; do
|
|||||||
endtime 1 "自定義備份"
|
endtime 1 "自定義備份"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
[[ $ERROR -ge 5 ]] && echoRgb "錯誤次數達到上限 環境已重設\n -請重新執行腳本" "0" && rm -rf "$filepath" && exit 2
|
let i++ en++ nskg++
|
||||||
let i++ en++
|
|
||||||
done
|
done
|
||||||
|
|
||||||
echoRgb "你要備份跑路?祝你卡米9008" "2"
|
echoRgb "你要備份跑路?祝你卡米9008" "2"
|
||||||
#計算出備份大小跟差異性
|
#計算出備份大小跟差異性
|
||||||
filesizee="$(du -ks "$Backup" | awk '{print $1}')"
|
filesizee="$(du -ks "$Backup" | awk '{print $1}')"
|
||||||
@@ -334,8 +323,7 @@ fi
|
|||||||
echoRgb "批量備份完成"
|
echoRgb "批量備份完成"
|
||||||
starttime1="$TIME"
|
starttime1="$TIME"
|
||||||
endtime 1 "批量備份開始到結束"
|
endtime 1 "批量備份開始到結束"
|
||||||
exit 0
|
|
||||||
}&
|
|
||||||
wait
|
|
||||||
longToast "批量備份完成"
|
longToast "批量備份完成"
|
||||||
Print "批量備份完成 執行過程請查看$Status_log"
|
Print "批量備份完成 執行過程請查看$Status_log"
|
||||||
|
exit 0
|
||||||
|
}&
|
||||||
@@ -28,7 +28,7 @@ i=1
|
|||||||
bn=118
|
bn=118
|
||||||
rm -rf "$MODDIR/tmp"
|
rm -rf "$MODDIR/tmp"
|
||||||
starttime1="$(date -u "+%s")"
|
starttime1="$(date -u "+%s")"
|
||||||
appinfo -sort-i -d " " -o ands,pn -pn $system $launcher_app -3 2>/dev/null | sed 's/\///g ; s/\://g ; s/(//g ; s/)//g ; s/\[//g ; s/\]//g ; s/\-//g' | grep -v 'ice.message' | while read; do
|
appinfo -sort-i -d " " -o ands,pn -pn $system $launcher_app -3 2>/dev/null | sed 's/\///g ; s/\://g ; s/(//g ; s/)//g ; s/\[//g ; s/\]//g ; s/\-//g ; s/!//g' | grep -v 'ice.message' | while read; do
|
||||||
[[ $bn -ge 229 ]] && bn=118
|
[[ $bn -ge 229 ]] && bn=118
|
||||||
app_1=($REPLY $REPLY)
|
app_1=($REPLY $REPLY)
|
||||||
if [[ $(cat "$nametxt" | grep -oE "${app_1[1]}$") = "" ]]; then
|
if [[ $(cat "$nametxt" | grep -oE "${app_1[1]}$") = "" ]]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user