bugfix
This commit is contained in:
@@ -21,7 +21,7 @@ fi
|
|||||||
abi="$(getprop ro.product.cpu.abi)"
|
abi="$(getprop ro.product.cpu.abi)"
|
||||||
case $abi in
|
case $abi in
|
||||||
arm64*)
|
arm64*)
|
||||||
if [[ $(getprop ro.build.version.sdk) -lt 26 ]]; then
|
if [[ $(getprop ro.build.version.sdk) -lt 24 ]]; then
|
||||||
echoRgb "設備Android $(getprop ro.build.version.release)版本過低 請升級至Android 8+" "0"
|
echoRgb "設備Android $(getprop ro.build.version.release)版本過低 請升級至Android 8+" "0"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
@@ -115,6 +115,7 @@ else
|
|||||||
fi
|
fi
|
||||||
export PATH="$filepath:$PATH"
|
export PATH="$filepath:$PATH"
|
||||||
export TZ=Asia/Taipei
|
export TZ=Asia/Taipei
|
||||||
|
export CLASSPATH="$bin_path/classes.dex"
|
||||||
TMPDIR="/data/local/tmp"
|
TMPDIR="/data/local/tmp"
|
||||||
[[ ! -d $TMPDIR ]] && mkdir "$TMPDIR"
|
[[ ! -d $TMPDIR ]] && mkdir "$TMPDIR"
|
||||||
if [[ $(which busybox) = "" ]]; then
|
if [[ $(which busybox) = "" ]]; then
|
||||||
@@ -122,6 +123,12 @@ if [[ $(which busybox) = "" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
#下列為自定義函數
|
#下列為自定義函數
|
||||||
|
appinfo() {
|
||||||
|
exec app_process /system/bin --nice-name=appinfo indi.appinfo.AppInfo "$@"
|
||||||
|
}
|
||||||
|
down() {
|
||||||
|
exec app_process /system/bin --nice-name=down Han.download.Down "$@"
|
||||||
|
}
|
||||||
Set_back() {
|
Set_back() {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
@@ -146,8 +153,8 @@ stopscript() {
|
|||||||
}
|
}
|
||||||
nskg=1
|
nskg=1
|
||||||
Print() {
|
Print() {
|
||||||
a=$(echo "backup-$(date '+%T')" | sed 's#/#{xiegang}#g')
|
a=$(echo "SpeedBackup" | sed 's#/#{xiegang}#g')
|
||||||
b=$(echo "$1" | sed 's#/#{xiegang}#g')
|
b=$(echo "$(date '+%T')\n$1" | sed 's#/#{xiegang}#g')
|
||||||
content query --uri content://ice.message/notify/"$nskg<|>$a<|>$b<|>bs" >/dev/null 2>&1
|
content query --uri content://ice.message/notify/"$nskg<|>$a<|>$b<|>bs" >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
longToast() {
|
longToast() {
|
||||||
@@ -210,9 +217,8 @@ kill_Serve() {
|
|||||||
} &
|
} &
|
||||||
wait
|
wait
|
||||||
}
|
}
|
||||||
ykj() {
|
Show_boottime() {
|
||||||
# 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 2>/dev/null
|
||||||
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
|
|
||||||
}
|
}
|
||||||
[[ -f /sys/block/sda/size ]] && ROM_TYPE="UFS" || ROM_TYPE="eMMC"
|
[[ -f /sys/block/sda/size ]] && ROM_TYPE="UFS" || ROM_TYPE="eMMC"
|
||||||
if [[ -f /proc/scsi/scsi ]]; then
|
if [[ -f /proc/scsi/scsi ]]; then
|
||||||
@@ -228,7 +234,7 @@ Open_apps="$(appinfo -d "(" -ed ")" -o ands,pn -ta c 2>/dev/null)"
|
|||||||
Open_apps2="$(echo "$Open_apps" | cut -f2 -d '(' | sed 's/)//g')"
|
Open_apps2="$(echo "$Open_apps" | cut -f2 -d '(' | sed 's/)//g')"
|
||||||
raminfo="$(awk '($1 == "MemTotal:"){print $2/1000"MB"}' /proc/meminfo 2>/dev/null)"
|
raminfo="$(awk '($1 == "MemTotal:"){print $2/1000"MB"}' /proc/meminfo 2>/dev/null)"
|
||||||
echoRgb "---------------------SpeedBackup---------------------"
|
echoRgb "---------------------SpeedBackup---------------------"
|
||||||
echoRgb "-當前腳本執行路徑:$MODDIR\n -busybox路徑:$(which busybox)\n -busybox版本:$(busybox | head -1 | awk '{print $2}')\n -appinfo版本:$(appinfo --version)\n -腳本版本:$backup_version\n -Magisk版本:$(cat "/data/adb/magisk/util_functions.sh" 2>/dev/null | grep "MAGISK_VER_CODE" | cut -f2 -d '=')\n -設備架構:$abi\n -品牌:$(getprop ro.product.brand 2>/dev/null)\n -設備代號:$(getprop ro.product.device 2>/dev/null)\n -型號:$(getprop ro.product.model 2>/dev/null)\n -RAM:$raminfo\n -閃存類型:$ROM_TYPE\n -閃存顆粒:$UFS_MODEL\n -Android版本:$(getprop ro.build.version.release 2>/dev/null) SDK:$(getprop ro.build.version.sdk 2>/dev/null)\n -終端:$Open_apps\n -By@YAWAsau\n -Support: https://jq.qq.com/?_wv=1027&k=f5clPNC3"
|
echoRgb "當前腳本執行路徑:$MODDIR\n -已開機:$(Show_boottime)\n -busybox路徑:$(which busybox)\n -busybox版本:$(busybox | head -1 | awk '{print $2}')\n -appinfo版本:$(appinfo --version)\n -腳本版本:$backup_version\n -Magisk版本:$(cat "/data/adb/magisk/util_functions.sh" 2>/dev/null | grep "MAGISK_VER_CODE" | cut -f2 -d '=')\n -設備架構:$abi\n -品牌:$(getprop ro.product.brand 2>/dev/null)\n -設備代號:$(getprop ro.product.device 2>/dev/null)\n -型號:$(getprop ro.product.model 2>/dev/null)\n -RAM:$raminfo\n -閃存類型:$ROM_TYPE\n -閃存顆粒:$UFS_MODEL\n -Android版本:$(getprop ro.build.version.release 2>/dev/null) SDK:$(getprop ro.build.version.sdk 2>/dev/null)\n -終端:$Open_apps\n -By@YAWAsau\n -Support: https://jq.qq.com/?_wv=1027&k=f5clPNC3"
|
||||||
update_script() {
|
update_script() {
|
||||||
[[ $zipFile = "" ]] && zipFile="$(find "$MODDIR" -maxdepth 1 -name "*.zip" -type f 2>/dev/null)"
|
[[ $zipFile = "" ]] && zipFile="$(find "$MODDIR" -maxdepth 1 -name "*.zip" -type f 2>/dev/null)"
|
||||||
if [[ $zipFile != "" ]]; then
|
if [[ $zipFile != "" ]]; then
|
||||||
|
|||||||
BIN
tools/bin/curl
BIN
tools/bin/curl
Binary file not shown.
BIN
tools/bin/pv
BIN
tools/bin/pv
Binary file not shown.
@@ -25,10 +25,10 @@ path2="/data/user/$user"
|
|||||||
zipFile="$(ls -t /storage/emulated/0/Download/*.zip 2>/dev/null | head -1)"
|
zipFile="$(ls -t /storage/emulated/0/Download/*.zip 2>/dev/null | head -1)"
|
||||||
[[ $(unzip -l "$zipFile" 2>/dev/null | awk '{print $4}' | egrep -wo "^backup_settings.conf$") != "" ]] && update_script
|
[[ $(unzip -l "$zipFile" 2>/dev/null | awk '{print $4}' | egrep -wo "^backup_settings.conf$") != "" ]] && update_script
|
||||||
if [[ $(getprop ro.build.version.sdk) -lt 30 ]]; then
|
if [[ $(getprop ro.build.version.sdk) -lt 30 ]]; then
|
||||||
alias INSTALL="pm install --user $user -rt"
|
alias INSTALL="pm install --user $user -r -t"
|
||||||
alias create="pm install-create --user $user -t"
|
alias create="pm install-create --user $user -t"
|
||||||
else
|
else
|
||||||
alias INSTALL="pm install -i com.android.vending --user $user -rt"
|
alias INSTALL="pm install -i com.android.vending --user $user -r -t"
|
||||||
alias create="pm install-create -i com.android.vending --user $user -t"
|
alias create="pm install-create -i com.android.vending --user $user -t"
|
||||||
fi
|
fi
|
||||||
case $operate in
|
case $operate in
|
||||||
@@ -248,23 +248,6 @@ partition_info() {
|
|||||||
lxj="$(echo "$Occupation_status" | awk '{print $2}' | sed 's/%//g')"
|
lxj="$(echo "$Occupation_status" | awk '{print $2}' | sed 's/%//g')"
|
||||||
[[ $lxj -ge 97 ]] && echoRgb "$hx空間不足,達到$lxj%" "0" && exit 2
|
[[ $lxj -ge 97 ]] && echoRgb "$hx空間不足,達到$lxj%" "0" && exit 2
|
||||||
}
|
}
|
||||||
restore_permissions() {
|
|
||||||
if [[ -f $Backup_folder/permission ]]; then
|
|
||||||
echoRgb "恢復權限"
|
|
||||||
while read ; do
|
|
||||||
REPLY=($REPLY $REPLY)
|
|
||||||
permission_name="$(echo "${REPLY[2]}")"
|
|
||||||
permission_status="$(echo "${REPLY[1]}")"
|
|
||||||
if [[ $(echo "$permission_status") = true ]]; then
|
|
||||||
pm grant --user "$user" "$name2" "$permission_name" 2>/dev/null
|
|
||||||
elif [[ $(echo "$permission_status") = false ]]; then
|
|
||||||
pm revoke --user "$user" "$name2" "$permission_name" 2>/dev/null
|
|
||||||
fi
|
|
||||||
done < "$Backup_folder/permission"
|
|
||||||
else
|
|
||||||
echoRgb "遺失\"${Backup_folder##*/}/permission\" 無法恢復權限"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
Backup_apk() {
|
Backup_apk() {
|
||||||
#檢測apk狀態進行備份
|
#檢測apk狀態進行備份
|
||||||
stopscript
|
stopscript
|
||||||
@@ -278,7 +261,6 @@ Backup_apk() {
|
|||||||
let osj++
|
let osj++
|
||||||
result=0
|
result=0
|
||||||
echoRgb "Apk版本無更新 跳過備份" "2"
|
echoRgb "Apk版本無更新 跳過備份" "2"
|
||||||
Backup_permissions
|
|
||||||
else
|
else
|
||||||
case $name2 in
|
case $name2 in
|
||||||
com.google.android.youtube)
|
com.google.android.youtube)
|
||||||
@@ -318,7 +300,6 @@ Backup_apk() {
|
|||||||
)
|
)
|
||||||
echo_log "備份$apk_number個Apk"
|
echo_log "備份$apk_number個Apk"
|
||||||
if [[ $result = 0 ]]; then
|
if [[ $result = 0 ]]; then
|
||||||
Backup_permissions
|
|
||||||
if [[ $apk_version = "" ]]; then
|
if [[ $apk_version = "" ]]; then
|
||||||
echo "apk_version=\"$apk_version2\"" >>"$app_details"
|
echo "apk_version=\"$apk_version2\"" >>"$app_details"
|
||||||
else
|
else
|
||||||
@@ -778,30 +759,6 @@ backup)
|
|||||||
[[ $filesha256 != $filesha256_1 ]] && cp -r "$bin_path/tools.sh" "$Backup/tools/bin/tools.sh"
|
[[ $filesha256 != $filesha256_1 ]] && cp -r "$bin_path/tools.sh" "$Backup/tools/bin/tools.sh"
|
||||||
filesize="$(du -ks "$Backup" | awk '{print $1}')"
|
filesize="$(du -ks "$Backup" | awk '{print $1}')"
|
||||||
Quantity=0
|
Quantity=0
|
||||||
if [[ -f /data/misc_de/$user/apexdata/com.android.permission/runtime-permissions.xml ]]; then
|
|
||||||
permission="/data/misc_de/$user/apexdata/com.android.permission/runtime-permissions.xml"
|
|
||||||
else
|
|
||||||
[[ -f /data/system/users/$user/runtime-permissions.xml ]] && permission="/data/system/users/$user/runtime-permissions.xml"
|
|
||||||
fi
|
|
||||||
if [[ $permission != "" ]]; then
|
|
||||||
Backup_permissions() {
|
|
||||||
rm -rf "$Backup_folder/permission"
|
|
||||||
sed -n "/name=\"$name2\"/,/\<\//p" "$permission" | egrep -w 'granted=\"true\"|granted=\"false\"' | while read ; do
|
|
||||||
permission_name="$(echo "$REPLY" | grep -o 'android.permission.*[A-Z]')"
|
|
||||||
permission_status="$(echo "$REPLY" | egrep -o 'true|false')"
|
|
||||||
if [[ $(echo "$permission_name") != "" ]]; then
|
|
||||||
if [[ $(echo "$permission_status") = true ]]; then
|
|
||||||
echo "$permission_name true">>"$Backup_folder/permission"
|
|
||||||
elif [[ $(echo "$permission_status") = false ]]; then
|
|
||||||
echo "$permission_name false">>"$Backup_folder/permission"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo_log "權限備份"
|
|
||||||
}
|
|
||||||
else
|
|
||||||
Backup_permissions() { }
|
|
||||||
fi
|
|
||||||
#開始循環$txt內的資料進行備份
|
#開始循環$txt內的資料進行備份
|
||||||
#記錄開始時間
|
#記錄開始時間
|
||||||
starttime1="$(date -u "+%s")"
|
starttime1="$(date -u "+%s")"
|
||||||
@@ -999,7 +956,7 @@ Restore)
|
|||||||
echoRgb "恢複第$i/$r個應用 剩下$((r - i))個" "3"
|
echoRgb "恢複第$i/$r個應用 剩下$((r - i))個" "3"
|
||||||
name1="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')"
|
name1="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')"
|
||||||
name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')"
|
name2="$(cat "$txt" | grep -v "#" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')"
|
||||||
unset No_backupdata
|
unset No_backupdata apk_version
|
||||||
if [[ $name1 = *! || $name1 = *! ]]; then
|
if [[ $name1 = *! || $name1 = *! ]]; then
|
||||||
name1="$(echo "$name1" | sed 's/!//g ; s/!//g')"
|
name1="$(echo "$name1" | sed 's/!//g ; s/!//g')"
|
||||||
echoRgb "跳過恢復$name1 所有數據" "0"
|
echoRgb "跳過恢復$name1 所有數據" "0"
|
||||||
@@ -1007,6 +964,7 @@ Restore)
|
|||||||
fi
|
fi
|
||||||
Backup_folder="$MODDIR/$name1"
|
Backup_folder="$MODDIR/$name1"
|
||||||
Backup_folder2="$MODDIR/Media"
|
Backup_folder2="$MODDIR/Media"
|
||||||
|
[[ -f "$Backup_folder/app_details" ]] && . "$Backup_folder/app_details" &>/dev/null
|
||||||
[[ $name2 = "" ]] && echoRgb "應用包名獲取失敗" "0" && exit 1
|
[[ $name2 = "" ]] && echoRgb "應用包名獲取失敗" "0" && exit 1
|
||||||
if [[ -d $Backup_folder ]]; then
|
if [[ -d $Backup_folder ]]; then
|
||||||
echoRgb "恢複$name1 ($name2)" "2"
|
echoRgb "恢複$name1 ($name2)" "2"
|
||||||
@@ -1014,22 +972,12 @@ Restore)
|
|||||||
if [[ $(pm path --user "$user" "$name2" 2>/dev/null) = "" ]]; then
|
if [[ $(pm path --user "$user" "$name2" 2>/dev/null) = "" ]]; then
|
||||||
installapk
|
installapk
|
||||||
else
|
else
|
||||||
unset apk_version
|
|
||||||
[[ -f "$Backup_folder/app_details" ]] && . "$Backup_folder/app_details"
|
|
||||||
apk_version="$(echo "$apk_version" | head -n 1)"
|
|
||||||
if [[ $apk_version -gt $(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1) ]]; then
|
if [[ $apk_version -gt $(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1) ]]; then
|
||||||
installapk
|
installapk
|
||||||
echoRgb "版本提升$(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1)>$apk_version" "1"
|
echoRgb "版本提升$(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1)>$apk_version" "1"
|
||||||
else
|
|
||||||
if [[ $apk_version = $(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1) ]]; then
|
|
||||||
echoRgb "本地版本與備份版本一致略過安裝" "2"
|
|
||||||
else
|
|
||||||
echoRgb "本地版本大於備份版本略過安裝" "2"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $(pm path --user "$user" "$name2" 2>/dev/null) != "" ]]; then
|
if [[ $(pm path --user "$user" "$name2" 2>/dev/null) != "" ]]; then
|
||||||
restore_permissions
|
|
||||||
if [[ $No_backupdata = "" ]]; then
|
if [[ $No_backupdata = "" ]]; then
|
||||||
#停止應用
|
#停止應用
|
||||||
[[ $name2 != $Open_apps2 ]] && am force-stop "$name2"
|
[[ $name2 != $Open_apps2 ]] && am force-stop "$name2"
|
||||||
@@ -1100,7 +1048,7 @@ Restore2)
|
|||||||
name2="$(echo "${Script_path##*/}" | sed 's/.sh//g')"
|
name2="$(echo "${Script_path##*/}" | sed 's/.sh//g')"
|
||||||
fi
|
fi
|
||||||
[[ $name2 = "" ]] && echoRgb "包名獲取失敗" "0" && exit 2
|
[[ $name2 = "" ]] && echoRgb "包名獲取失敗" "0" && exit 2
|
||||||
echoRgb "恢複$name1 ($name2)" "3"
|
echoRgb "恢複$name1 ($name2)" "2"
|
||||||
starttime2="$(date -u "+%s")"
|
starttime2="$(date -u "+%s")"
|
||||||
if [[ $(pm path --user "$user" "$name2" 2>/dev/null) = "" ]]; then
|
if [[ $(pm path --user "$user" "$name2" 2>/dev/null) = "" ]]; then
|
||||||
installapk
|
installapk
|
||||||
@@ -1109,16 +1057,9 @@ Restore2)
|
|||||||
if [[ $apk_version -gt $(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1) ]]; then
|
if [[ $apk_version -gt $(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1) ]]; then
|
||||||
installapk
|
installapk
|
||||||
echoRgb "版本提升$(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1)>$apk_version" "1"
|
echoRgb "版本提升$(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1)>$apk_version" "1"
|
||||||
else
|
|
||||||
if [[ $apk_version = $(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1) ]]; then
|
|
||||||
echoRgb "本地版本與備份版本一致略過安裝" "2"
|
|
||||||
else
|
|
||||||
echoRgb "本地版本大於備份版本略過安裝" "2"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $(pm path --user "$user" "$name2" 2>/dev/null) != "" ]]; then
|
if [[ $(pm path --user "$user" "$name2" 2>/dev/null) != "" ]]; then
|
||||||
restore_permissions
|
|
||||||
#停止應用
|
#停止應用
|
||||||
[[ $name2 != $Open_apps2 ]] && am force-stop "$name2"
|
[[ $name2 != $Open_apps2 ]] && am force-stop "$name2"
|
||||||
find "$Backup_folder" -maxdepth 1 ! -name "apk.*" -name "*.tar*" -type f 2>/dev/null | sort | while read; do
|
find "$Backup_folder" -maxdepth 1 ! -name "apk.*" -name "*.tar*" -type f 2>/dev/null | sort | while read; do
|
||||||
|
|||||||
Reference in New Issue
Block a user