This commit is contained in:
YAWAsau
2021-11-02 23:06:49 +08:00
parent c3b67f3e89
commit 3cebbc6017
6 changed files with 32 additions and 47 deletions

Binary file not shown.

View File

@@ -86,7 +86,7 @@ if [[ $(which busybox) = "" ]]; then
echo "環境變量中沒有找到busybox 請在tools/bin內添加一個\narm64可用的busybox\n或是安裝搞機助手 scene或是Magisk busybox模塊...."
exit 1
fi
Open_apps="$(dumpsys window | grep -w mCurrentFocus | egrep -oh "[^ ]*/[^//}]+" | cut -f 1 -d "/")"
Open_apps="$(appinfo -ta pn)"
#下列為自定義函數
Set_back() {
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 != "" ]] && echoRgb "$2用時:$duration" || echoRgb "$2用時:0秒"
}
nskg=1
Print() {
notify "1" "backup-$(date '+%T')" "$1" bs
notify "$nskg" "backup-$(date '+%T')" "$1" bs
}
echoRgb() {
#轉換echo顏色提高可讀性
@@ -149,6 +150,13 @@ isBoolean() {
echoRgb "$MODDIR/backup_settings.conf $1填寫錯誤" "0" && exit 2
fi
}
echo_log() {
if [[ $? = 0 ]]; then
echoRgb "$1成功" "1" ; result=0
else
echoRgb "$1失敗,過世了" "0" ; Print "$1失敗,過世了" ; result=1
fi
}
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)"
bn=195

View File

@@ -18,13 +18,6 @@ txt="$MODDIR/應用列表.txt"
r="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n '$=')"
[[ $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() {
tar_path="$1"
X="$path2/$name2"
@@ -53,6 +46,7 @@ Release_data() {
esac
;;
*)
[[ $FILE_NAME2 = thanox ]] && rm -rf "$(find "/data/system" -name "thanos_*" -maxdepth 1 -type d)"
case ${FILE_NAME##*.} in
lz4) pv "$tar_path" | tar -I lz4 -xPpf - ;;
zst) pv "$tar_path" | tar -I zstd -xPpf - ;;
@@ -85,7 +79,10 @@ Release_data() {
echoRgb "路徑$X不存在" "0"
fi
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
}
@@ -93,8 +90,6 @@ Release_data() {
#記錄開始時間
starttime1="$(date -u "+%s")"
TIME="$starttime1"
#記錄error次數起點
ERROR=1
en=118
{
while [[ $i -le $r ]]; do
@@ -169,7 +164,7 @@ while [[ $i -le $r ]]; do
if [[ $i = $r ]]; then
endtime 1 "應用恢復"
if [[ -d $Backup_folder2 ]]; then
echoRgb "是否恢復多媒體數據\n 音量上恢復,音量下不恢復"
Print "是否恢復多媒體數據 音量上恢復,音量下不恢復" ; echoRgb "是否恢復多媒體數據\n 音量上恢復,音量下不恢復"
get_version "恢復媒體數據" "跳過恢復媒體數據"
starttime1="$(date -u "+%s")"
A=1
@@ -184,12 +179,10 @@ while [[ $i -le $r ]]; do
fi
fi
fi
[[ $ERROR -ge 5 ]] && (echoRgb "錯誤次數達到上限 環境已重設\n -請重新執行腳本" "0" && rm -rf "$filepath" && exit)
let i++ en++
let i++ en++ nskg++
done
starttime1="$TIME"
echoRgb "批量恢複完成" && endtime 1 "批量恢複開始到結束" && echoRgb "應用閃退請重新開機" "0"
} &
wait
longToast "批量恢復完成"
Print "批量恢復完成 執行過程請查看$Status_log" && rm -rf "$TMPDIR"/*
} &

View File

@@ -13,14 +13,6 @@ path2="/data/data"
[[ ! -d $path2 ]] && echoRgb "設備不存在user目錄" "0" && exit 1
#記錄開始時間
starttime1="$(date -u "+%s")"
#顯示執行結果
echo_log() {
if [[ $? = 0 ]]; then
echoRgb "$1成功" "1" && result=0
else
echoRgb "$1失敗過世了" "0" && result=1
fi
}
{
Backup_folder="$MODDIR"
if [[ ! -f $Backup_folder/app_details ]]; then
@@ -97,6 +89,7 @@ if [[ $Recovery_mode = true ]]; then
echoRgb "$X不存在 無法恢復$FILE_NAME2數據" "0" ; Set_back
fi
else
[[ $FILE_NAME2 = thanox ]] && rm -rf "$(find "/data/system" -name "thanos_*" -maxdepth 1 -type d)"
case ${FILE_NAME##*.} in
lz4) pv "$tar_path" | tar --recursive-unlink -I lz4 -xmPpf - ;;
zst) pv "$tar_path" | tar --recursive-unlink -I zstd -xmPpf - ;;
@@ -127,7 +120,10 @@ if [[ $Recovery_mode = true ]]; then
echoRgb "路徑$X不存在" "0"
fi
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
done

View File

@@ -93,14 +93,6 @@ fi
filesize="$(du -ks "$Backup" | awk '{print $1}')"
#調用二進制
Quantity=0
#顯示執行結果
echo_log() {
if [[ $? = 0 ]]; then
echoRgb "$1成功" "1" && result=0
else
echoRgb "$1失敗,過世了" "0" && result=1 && let ERROR++
fi
}
#檢測apk狀態進行備份
Backup_apk() {
#創建APP備份文件夾
@@ -158,7 +150,7 @@ Backup_data() {
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
*) [[ -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
if [[ -d $data_path ]]; 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" ;;
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" ;;
esac ;;
esac ; [[ $Compression_method1 != "" ]] && Compression_method="$Compression_method1" ; unset Compression_method1 ;;
esac
echo_log "備份$1數據"
if [[ $result = 0 ]]; then
@@ -225,8 +217,6 @@ echo "#不需要恢復還原的應用請在開頭注釋# 比如#xxxxxxxx 酷安"
#記錄開始時間
starttime1="$(date -u "+%s")"
TIME="$starttime1"
#記錄error次數起點
ERROR=1
en=118
{
while [[ $i -le $r ]]; do
@@ -281,6 +271,7 @@ while [[ $i -le $r ]]; do
fi
#備份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
endtime 2 "$name1備份"
echoRgb "完成$((i*100/r))% $hx$(df -h "$data" | awk 'END{print "剩餘:"$3"使用率:"$4}')"
@@ -312,10 +303,8 @@ while [[ $i -le $r ]]; do
endtime 1 "自定義備份"
fi
fi
[[ $ERROR -ge 5 ]] && echoRgb "錯誤次數達到上限 環境已重設\n -請重新執行腳本" "0" && rm -rf "$filepath" && exit 2
let i++ en++
let i++ en++ nskg++
done
echoRgb "你要備份跑路祝你卡米9008" "2"
#計算出備份大小跟差異性
filesizee="$(du -ks "$Backup" | awk '{print $1}')"
@@ -334,8 +323,7 @@ fi
echoRgb "批量備份完成"
starttime1="$TIME"
endtime 1 "批量備份開始到結束"
exit 0
}&
wait
longToast "批量備份完成"
Print "批量備份完成 執行過程請查看$Status_log"
exit 0
}&

View File

@@ -28,7 +28,7 @@ i=1
bn=118
rm -rf "$MODDIR/tmp"
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
app_1=($REPLY $REPLY)
if [[ $(cat "$nametxt" | grep -oE "${app_1[1]}$") = "" ]]; then