bugfix
This commit is contained in:
@@ -48,7 +48,7 @@ else
|
|||||||
echo "Magisk busybox Path does not exist"
|
echo "Magisk busybox Path does not exist"
|
||||||
fi
|
fi
|
||||||
export PATH="$PATH"
|
export PATH="$PATH"
|
||||||
backup_version="V15.5.6"
|
backup_version="V15.5.7"
|
||||||
#設置二進制命令目錄位置
|
#設置二進制命令目錄位置
|
||||||
if [[ $bin_path = "" ]]; then
|
if [[ $bin_path = "" ]]; then
|
||||||
echoRgb "未正確指定bin.sh位置" "0"
|
echoRgb "未正確指定bin.sh位置" "0"
|
||||||
@@ -243,12 +243,12 @@ update_script() {
|
|||||||
if [[ $(unzip -l "$zipFile" | awk '{print $4}' | egrep -o "^backup_settings.conf$") = "" ]]; then
|
if [[ $(unzip -l "$zipFile" | awk '{print $4}' | egrep -o "^backup_settings.conf$") = "" ]]; then
|
||||||
echoRgb "${zipFile##*/}並非指定的備份zip,請刪除後重新放置\n -何謂更新zip? 就是GitHub release頁面下載的zip" "0"
|
echoRgb "${zipFile##*/}並非指定的備份zip,請刪除後重新放置\n -何謂更新zip? 就是GitHub release頁面下載的zip" "0"
|
||||||
else
|
else
|
||||||
unzip -o "$zipFile" -j "tools/bin/bin.sh" -d "$MODDIR"
|
unzip -o "$zipFile" -j "tools/bin/bin.sh" -d "$MODDIR" &>/dev/null
|
||||||
if [[ $(expr "$(echo "$backup_version" | tr -d "a-zA-Z")" \> "$(cat "$MODDIR/bin.sh" | awk '/backup_version/{print $1}' | cut -f2 -d '=' | head -1 | sed 's/\"//g' | tr -d "a-zA-Z")") -eq 0 ]]; then
|
if [[ $(expr "$(echo "$backup_version" | tr -d "a-zA-Z")" \> "$(cat "$MODDIR/bin.sh" | awk '/backup_version/{print $1}' | cut -f2 -d '=' | head -1 | sed 's/\"//g' | tr -d "a-zA-Z")") -eq 0 ]]; then
|
||||||
echoRgb "從$zipFile更新"
|
echoRgb "從$zipFile更新"
|
||||||
cp -r "$tools_path" "$TMPDIR" && rm -rf "$tools_path"
|
cp -r "$tools_path" "$TMPDIR" && rm -rf "$tools_path"
|
||||||
find "$MODDIR" -maxdepth 3 -name "*.sh" -type f -exec rm -rf {} \;
|
find "$MODDIR" -maxdepth 3 -name "*.sh" -type f -exec rm -rf {} \;
|
||||||
unzip -o "$zipFile" -x "backup_settings.conf" -d "$MODDIR"
|
unzip -o "$zipFile" -x "backup_settings.conf" -d "$MODDIR" | sed 's/inflating/釋放/g ; s/creating/創建/g ; s/Archive/解壓縮/g'
|
||||||
echo_log "解壓縮${zipFile##*/}"
|
echo_log "解壓縮${zipFile##*/}"
|
||||||
if [[ $result = 0 ]]; then
|
if [[ $result = 0 ]]; then
|
||||||
case $MODDIR in
|
case $MODDIR in
|
||||||
@@ -360,7 +360,7 @@ update_script() {
|
|||||||
echoRgb "更新完成 請重新執行腳本" "2"
|
echoRgb "更新完成 請重新執行腳本" "2"
|
||||||
exit
|
exit
|
||||||
else
|
else
|
||||||
echoRgb "${zipFile##*/}版本低於當前版本,自動刪除"
|
echoRgb "${zipFile##*/}版本低於當前版本,自動刪除" "0"
|
||||||
rm -rf "$zipFile" "$MODDIR/bin.sh"
|
rm -rf "$zipFile" "$MODDIR/bin.sh"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ backup_path() {
|
|||||||
data="/dev/block/vold/$PU"
|
data="/dev/block/vold/$PU"
|
||||||
mountinfo="$(df -T "${Backup%/*}" | sed -n 's|% /.*|%|p' | awk '{print $(NF-4)}')"
|
mountinfo="$(df -T "${Backup%/*}" | sed -n 's|% /.*|%|p' | awk '{print $(NF-4)}')"
|
||||||
case $mountinfo in
|
case $mountinfo in
|
||||||
fuseblk | exfat | NTFS | ext4 | f2fs)
|
sdfat | fuseblk | exfat | NTFS | ext4 | f2fs)
|
||||||
outshow="於隨身碟備份" && hx=usb
|
outshow="於隨身碟備份" && hx=usb
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@@ -408,6 +408,8 @@ Backup_data() {
|
|||||||
echo "$1Size=\"$(du -ks "$data_path" | awk '{print $1}')\"" >>"$app_details"
|
echo "$1Size=\"$(du -ks "$data_path" | awk '{print $1}')\"" >>"$app_details"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
rm -rf "$Backup_folder/$1".tar.*
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
[[ $Compression_method1 != "" ]] && Compression_method="$Compression_method1"
|
[[ $Compression_method1 != "" ]] && Compression_method="$Compression_method1"
|
||||||
@@ -570,63 +572,62 @@ get_name(){
|
|||||||
txt="${txt/'/storage/emulated/'/'/data/media/'}"
|
txt="${txt/'/storage/emulated/'/'/data/media/'}"
|
||||||
[[ $1 = Apkname ]] && rm -rf *.txt && echoRgb "列出全部資料夾內應用名與自定義目錄壓縮包名稱" "3"
|
[[ $1 = Apkname ]] && rm -rf *.txt && echoRgb "列出全部資料夾內應用名與自定義目錄壓縮包名稱" "3"
|
||||||
rgb_a=118
|
rgb_a=118
|
||||||
find "$MODDIR" -maxdepth 1 -type d 2>/dev/null | sort | while read; do
|
find "$MODDIR" -maxdepth 2 -name "app_details" -type f 2>/dev/null | sort | while read; do
|
||||||
|
REPLY="${REPLY%/*}"
|
||||||
[[ $rgb_a -ge 229 ]] && rgb_a=118
|
[[ $rgb_a -ge 229 ]] && rgb_a=118
|
||||||
if [[ -f $REPLY/app_details ]]; then
|
if [[ ${REPLY##*/} = Media && $1 = Apkname ]]; then
|
||||||
if [[ ${REPLY##*/} = Media && $1 = Apkname ]]; then
|
echoRgb "存在媒體資料夾" "2"
|
||||||
echoRgb "存在媒體資料夾" "2"
|
[[ ! -f $txt2 ]] && echo "#不需要恢復的資料夾請在開頭注釋# 比如#媒體" > "$txt2"
|
||||||
[[ ! -f $txt2 ]] && echo "#不需要恢復的資料夾請在開頭注釋# 比如#媒體" > "$txt2"
|
find "$REPLY" -maxdepth 1 -name "*.tar*" -type f 2>/dev/null | while read; do
|
||||||
find "$REPLY" -maxdepth 1 -name "*.tar*" -type f 2>/dev/null | while read; do
|
echoRgb "${REPLY##*/}" && echo "${REPLY##*/}" >> "$txt2"
|
||||||
echoRgb "${REPLY##*/}" && echo "${REPLY##*/}" >> "$txt2"
|
done
|
||||||
done
|
echoRgb "$txt2重新生成" "1"
|
||||||
echoRgb "$txt2重新生成" "1"
|
else
|
||||||
else
|
unset PackageName NAME DUMPAPK ChineseName
|
||||||
unset PackageName NAME DUMPAPK ChineseName
|
. "$REPLY/app_details" &>/dev/null
|
||||||
. "$REPLY/app_details" &>/dev/null
|
[[ ! -f $txt && $1 = Apkname ]] && echo "#不需要恢復還原的應用請在開頭注釋# 比如#xxxxxxxx 酷安" >"$txt"
|
||||||
[[ ! -f $txt && $1 = Apkname ]] && echo "#不需要恢復還原的應用請在開頭注釋# 比如#xxxxxxxx 酷安" >"$txt"
|
if [[ $PackageName = "" || $ChineseName = "" ]]; then
|
||||||
if [[ $PackageName = "" || $ChineseName = "" ]]; then
|
if [[ ${REPLY##*/} != Media ]]; then
|
||||||
if [[ ${REPLY##*/} != Media ]]; then
|
echoRgb "${REPLY##*/}包名獲取失敗,解壓縮獲取包名中..." "0"
|
||||||
echoRgb "${REPLY##*/}包名獲取失敗,解壓縮獲取包名中..." "0"
|
compressed_file="$(find "$REPLY" -maxdepth 1 -name "apk.*" -type f 2>/dev/null)"
|
||||||
compressed_file="$(find "$REPLY" -maxdepth 1 -name "apk.*" -type f 2>/dev/null)"
|
if [[ $compressed_file != "" ]]; then
|
||||||
if [[ $compressed_file != "" ]]; then
|
rm -rf "$TMPDIR"/*
|
||||||
rm -rf "$TMPDIR"/*
|
case ${compressed_file##*.} in
|
||||||
case ${compressed_file##*.} in
|
lz4 | zst) pv "$compressed_file" | tar -I zstd -xmpf - -C "$TMPDIR" --wildcards --no-anchored 'base.apk' ;;
|
||||||
lz4 | zst) pv "$compressed_file" | tar -I zstd -xmpf - -C "$TMPDIR" --wildcards --no-anchored 'base.apk' ;;
|
tar) pv "$compressed_file" | tar -xmpf - -C "$TMPDIR" --wildcards --no-anchored 'base.apk' ;;
|
||||||
tar) pv "$compressed_file" | tar -xmpf - -C "$TMPDIR" --wildcards --no-anchored 'base.apk' ;;
|
*)
|
||||||
*)
|
echoRgb "${compressed_file##*/} 壓縮包不支持解壓縮" "0"
|
||||||
echoRgb "${compressed_file##*/} 壓縮包不支持解壓縮" "0"
|
Set_back
|
||||||
Set_back
|
;;
|
||||||
;;
|
esac
|
||||||
esac
|
echo_log "${compressed_file##*/}解壓縮"
|
||||||
echo_log "${compressed_file##*/}解壓縮"
|
if [[ $result = 0 ]]; then
|
||||||
if [[ $result = 0 ]]; then
|
if [[ -f $TMPDIR/base.apk ]]; then
|
||||||
if [[ -f $TMPDIR/base.apk ]]; then
|
DUMPAPK="$(appinfo -sort-i -d " " -o ands,pn -f "$TMPDIR/base.apk")"
|
||||||
DUMPAPK="$(appinfo -sort-i -d " " -o ands,pn -f "$TMPDIR/base.apk")"
|
if [[ $DUMPAPK != "" ]]; then
|
||||||
if [[ $DUMPAPK != "" ]]; then
|
app=($DUMPAPK $DUMPAPK)
|
||||||
app=($DUMPAPK $DUMPAPK)
|
PackageName="${app[1]}"
|
||||||
PackageName="${app[1]}"
|
ChineseName="${app[2]}"
|
||||||
ChineseName="${app[2]}"
|
rm -rf "$TMPDIR"/*
|
||||||
rm -rf "$TMPDIR"/*
|
else
|
||||||
else
|
echoRgb "appinfo輸出失敗" "0"
|
||||||
echoRgb "appinfo輸出失敗" "0"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $PackageName != "" && $ChineseName != "" ]]; then
|
fi
|
||||||
case $1 in
|
if [[ $PackageName != "" && $ChineseName != "" ]]; then
|
||||||
Apkname)
|
case $1 in
|
||||||
echoRgb "$ChineseName $PackageName" && echo "$ChineseName $PackageName" >>"$txt" ;;
|
Apkname)
|
||||||
convert)
|
echoRgb "$ChineseName $PackageName" && echo "$ChineseName $PackageName" >>"$txt" ;;
|
||||||
if [[ ${REPLY##*/} = $PackageName ]]; then
|
convert)
|
||||||
mv "$REPLY" "${REPLY%/*}/$ChineseName" && echoRgb "${REPLY##*/} > $ChineseName"
|
if [[ ${REPLY##*/} = $PackageName ]]; then
|
||||||
else
|
mv "$REPLY" "${REPLY%/*}/$ChineseName" && echoRgb "${REPLY##*/} > $ChineseName"
|
||||||
mv "$REPLY" "${REPLY%/*}/$PackageName" && echoRgb "${REPLY##*/} > $PackageName"
|
else
|
||||||
fi ;;
|
mv "$REPLY" "${REPLY%/*}/$PackageName" && echoRgb "${REPLY##*/} > $PackageName"
|
||||||
esac
|
fi ;;
|
||||||
fi
|
esac
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
let rgb_a++
|
let rgb_a++
|
||||||
@@ -650,13 +651,16 @@ Check_archive() {
|
|||||||
rm -rf "$error_log"
|
rm -rf "$error_log"
|
||||||
FIND_PATH="$(find "$1" -maxdepth 3 -name "*.tar*" -type f 2>/dev/null | sort)"
|
FIND_PATH="$(find "$1" -maxdepth 3 -name "*.tar*" -type f 2>/dev/null | sort)"
|
||||||
i=1
|
i=1
|
||||||
r="$(echo "$FIND_PATH" | wc -l)"
|
r="$(find "$MODDIR" -maxdepth 2 -name "app_details" -type f 2>/dev/null | wc -l)"
|
||||||
while [[ $i -le $r ]]; do
|
find "$MODDIR" -maxdepth 2 -name "app_details" -type f 2>/dev/null | sort | while read; do
|
||||||
unset REPLY
|
REPLY="${REPLY%/*}"
|
||||||
REPLY="$(echo "$FIND_PATH" | sed -n "${i}p")"
|
echoRgb "效驗第$i/$r個資料夾 剩下$((r - i))個" "3"
|
||||||
Validation_file "$REPLY"
|
echoRgb "效驗:${REPLY##*/}"
|
||||||
[[ $result != 0 ]] && echo "效驗失敗:$MODDIR_NAME/$1">>"$error_log"
|
find "$REPLY" -maxdepth 1 -name "*.tar*" -type f 2>/dev/null | sort | while read; do
|
||||||
echoRgb "$i/$r個剩$((r - i))個 $((i * 100 / r))%"
|
Validation_file "$REPLY"
|
||||||
|
[[ $result != 0 ]] && echo "效驗失敗:$MODDIR_NAME/$1">>"$error_log"
|
||||||
|
done
|
||||||
|
echoRgb "$((i * 100 / r))%"
|
||||||
let i++ nskg++
|
let i++ nskg++
|
||||||
done
|
done
|
||||||
endtime 1
|
endtime 1
|
||||||
@@ -1131,6 +1135,9 @@ Restore3)
|
|||||||
rm -rf "$TMPDIR/scriptTMP"
|
rm -rf "$TMPDIR/scriptTMP"
|
||||||
;;
|
;;
|
||||||
Getlist)
|
Getlist)
|
||||||
|
case $MODDIR in
|
||||||
|
/storage/emulated/0/Android/* | /data/media/0/Android/* | /sdcard/Android/*) echoRgb "請勿在$MODDIR內生成列表" "0" && exit 2 ;;
|
||||||
|
esac
|
||||||
#效驗選填是否正確
|
#效驗選填是否正確
|
||||||
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
||||||
isBoolean "$debug_list" "debug_list" && debug_list="$nsx"
|
isBoolean "$debug_list" "debug_list" && debug_list="$nsx"
|
||||||
@@ -1246,7 +1253,6 @@ backup_media)
|
|||||||
echoRgb "完成$((A * 100 / B))% $hx$(echo "$Occupation_status" | awk 'END{print "剩餘:"$1"使用率:"$2}')" "2" && echoRgb "____________________________________" && let A++
|
echoRgb "完成$((A * 100 / B))% $hx$(echo "$Occupation_status" | awk 'END{print "剩餘:"$1"使用率:"$2}')" "2" && echoRgb "____________________________________" && let A++
|
||||||
done
|
done
|
||||||
Calculate_size "$Backup_folder"
|
Calculate_size "$Backup_folder"
|
||||||
echoRgb "目錄↓↓↓\n -$Backup_folder"
|
|
||||||
endtime 1 "自定義備份"
|
endtime 1 "自定義備份"
|
||||||
else
|
else
|
||||||
echoRgb "自定義路徑為空 無法備份" "0"
|
echoRgb "自定義路徑為空 無法備份" "0"
|
||||||
|
|||||||
BIN
tools/bin/zstd
BIN
tools/bin/zstd
Binary file not shown.
Reference in New Issue
Block a user