bugfix
This commit is contained in:
@@ -25,7 +25,7 @@ USBdefault=0
|
||||
Splist=0
|
||||
|
||||
#使用者
|
||||
user=
|
||||
user=0
|
||||
|
||||
#是否備份使用者數據 (1備份0不備份)
|
||||
Backup_user_data=1
|
||||
|
||||
@@ -48,7 +48,7 @@ else
|
||||
echo "Magisk busybox Path does not exist"
|
||||
fi
|
||||
export PATH="$PATH"
|
||||
backup_version="V15.5"
|
||||
backup_version="V15.5.2"
|
||||
#設置二進制命令目錄位置
|
||||
if [[ $bin_path = "" ]]; then
|
||||
echoRgb "未正確指定bin.sh位置" "0"
|
||||
@@ -181,7 +181,7 @@ isBoolean() {
|
||||
elif [[ $1 = 0 ]]; then
|
||||
nsx=false
|
||||
else
|
||||
echoRgb "$MODDIR/backup_settings.conf $2=$1填寫錯誤,正確值1or0" "0"
|
||||
echoRgb "$MODDIR_NAME/backup_settings.conf $2=$1填寫錯誤,正確值1or0" "0"
|
||||
exit 2
|
||||
fi
|
||||
}
|
||||
@@ -195,6 +195,21 @@ echo_log() {
|
||||
result=1
|
||||
fi
|
||||
}
|
||||
process_name() {
|
||||
pgrep -f "$1" | while read; do
|
||||
kill -KILL "$REPLY" 2>/dev/null
|
||||
done
|
||||
}
|
||||
kill_Serve() {
|
||||
{
|
||||
script="${0##*/}"
|
||||
if [[ $script != "" ]]; then
|
||||
process_name tar
|
||||
process_name pv
|
||||
fi
|
||||
} &
|
||||
wait
|
||||
}
|
||||
ykj() {
|
||||
# uptime
|
||||
awk -F '.' '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("%d天%d时%d分%d秒",run_days,run_hour,run_minute,run_second)}' /proc/uptime
|
||||
@@ -235,6 +250,7 @@ update_script() {
|
||||
echoRgb "更新當前${MODDIR##*/}目錄下恢復相關腳本+外部tools目錄與腳本"
|
||||
cp -r "$tools_path/script/Get_DirName" "${MODDIR%/*}/重新生成應用列表.sh"
|
||||
cp -r "$tools_path/script/convert" "${MODDIR%/*}/轉換資料夾名稱.sh"
|
||||
cp -r "$tools_path/script/check_file" "${MODDIR%/*}/壓縮檔完整性檢查.sh"
|
||||
cp -r "$tools_path/script/restore" "${MODDIR%/*}/恢復備份.sh"
|
||||
cp -r "$MODDIR/終止腳本.sh" "${MODDIR%/*}/終止腳本.sh"
|
||||
[[ -d ${MODDIR%/*}/Media ]] && cp -r "$tools_path/script/restore3" "${MODDIR%/*}/恢復自定義資料夾.sh"
|
||||
@@ -265,6 +281,7 @@ update_script() {
|
||||
echoRgb "更新當前${MODDIR##*/}目錄下恢復相關腳本+tools目錄"
|
||||
cp -r "$tools_path/script/Get_DirName" "$MODDIR/重新生成應用列表.sh"
|
||||
cp -r "$tools_path/script/convert" "$MODDIR/轉換資料夾名稱.sh"
|
||||
cp -r "$tools_path/script/check_file" "$MODDIR/壓縮檔完整性檢查.sh"
|
||||
cp -r "$tools_path/script/restore" "$MODDIR/恢復備份.sh"
|
||||
[[ -d $MODDIR/Media ]] && cp -r "$tools_path/script/restore3" "$MODDIR/恢復自定義資料夾.sh"
|
||||
find "$MODDIR" -maxdepth 1 -type d | sort | while read; do
|
||||
@@ -302,6 +319,7 @@ update_script() {
|
||||
cp -r "$tools_path/script/restore" "$backup_path/恢復備份.sh"
|
||||
cp -r "$tools_path/script/Get_DirName" "$backup_path/重新生成應用列表.sh"
|
||||
cp -r "$tools_path/script/convert" "$backup_path/轉換資料夾名稱.sh"
|
||||
cp -r "$tools_path/script/check_file" "$backup_path/壓縮檔完整性檢查.sh"
|
||||
cp -r "$MODDIR/終止腳本.sh" "$backup_path/終止腳本.sh"
|
||||
[[ -d $backup_path/Media ]] && cp -r "$tools_path/script/restore3" "$backup_path/恢復自定義資料夾.sh"
|
||||
find "$MODDIR" -maxdepth 2 -type d | sort | while read; do
|
||||
|
||||
@@ -580,17 +580,9 @@ get_name(){
|
||||
[[ $1 = Apkname ]] && sort -u "$txt" -o "$txt" 2>/dev/null && echoRgb "$txt重新生成" "1"
|
||||
exit 0
|
||||
}
|
||||
{
|
||||
for x in zstd tar pv lz4; do
|
||||
pgrep -f "$x" | while read; do
|
||||
echo $REPLY
|
||||
#kill -KILL "$REPLY" 2>/dev/null
|
||||
done
|
||||
done
|
||||
} &
|
||||
wait
|
||||
case $operate in
|
||||
backup)
|
||||
kill_Serve
|
||||
[[ ! -d $script_path ]] && echo "$script_path腳本目錄遺失" && exit 2
|
||||
case $MODDIR in
|
||||
/storage/emulated/0/Android/* | /data/media/0/Android/* | /sdcard/Android/*) echoRgb "請勿在$MODDIR內備份" "0" && exit 2 ;;
|
||||
@@ -657,6 +649,7 @@ backup)
|
||||
[[ ! -f $Backup/被卸載的應用/恢復備份.sh ]] && cp -r "$script_path/restore" "$Backup/被卸載的應用/恢復備份.sh"
|
||||
[[ ! -f $Backup/被卸載的應用/重新生成應用列表.sh ]] && cp -r "$script_path/Get_DirName" "$Backup/被卸載的應用/重新生成應用列表.sh"
|
||||
[[ ! -f $Backup/被卸載的應用/轉換資料夾名稱.sh ]] && cp -r "$script_path/convert" "$Backup/被卸載的應用/轉換資料夾名稱.sh"
|
||||
[[ ! -f $Backup/被卸載的應用/壓縮檔完整性檢查.sh ]] && cp -r "$script_path/check_file" "$Backup/被卸載的應用/壓縮檔完整性檢查.sh"
|
||||
[[ ! -f $Backup/被卸載的應用/終止腳本.sh ]] && cp -r "$MODDIR/終止腳本.sh" "$Backup/被卸載的應用/終止腳本.sh"
|
||||
[[ ! -f $Backup/被卸載的應用/backup_settings.conf ]] && echo "#1開啟0關閉\n\n#是否在每次執行恢復腳本時使用音量鍵詢問如下需求\n#如果是那下面兩項項設置就被忽略,改為音量鍵選擇\nLo=$Lo\n\n#備份與恢復遭遇異常或是結束後發送通知(toast與狀態欄提示)\ntoast_info=$toast_info\n\n#腳本檢測更新後進行跳轉瀏覽器或是複製連結?\nupdate=$update\n\n#檢測到更新後的行為(1跳轉瀏覽器 0不跳轉瀏覽器,但是複製連結到剪裁版)\nupdate_behavior=$update_behavior\n#主色\nrgb_a=$rgb_a\n#輔色\nrgb_b=$rgb_b\nrgb_c=$rgb_c">"$Backup/backup_settings.conf" && echo "$(sed 's/true/1/g ; s/false/0/g' "$Backup/backup_settings.conf")">"$Backup/被卸載的應用/backup_settings.conf" && echo "$(sed 's/true/1/g ; s/false/0/g' "$Backup/backup_settings.conf")">"$Backup/被卸載的應用/backup_settings.conf"
|
||||
txt2="$Backup/被卸載的應用/appList.txt"
|
||||
@@ -698,6 +691,7 @@ backup)
|
||||
[[ ! -f $Backup/終止腳本.sh ]] && cp -r "$MODDIR/終止腳本.sh" "$Backup/終止腳本.sh"
|
||||
[[ ! -f $Backup/重新生成應用列表.sh ]] && cp -r "$script_path/Get_DirName" "$Backup/重新生成應用列表.sh"
|
||||
[[ ! -f $Backup/轉換資料夾名稱.sh ]] && cp -r "$script_path/convert" "$Backup/轉換資料夾名稱.sh"
|
||||
[[ ! -f $Backup/壓縮檔完整性檢查.sh ]] && cp -r "$script_path/check_file" "$Backup/壓縮檔完整性檢查.sh"
|
||||
[[ -d $Backup/Media ]] && cp -r "$script_path/restore3" "$Backup/恢復自定義資料夾.sh"
|
||||
[[ ! -f $Backup/backup_settings.conf ]] && echo "#1開啟0關閉\n\n#是否在每次執行恢復腳本時使用音量鍵詢問如下需求\n#如果是那下面兩項項設置就被忽略,改為音量鍵選擇\nLo=$Lo\n\n#備份與恢復遭遇異常或是結束後發送通知(toast與狀態欄提示)\ntoast_info=$toast_info\n\n#使用者\nuser=\n\n#腳本檢測更新後進行跳轉瀏覽器或是複製連結?\nupdate=$update\n\n#檢測到更新後的行為(1跳轉瀏覽器 0不跳轉瀏覽器,但是複製連結到剪裁版)\nupdate_behavior=$update_behavior\n#主色\nrgb_a=$rgb_a\n#輔色\nrgb_b=$rgb_b\nrgb_c=$rgb_c">"$Backup/backup_settings.conf" && echo "$(sed 's/true/1/g ; s/false/0/g' "$Backup/backup_settings.conf")">"$Backup/backup_settings.conf"
|
||||
filesha256="$(sha256sum "$bin_path/tools.sh" | cut -d" " -f1)"
|
||||
@@ -874,7 +868,6 @@ backup)
|
||||
unset pkg name1
|
||||
pkg="$(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}')"
|
||||
#echo $pkg
|
||||
if [[ $(cat "$txt" | egrep -wo "^$am_start$") = $pkg ]]; then
|
||||
appinfo -sort-i -d "/" -o pn,sa -pn $pkg 2>/dev/null | while read; do
|
||||
am start -n "$REPLY" &>/dev/null
|
||||
@@ -883,8 +876,6 @@ backup)
|
||||
fi
|
||||
let i++
|
||||
done
|
||||
#回到桌面
|
||||
#input keyevent 3 2>/dev/null
|
||||
exit 0
|
||||
} &
|
||||
wait && exit
|
||||
@@ -899,22 +890,33 @@ check_file)
|
||||
starttime1="$(date -u "+%s")"
|
||||
error_log="$TMPDIR/error_log"
|
||||
rm -rf "$error_log"
|
||||
find "$MODDIR" -maxdepth 2 -name "*.tar*" -type f 2>/dev/null | sort | while read; do
|
||||
FIND_PATH="$(find "$MODDIR" -maxdepth 2 -name "*.tar*" -type f 2>/dev/null | sort)"
|
||||
i=1
|
||||
r="$(echo "$FIND_PATH" | wc -l)"
|
||||
Check_archive() {
|
||||
case ${1##*.} in
|
||||
lz4 | zst) zstd -t "$2" &>/dev/null ;;
|
||||
tar) tar -tf "$2" &>/dev/null ;;
|
||||
esac
|
||||
echo_log "效驗$MODDIR_NAME/$1"
|
||||
[[ $result != 0 ]] && echo "效驗失敗:$MODDIR_NAME/$1">>"$error_log"
|
||||
}
|
||||
while [[ $i -le $r ]]; do
|
||||
unset REPLY
|
||||
REPLY="$(echo "$FIND_PATH" | sed -n "${i}p")"
|
||||
MODDIR_NAME="${REPLY%/*}"
|
||||
MODDIR_NAME="${MODDIR_NAME##*/}"
|
||||
FILE_NAME="${REPLY##*/}"
|
||||
case ${FILE_NAME##*.} in
|
||||
lz4 | zst) zstd -t "$REPLY" &>/dev/null ;;
|
||||
tar) tar -tf "$REPLY" &>/dev/null ;;
|
||||
esac
|
||||
echo_log "效驗$MODDIR_NAME/$FILE_NAME"
|
||||
[[ $result != 0 ]] && echo "效驗失敗:$MODDIR_NAME/$FILE_NAME">>"$error_log"
|
||||
Check_archive "$FILE_NAME" "$REPLY"
|
||||
echoRgb "$i/$r個剩$((r - i))個 $((i * 100 / r))%"
|
||||
let i++ nskg++
|
||||
done
|
||||
endtime 1
|
||||
[[ -f $error_log ]] && echoRgb "以下為失敗的檔案\n -$(cat "$error_log")" || echoRgb "恭喜~~全數效驗通過"
|
||||
[[ -f $error_log ]] && echoRgb "以下為失敗的檔案\n$(cat "$error_log")" || echoRgb "恭喜~~全數效驗通過"
|
||||
rm -rf "$error_log"
|
||||
;;
|
||||
Restore)
|
||||
kill_Serve
|
||||
echoRgb "假設反悔了要終止腳本請儘速離開此腳本點擊終止腳本.sh,否則腳本將繼續執行直到結束" "0"
|
||||
echoRgb "如果大量提示找不到資料夾請執行$MODDIR/轉換資料夾名稱.sh"
|
||||
disable_verify
|
||||
@@ -1017,6 +1019,7 @@ Restore)
|
||||
wait && exit
|
||||
;;
|
||||
Restore2)
|
||||
kill_Serve
|
||||
disable_verify
|
||||
[[ ! -d $path2 ]] && echoRgb "設備不存在user目錄" "0" && exit 1
|
||||
[[ $(which restorecon) = "" ]] && echoRgb "restorecon命令不存在" "0" && exit 1
|
||||
@@ -1069,6 +1072,7 @@ Restore2)
|
||||
wait && exit
|
||||
;;
|
||||
Restore3)
|
||||
kill_Serve
|
||||
echoRgb "點錯了?這是恢復自定義資料夾腳本 如果你是要恢復應用那你就點錯了\n -音量上繼續恢復自定義資料夾,音量下離開腳本" "2"
|
||||
echoRgb "假設反悔了要終止腳本請儘速離開此腳本點擊終止腳本.sh,否則腳本將繼續執行直到結束" "0"
|
||||
get_version "恢復自定義資料夾" "離開腳本" && [[ "$branch" = false ]] && exit 0
|
||||
@@ -1187,6 +1191,7 @@ Getlist)
|
||||
rm -rf "$MODDIR/tmp"
|
||||
;;
|
||||
backup_media)
|
||||
kill_Serve
|
||||
backup_path
|
||||
echoRgb "假設反悔了要終止腳本請儘速離開此腳本點擊終止腳本.sh,否則腳本將繼續執行直到結束" "0"
|
||||
A=1
|
||||
@@ -1198,6 +1203,7 @@ backup_media)
|
||||
[[ ! -f $Backup/恢復自定義資料夾.sh ]] && cp -r "$script_path/restore3" "$Backup/恢復自定義資料夾.sh"
|
||||
[[ ! -f $Backup/重新生成應用列表.sh ]] && cp -r "$script_path/Get_DirName" "$Backup/重新生成應用列表.sh"
|
||||
[[ ! -f $Backup/轉換資料夾名稱.sh ]] && cp -r "$script_path/convert" "$Backup/轉換資料夾名稱.sh"
|
||||
[[ ! -f $Backup/壓縮檔完整性檢查.sh ]] && cp -r "$script_path/check_file" "$Backup/壓縮檔完整性檢查.sh"
|
||||
[[ ! -d $Backup/tools ]] && cp -r "$tools_path" "$Backup" && rm -rf "$Backup/tools/bin/zip" "$Backup/tools/script"
|
||||
[[ ! -f $Backup/backup_settings.conf ]] && echo "#1開啟0關閉\n\n#是否在每次執行恢復腳本時使用音量鍵詢問如下需求\n#如果是那下面兩項項設置就被忽略,改為音量鍵選擇\nLo=$Lo\n\n#備份與恢復遭遇異常或是結束後發送通知(toast與狀態欄提示)\ntoast_info=$toast_info\n\n#腳本檢測更新後進行跳轉瀏覽器或是複製連結?\nupdate=$update\n\n#檢測到更新後的行為(1跳轉瀏覽器 0不跳轉瀏覽器,但是複製連結到剪裁版)\nupdate_behavior=$update_behavior">"$Backup/backup_settings.conf" && echo "$(sed 's/true/1/g ; s/false/0/g' "$Backup/backup_settings.conf")">"$Backup/backup_settings.conf"
|
||||
app_details="$Backup_folder/app_details"
|
||||
|
||||
7
tools/script/check_file
Normal file
7
tools/script/check_file
Normal file
@@ -0,0 +1,7 @@
|
||||
if [ -f "${0%/*}/tools/bin/tools.sh" ]; then
|
||||
MODDIR="${0%/*}"
|
||||
operate="check_file"
|
||||
. "${0%/*}/tools/bin/tools.sh"
|
||||
else
|
||||
echo "${0%/*}/tools/bin/tools.sh遺失"
|
||||
fi
|
||||
Reference in New Issue
Block a user