diff --git a/tools/bin/appinfo.dex b/tools/bin/appinfo.dex index 92ad9e7..8908a94 100644 Binary files a/tools/bin/appinfo.dex and b/tools/bin/appinfo.dex differ diff --git a/tools/bin/bin.sh b/tools/bin/bin.sh index 354fbdc..95aabb9 100644 --- a/tools/bin/bin.sh +++ b/tools/bin/bin.sh @@ -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/dev/null)" bn=195 diff --git a/tools/script/restore b/tools/script/restore index aefcca1..06f780d 100644 --- a/tools/script/restore +++ b/tools/script/restore @@ -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"/* \ No newline at end of file +Print "批量恢復完成 執行過程請查看$Status_log" && rm -rf "$TMPDIR"/* +} & \ No newline at end of file diff --git a/tools/script/restore2 b/tools/script/restore2 index f78732e..3a1c475 100644 --- a/tools/script/restore2 +++ b/tools/script/restore2 @@ -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 diff --git a/備份應用.sh b/備份應用.sh index 916a89a..0c0b087 100644 --- a/備份應用.sh +++ b/備份應用.sh @@ -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" \ No newline at end of file +Print "批量備份完成 執行過程請查看$Status_log" +exit 0 +}& \ No newline at end of file diff --git a/生成應用列表.sh b/生成應用列表.sh index c0bfe8d..8cb4f31 100644 --- a/生成應用列表.sh +++ b/生成應用列表.sh @@ -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