bug fix
This commit is contained in:
@@ -17,6 +17,7 @@ txt="$MODDIR/應用列表.txt"
|
||||
[[ ! -f $txt ]] && echoRgb "請執行\"掃描資料夾名.sh\"獲取應用列表再來恢復" "0" && exit 2
|
||||
r="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n '$=')"
|
||||
[[ $r = "" ]] && echoRgb "應用列表.txt包名為空或是被注釋了" "0" && exit 1
|
||||
[[ $(restorecon --help 2>/dev/null) = "" ]] && echoRgb "restorecon命令不存在" "0" && exit 1
|
||||
#顯示執行結果
|
||||
Release_data() {
|
||||
tar_path="$1"
|
||||
@@ -74,7 +75,7 @@ Release_data() {
|
||||
Path_details="$(stat -c "%A/%a %U/%G" "$X")"
|
||||
chown -hR "$G:$G" "$X"
|
||||
echo_log "設置用戶組:$(echo "$Path_details" | awk '{print $2}')"
|
||||
restorecon -R "$X" >/dev/null 2>&1
|
||||
restorecon -RF "$X/" >/dev/null 2>&1
|
||||
echo_log "selinux上下文設置"
|
||||
#echoRgb "$(stat -c "%n %A/%a %U/%G" "$X" | awk '{print "路徑:"$1"\n 權限:"$2"\n 用戶組:"$3}')"
|
||||
else
|
||||
@@ -84,9 +85,9 @@ Release_data() {
|
||||
echoRgb "路徑$X不存在" "0"
|
||||
fi
|
||||
elif [[ $FILE_NAME2 = data ]]; then
|
||||
[[ -d $path/data/$name2 ]] && chown -R "1023:1078" "$path/data/$name2"
|
||||
[[ -d $path/data/$name2 ]] && chown -R "1023:1023" "$path/data/$name2"
|
||||
elif [[ $FILE_NAME2 = thanox ]]; then
|
||||
restorecon -R "$(find "/data/system" -name "thanos*" -maxdepth 1 -type d)" >/dev/null 2>&1
|
||||
restorecon -RF "$(find "/data/system" -name "thanos*" -maxdepth 1 -type d)/" >/dev/null 2>&1
|
||||
echo_log "selinux上下文設置" && echoRgb "警告 thanox配置恢復後務必重啟\n -否則不生效" "0"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -11,6 +11,7 @@ path="/data/media/0/Android"
|
||||
path2="/data/data"
|
||||
[[ ! -d $TMPDIR ]] && mkdir "$TMPDIR"
|
||||
[[ ! -d $path2 ]] && echoRgb "設備不存在user目錄" "0" && exit 1
|
||||
[[ $(restorecon --help 2>/dev/null) = "" ]] && echoRgb "restorecon命令不存在" "0" && exit 1
|
||||
#記錄開始時間
|
||||
starttime1="$(date -u "+%s")"
|
||||
{
|
||||
@@ -111,7 +112,7 @@ if [[ $Recovery_mode = true ]]; then
|
||||
Path_details="$(stat -c "%A/%a %U/%G" "$X")"
|
||||
chown -hR "$G:$G" "$X"
|
||||
echo_log "設置用戶組:$(echo "$Path_details" | awk '{print $2}')"
|
||||
restorecon -R "$X" >/dev/null 2>&1
|
||||
restorecon -RF "$X/" >/dev/null 2>&1
|
||||
echo_log "selinux上下文設置"
|
||||
else
|
||||
echoRgb "uid獲取失敗" "0"
|
||||
@@ -120,9 +121,9 @@ if [[ $Recovery_mode = true ]]; then
|
||||
echoRgb "路徑$X不存在" "0"
|
||||
fi
|
||||
elif [[ $FILE_NAME2 = data ]]; then
|
||||
[[ -d $path/data/$name2 ]] && chown -R "1023:1078" "$path/data/$name2"
|
||||
[[ -d $path/data/$name2 ]] && chown -R "1023:1023" "$path/data/$name2"
|
||||
elif [[ $FILE_NAME2 = thanox ]]; then
|
||||
restorecon -R "$(find "/data/system" -name "thanos*" -maxdepth 1 -type d)" >/dev/null 2>&1
|
||||
restorecon -R "$(find "/data/system" -name "thanos*" -maxdepth 1 -type d)/" >/dev/null 2>&1
|
||||
echo_log "selinux上下文設置" && echoRgb "警告 thanox配置恢復後務必重啟\n -否則不生效" "0"
|
||||
fi
|
||||
fi
|
||||
|
||||
32
備份應用.sh
32
備份應用.sh
@@ -61,18 +61,23 @@ if [[ $PU != "" ]]; then
|
||||
[[ -f /proc/mounts ]] && PT="$(cat /proc/mounts | grep "$PU" | awk '{print $2}')"
|
||||
if [[ -d $PT ]]; then
|
||||
if [[ $(echo "$MODDIR" | grep -oE "^${PT}") != "" || $USBdefault = true ]]; then
|
||||
echoRgb "於隨身碟備份" "1"
|
||||
Backup="$PT/Backup_$Compression_method"
|
||||
data="/dev/block/vold/$PU"
|
||||
hx="USB"
|
||||
else
|
||||
echoRgb "檢測到隨身碟 是否在隨身碟備份\n -音量上是,音量下不是"
|
||||
get_version "選擇了隨身碟備份" "選擇了本地備份"
|
||||
if $branch = true ]]; then
|
||||
Backup="$PT/Backup_$Compression_method"
|
||||
data="/dev/block/vold/$PU"
|
||||
hx="USB"
|
||||
fi
|
||||
[[ $branch = true ]] && hx="USB"
|
||||
fi
|
||||
if [[ $hx = USB ]]; then
|
||||
Backup="$PT/Backup_$Compression_method"
|
||||
data="/dev/block/vold/$PU"
|
||||
mountinfo="$(df -T "$data" | awk 'END{print $1}')"
|
||||
case $mountinfo in
|
||||
exfat|NTFS|ext4)
|
||||
echoRgb "於隨身碟備份 檔案系統:$mountinfo" "1"
|
||||
;;
|
||||
*)
|
||||
echoRgb "隨身碟檔案系統$mountinfo不支持超過單檔4GB\n -請格式化為exfat" "0" ; exit 1 ;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
else
|
||||
@@ -115,7 +120,7 @@ Backup_apk() {
|
||||
case $Compression_method in
|
||||
tar|TAR|Tar) tar -cf "$Backup_folder/apk.tar" *.apk ;;
|
||||
lz4|LZ4|Lz4) tar -cf - *.apk | lz4 -1 >"$Backup_folder/apk.tar.lz4" ;;
|
||||
zstd|Zstd|ZSTD) tar -cf - *apk | zstd -r -T0 -6 -q >"$Backup_folder/apk.tar.zst" ;;
|
||||
zstd|Zstd|ZSTD) tar -cf - *apk | zstd -r -T0 --ultra -6 -q >"$Backup_folder/apk.tar.zst" ;;
|
||||
esac)
|
||||
echo_log "備份$apk_number個Apk"
|
||||
if [[ $result = 0 ]]; then
|
||||
@@ -158,14 +163,14 @@ Backup_data() {
|
||||
user)
|
||||
case $Compression_method in
|
||||
tar|Tar|TAR) tar --exclude="${data_path##*/}/.ota" --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/lib" -cpf - -C "${data_path%/*}" "${data_path##*/}" 2>/dev/null | pv >"$Backup_folder/$1.tar" ;;
|
||||
zstd|Zstd|ZSTD) tar --exclude="${data_path##*/}/.ota" --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/lib" -cpf - -C "${data_path%/*}" "${data_path##*/}" 2>/dev/null | pv | zstd -r -T0 -6 -q >"$Backup_folder/$1.tar.zst" ;;
|
||||
zstd|Zstd|ZSTD) tar --exclude="${data_path##*/}/.ota" --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/lib" -cpf - -C "${data_path%/*}" "${data_path##*/}" 2>/dev/null | pv | zstd -r -T0 --ultra -6 -q >"$Backup_folder/$1.tar.zst" ;;
|
||||
lz4|Lz4|LZ4) tar --exclude="${data_path##*/}/.ota" --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}/lib" -cpf - -C "${data_path%/*}" "${data_path##*/}" 2>/dev/null | pv | lz4 -1 >"$Backup_folder/$1.tar.lz4" ;;
|
||||
esac ;;
|
||||
*)
|
||||
case $Compression_method in
|
||||
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" ;;
|
||||
tar|Tar|TAR) tar --exclude="Backup_"* --exclude="${data_path##*/}/cache" -cPpf - "$data_path" 2>/dev/null | pv >"$Backup_folder/$1.tar" ;;
|
||||
zstd|Zstd|ZSTD) tar --exclude="Backup_"* --exclude="${data_path##*/}/cache" -cPpf - "$data_path" 2>/dev/null | pv | zstd -r -T0 --ultra -6 -q >"$Backup_folder/$1.tar.zst" ;;
|
||||
lz4|Lz4|LZ4) tar --exclude="Backup_"* --exclude="${data_path##*/}/cache" -cPpf - "$data_path" 2>/dev/null | pv | lz4 -1 >"$Backup_folder/$1.tar.lz4" ;;
|
||||
esac ; [[ $Compression_method1 != "" ]] && Compression_method="$Compression_method1" ; unset Compression_method1 ;;
|
||||
esac
|
||||
echo_log "備份$1數據"
|
||||
@@ -228,6 +233,7 @@ while [[ $i -le $r ]]; do
|
||||
fi
|
||||
fi
|
||||
lxj="$(df -h "$data" | awk 'END{print $4}' | sed 's/%//g')"
|
||||
[[ $hx = USB && $PT = "" ]] && echoRgb "隨身碟意外斷開 請檢查穩定性" "0" && exit 1
|
||||
starttime2="$(date -u "+%s")"
|
||||
echoRgb "備份$name1 ($name2)"
|
||||
[[ $name2 = com.tencent.mobileqq ]] && echo "QQ可能恢復備份失敗或是丟失聊天記錄,請自行用你信賴的應用備份"
|
||||
|
||||
@@ -5,7 +5,11 @@ bin_path="$tools_path/bin"
|
||||
[[ $(echo "$MODDIR" | grep -v 'mt') = "" ]] && echo "我他媽骨灰給你揚了撒了TM不解壓縮?用毛線 憨批" && exit 1
|
||||
[[ ! -d $tools_path ]] && echo " $tools_path目錄遺失" && exit 1
|
||||
. "$bin_path/bin.sh"
|
||||
[[ $(find "$MODDIR" -maxdepth 1 -name "*.zip" -type f) = "" ]] && echoRgb "警告 未找到任何zip 請將下載的備份腳本.zip\n -放入當前目錄中\n -當前路徑$MODDIR" "0"
|
||||
if [[ $(find "$MODDIR" -maxdepth 1 -name "*.zip" -type f) = "" ]]; then
|
||||
echoRgb "警告 未找到任何zip 請將下載的備份腳本.zip\n -放入當前目錄中\n -當前路徑$MODDIR" "0"
|
||||
else
|
||||
[[ $(find "$MODDIR" -maxdepth 1 -name "*.zip" -type f | wc -l) -gt 1 ]] && echoRgb "錯誤 請刪除當前目錄多餘zip\n -保留一個最新的數據備份.zip\n -下列為當期目錄zip\n$(find "$MODDIR" -maxdepth 1 -name "*.zip" -type f)" "0" && exit 1
|
||||
fi
|
||||
find "$MODDIR" -maxdepth 1 -name "*.zip" -type f | while read; do
|
||||
if [[ $(unzip -l "$REPLY" | awk '{print $4}' | grep -oE "^backup_settings.conf$") != "" ]]; then
|
||||
unzip -o "$REPLY" -d "$MODDIR" && (
|
||||
|
||||
Reference in New Issue
Block a user