bugfix
This commit is contained in:
1568
tools/bin/Device_List
Normal file
1568
tools/bin/Device_List
Normal file
File diff suppressed because it is too large
Load Diff
@@ -79,7 +79,8 @@ busybox2="$bin_path/busybox"
|
|||||||
#排除自身
|
#排除自身
|
||||||
exclude="
|
exclude="
|
||||||
update
|
update
|
||||||
busybox_path"
|
busybox_path
|
||||||
|
Device_List"
|
||||||
if [[ ! -d $filepath ]]; then
|
if [[ ! -d $filepath ]]; then
|
||||||
mkdir -p "$filepath"
|
mkdir -p "$filepath"
|
||||||
[[ $? = 0 ]] && echoRgb "設置busybox環境中"
|
[[ $? = 0 ]] && echoRgb "設置busybox環境中"
|
||||||
@@ -258,8 +259,9 @@ else
|
|||||||
fi
|
fi
|
||||||
Open_apps="$(appinfo -d "(" -ed ")" -o anwb,pn -ta c 2>/dev/null)"
|
Open_apps="$(appinfo -d "(" -ed ")" -o anwb,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')"
|
||||||
|
Device_name="$(cat "$bin_path/Device_List" | egrep -w "$(getprop ro.product.model 2>/dev/null)" | awk -F'"' '{print $4}')"
|
||||||
echoRgb "---------------------SpeedBackup---------------------"
|
echoRgb "---------------------SpeedBackup---------------------"
|
||||||
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版本:$(magisk -c 2>/dev/null)\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 -閃存類型:$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版本:$(magisk -c 2>/dev/null)\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)($Device_name)\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"
|
||||||
Rename_script () {
|
Rename_script () {
|
||||||
Replace_file_name () {
|
Replace_file_name () {
|
||||||
find "$1" -maxdepth 1 -name "*.sh" -type f | while read ; do
|
find "$1" -maxdepth 1 -name "*.sh" -type f | while read ; do
|
||||||
@@ -415,7 +417,7 @@ else
|
|||||||
alias create="pm install-create -i com.android.vending --user $user -t 2>/dev/null"
|
alias create="pm install-create -i com.android.vending --user $user -t 2>/dev/null"
|
||||||
fi
|
fi
|
||||||
case $operate in
|
case $operate in
|
||||||
Getlist|Restore2|Restore3|dumpname|check_file|backup_media|convert) ;;
|
Getlist|Restore2|Restore3|dumpname|check_file|backup_media|convert|Device_List) ;;
|
||||||
*)
|
*)
|
||||||
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
||||||
if [[ $Lo = false ]]; then
|
if [[ $Lo = false ]]; then
|
||||||
@@ -425,7 +427,7 @@ Getlist|Restore2|Restore3|dumpname|check_file|backup_media|convert) ;;
|
|||||||
get_version "提示" "靜默備份" && toast_info="$branch"
|
get_version "提示" "靜默備份" && toast_info="$branch"
|
||||||
fi
|
fi
|
||||||
if [[ $toast_info = true ]]; then
|
if [[ $toast_info = true ]]; then
|
||||||
pm enable "ice.message" &>/dev/null
|
pm enable --user "$user" "ice.message" &>/dev/null
|
||||||
if [[ $(pm path --user "$user" ice.message 2>/dev/null) = "" ]]; then
|
if [[ $(pm path --user "$user" ice.message 2>/dev/null) = "" ]]; then
|
||||||
echoRgb "未安裝toast 開始安裝" "0"
|
echoRgb "未安裝toast 開始安裝" "0"
|
||||||
if [[ -d $tools_path/apk ]] ; then
|
if [[ -d $tools_path/apk ]] ; then
|
||||||
@@ -436,7 +438,7 @@ Getlist|Restore2|Restore3|dumpname|check_file|backup_media|convert) ;;
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
pm disable "ice.message" &>/dev/null
|
pm disable --user "$user" "ice.message" &>/dev/null
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -630,11 +632,11 @@ kill_app() {
|
|||||||
[[ $Pause_Freeze = "" ]] && Pause_Freeze="0"
|
[[ $Pause_Freeze = "" ]] && Pause_Freeze="0"
|
||||||
if [[ $name2 != $Open_apps2 ]]; then
|
if [[ $name2 != $Open_apps2 ]]; then
|
||||||
if [[ $Pause_Freeze = 0 ]]; then
|
if [[ $Pause_Freeze = 0 ]]; then
|
||||||
while pgrep -f "$name2" &>/dev/null; do
|
until [[ $(dumpsys activity processes | grep "packageList" | cut -d '{' -f2 | cut -d '}' -f1 | egrep -w "^$name2$" | sed -n '1p') != $name2 ]]; do
|
||||||
killall -9 "$name2" &>/dev/null
|
killall -9 "$name2" &>/dev/null
|
||||||
am force-stop --user "$user" "$name2" &>/dev/null
|
am force-stop --user "$user" "$name2" &>/dev/null
|
||||||
am kill "$neme2" &>/dev/null
|
am kill "$name2" &>/dev/null
|
||||||
echoRgb "刺殺$name1"
|
echoRgb "殺死$name1進程"
|
||||||
done
|
done
|
||||||
pm suspend --user "$user" "$name2" 2>/dev/null | sed "s/Package $name2/ -應用:$name1/g ; s/new suspended state: true/暫停狀態:凍結/g"
|
pm suspend --user "$user" "$name2" 2>/dev/null | sed "s/Package $name2/ -應用:$name1/g ; s/new suspended state: true/暫停狀態:凍結/g"
|
||||||
fi
|
fi
|
||||||
@@ -793,9 +795,9 @@ Backup_data() {
|
|||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
case $Compression_method in
|
case $Compression_method in
|
||||||
tar | Tar | TAR) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude=.* --warning=no-file-changed -cpf "$Backup_folder/$1.tar" -C "${data_path%/*}" "${data_path##*/}" ;;
|
tar | Tar | TAR) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}"/.* --warning=no-file-changed -cpf "$Backup_folder/$1.tar" -C "${data_path%/*}" "${data_path##*/}" ;;
|
||||||
zstd | Zstd | ZSTD) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude=.* --warning=no-file-changed -cpf - -C "${data_path%/*}" "${data_path##*/}" | zstd>"$Backup_folder/$1.tar.zst" ;;
|
zstd | Zstd | ZSTD) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}"/.* --warning=no-file-changed -cpf - -C "${data_path%/*}" "${data_path##*/}" | zstd>"$Backup_folder/$1.tar.zst" ;;
|
||||||
lz4 | Lz4 | LZ4) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude=.* --warning=no-file-changed -cpf - -C "${data_path%/*}" "${data_path##*/}" | lz4>"$Backup_folder/$1.tar.lz4" 2>/dev/null ;;
|
lz4 | Lz4 | LZ4) tar --checkpoint-action="ttyout=%T\r" --exclude="Backup_"* --exclude="${data_path##*/}/cache" --exclude="${data_path##*/}"/.* --warning=no-file-changed -cpf - -C "${data_path%/*}" "${data_path##*/}" | lz4>"$Backup_folder/$1.tar.lz4" 2>/dev/null ;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -1416,66 +1418,85 @@ convert)
|
|||||||
check_file)
|
check_file)
|
||||||
Check_archive "$MODDIR"
|
Check_archive "$MODDIR"
|
||||||
;;
|
;;
|
||||||
Restore)
|
Restore|Restore2)
|
||||||
kill_Serve
|
kill_Serve
|
||||||
self_test
|
self_test
|
||||||
echoRgb "假設反悔了要終止腳本請儘速離開此腳本點擊$MODDIR_NAME/終止腳本.sh\n -否則腳本將繼續執行直到結束" "0"
|
|
||||||
echoRgb "如果大量提示找不到資料夾請執行$MODDIR_NAME/轉換資料夾名稱.sh"
|
|
||||||
disable_verify
|
disable_verify
|
||||||
[[ ! -d $path2 ]] && echoRgb "設備不存在user目錄" "0" && exit 1
|
[[ ! -d $path2 ]] && echoRgb "設備不存在user目錄" "0" && exit 1
|
||||||
i=1
|
if [[ $operate = Restore ]]; then
|
||||||
txt="$MODDIR/appList.txt"
|
echoRgb "假設反悔了要終止腳本請儘速離開此腳本點擊$MODDIR_NAME/終止腳本.sh\n -否則腳本將繼續執行直到結束" "0"
|
||||||
[[ ! -f $txt ]] && echoRgb "請執行\"重新生成應用列表.sh\"獲取應用列表再來恢復" "0" && exit 2
|
echoRgb "如果大量提示找不到資料夾請執行$MODDIR_NAME/轉換資料夾名稱.sh"
|
||||||
sort -u "$txt" -o "$txt" 2>/dev/null
|
txt="$MODDIR/appList.txt"
|
||||||
r="$(grep -v "#" "$txt" | sed -e '/^$/d' | sed -n '$=')"
|
[[ ! -f $txt ]] && echoRgb "請執行\"重新生成應用列表.sh\"獲取應用列表再來恢復" "0" && exit 2
|
||||||
[[ $r = "" ]] && echoRgb "appList.txt包名為空或是被注釋了\n -請執行\"重新生成應用列表.sh\"獲取應用列表再來恢復" "0" && exit 1
|
sort -u "$txt" -o "$txt" 2>/dev/null
|
||||||
Backup_folder2="$MODDIR/Media"
|
i=1
|
||||||
Backup_folder3="$MODDIR/modules"
|
r="$(grep -v "#" "$txt" | sed -e '/^$/d' | sed -n '$=')"
|
||||||
#效驗選填是否正確
|
[[ $r = "" ]] && echoRgb "appList.txt包名為空或是被注釋了\n -請執行\"重新生成應用列表.sh\"獲取應用列表再來恢復" "0" && exit 1
|
||||||
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
Backup_folder2="$MODDIR/Media"
|
||||||
echoRgb "選擇應用恢復模式\n -音量上僅恢復未安裝,下全恢復"
|
Backup_folder3="$MODDIR/modules"
|
||||||
get_version "恢復未安裝" "全恢復" && recovery_mode="$branch"
|
#效驗選填是否正確
|
||||||
Get_user="$(echo "$MODDIR" | rev | cut -d '/' -f1 | cut -d '_' -f1 | rev | egrep -o '[0-9]+')"
|
isBoolean "$Lo" "Lo" && Lo="$nsx"
|
||||||
if [[ $Get_user != $user ]]; then
|
echoRgb "選擇應用恢復模式\n -音量上僅恢復未安裝,下全恢復"
|
||||||
echoRgb "檢測當前用戶$user與恢復資料夾用戶:$Get_user不同\n -音量上繼續恢復,下不恢復並離開腳本"
|
get_version "恢復未安裝" "全恢復" && recovery_mode="$branch"
|
||||||
get_version "恢復安裝" "不恢復安裝" && recovery_mode2="$branch"
|
Get_user="$(echo "$MODDIR" | rev | cut -d '/' -f1 | cut -d '_' -f1 | rev | egrep -o '[0-9]+')"
|
||||||
fi
|
if [[ $Get_user != $user ]]; then
|
||||||
if [[ -d $Backup_folder2 ]]; then
|
echoRgb "檢測當前用戶$user與恢復資料夾用戶:$Get_user不同\n -音量上繼續恢復,下不恢復並離開腳本"
|
||||||
Print "是否恢復多媒體數據 音量上恢復,音量下不恢復"
|
get_version "恢復安裝" "不恢復安裝" && recovery_mode2="$branch"
|
||||||
echoRgb "是否恢復多媒體數據\n -音量上恢復,音量下不恢復" "2"
|
fi
|
||||||
get_version "恢復媒體數據" "跳過恢復媒體數據"
|
if [[ -d $Backup_folder2 ]]; then
|
||||||
media_recovery="$branch"
|
Print "是否恢復多媒體數據 音量上恢復,音量下不恢復"
|
||||||
A=1
|
echoRgb "是否恢復多媒體數據\n -音量上恢復,音量下不恢復" "2"
|
||||||
B="$(find "$Backup_folder2" -maxdepth 1 -name "*.tar*" -type f 2>/dev/null | wc -l)"
|
get_version "恢復媒體數據" "跳過恢復媒體數據"
|
||||||
fi
|
media_recovery="$branch"
|
||||||
if [[ -d $Backup_folder3 && $(find "$Backup_folder3" -maxdepth 1 -name "*.zip*" -type f 2>/dev/null | wc -l) != 0 ]]; then
|
A=1
|
||||||
Print "是否刷入Magisk模塊 音量上刷入,音量下不刷入"
|
B="$(find "$Backup_folder2" -maxdepth 1 -name "*.tar*" -type f 2>/dev/null | wc -l)"
|
||||||
echoRgb "是否刷入Magisk模塊\n -音量上刷入,音量下不刷入" "2"
|
fi
|
||||||
get_version "刷入模塊" "跳過刷入模塊"
|
if [[ -d $Backup_folder3 && $(find "$Backup_folder3" -maxdepth 1 -name "*.zip*" -type f 2>/dev/null | wc -l) != 0 ]]; then
|
||||||
modules_recovery="$branch"
|
Print "是否刷入Magisk模塊 音量上刷入,音量下不刷入"
|
||||||
fi
|
echoRgb "是否刷入Magisk模塊\n -音量上刷入,音量下不刷入" "2"
|
||||||
[[ $recovery_mode2 = false ]] && exit 2
|
get_version "刷入模塊" "跳過刷入模塊"
|
||||||
if [[ $recovery_mode = true ]]; then
|
modules_recovery="$branch"
|
||||||
echoRgb "獲取未安裝應用中"
|
fi
|
||||||
TXT="$MODDIR/TEMP.txt"
|
[[ $recovery_mode2 = false ]] && exit 2
|
||||||
while [[ $i -le $r ]]; do
|
if [[ $recovery_mode = true ]]; then
|
||||||
name1="$(grep -v "#" "$txt" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')"
|
echoRgb "獲取未安裝應用中"
|
||||||
name2="$(grep -v "#" "$txt" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')"
|
TXT="$MODDIR/TEMP.txt"
|
||||||
if [[ $(pm list packages --user "$user" "$name2" 2>/dev/null | cut -f2 -d ':') = "" ]]; then
|
while [[ $i -le $r ]]; do
|
||||||
echo "$name1 $name2">>"$TXT"
|
name1="$(grep -v "#" "$txt" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')"
|
||||||
fi
|
name2="$(grep -v "#" "$txt" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')"
|
||||||
let i++
|
if [[ $(pm list packages --user "$user" "$name2" 2>/dev/null | cut -f2 -d ':') = "" ]]; then
|
||||||
done
|
echo "$name1 $name2">>"$TXT"
|
||||||
i=1
|
fi
|
||||||
sort -u "$TXT" -o "$TXT" 2>/dev/null
|
let i++
|
||||||
r="$(grep -v "#" "$TXT" 2>/dev/null | sed -e '/^$/d' | sed -n '$=')"
|
done
|
||||||
if [[ $r != "" ]]; then
|
i=1
|
||||||
echoRgb "獲取完成 預計安裝$r個應用"
|
sort -u "$TXT" -o "$TXT" 2>/dev/null
|
||||||
txt="$TXT"
|
r="$(grep -v "#" "$TXT" 2>/dev/null | sed -e '/^$/d' | sed -n '$=')"
|
||||||
else
|
if [[ $r != "" ]]; then
|
||||||
echoRgb "獲取完成 但備份內應用都已安裝....正在退出腳本" "0" && exit 0
|
echoRgb "獲取完成 預計安裝$r個應用"
|
||||||
fi
|
txt="$TXT"
|
||||||
fi
|
else
|
||||||
|
echoRgb "獲取完成 但備份內應用都已安裝....正在退出腳本" "0" && exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
DX="批量恢復"
|
||||||
|
else
|
||||||
|
i=1
|
||||||
|
r=1
|
||||||
|
Backup_folder="$MODDIR"
|
||||||
|
app_details="$Backup_folder/app_details"
|
||||||
|
if [[ ! -f $app_details ]]; then
|
||||||
|
echoRgb "$app_details遺失,無法獲取包名" "0" && exit 1
|
||||||
|
else
|
||||||
|
. "$app_details" &>/dev/null
|
||||||
|
fi
|
||||||
|
name1="$ChineseName"
|
||||||
|
[[ $name1 = "" ]] && name1="${Backup_folder##*/}"
|
||||||
|
[[ $name1 = "" ]] && echoRgb "應用名獲取失敗" "0" && exit 2
|
||||||
|
name2="$PackageName"
|
||||||
|
[[ $name2 = "" ]] && echoRgb "包名獲取失敗" "0" && exit 2
|
||||||
|
DX="單獨恢復"
|
||||||
|
fi
|
||||||
#開始循環$txt內的資料進行恢復
|
#開始循環$txt內的資料進行恢復
|
||||||
#記錄開始時間
|
#記錄開始時間
|
||||||
starttime1="$(date -u "+%s")"
|
starttime1="$(date -u "+%s")"
|
||||||
@@ -1485,18 +1506,20 @@ Restore)
|
|||||||
{
|
{
|
||||||
while [[ $i -le $r ]]; do
|
while [[ $i -le $r ]]; do
|
||||||
[[ $en -ge 229 ]] && en=118
|
[[ $en -ge 229 ]] && en=118
|
||||||
echoRgb "恢復第$i/$r個應用 剩下$((r - i))個" "3"
|
if [[ $operate = Restore ]]; then
|
||||||
name1="$(grep -v "#" "$txt" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')"
|
echoRgb "恢復第$i/$r個應用 剩下$((r - i))個" "3"
|
||||||
name2="$(grep -v "#" "$txt" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')"
|
name1="$(grep -v "#" "$txt" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $1}')"
|
||||||
unset No_backupdata apk_version
|
name2="$(grep -v "#" "$txt" | sed -e '/^$/d' | sed -n "${i}p" | awk '{print $2}')"
|
||||||
if [[ $name1 = *! || $name1 = *! ]]; then
|
unset No_backupdata apk_version
|
||||||
name1="$(echo "$name1" | sed 's/!//g ; s/!//g')"
|
if [[ $name1 = *! || $name1 = *! ]]; then
|
||||||
echoRgb "跳過恢復$name1 所有數據" "0"
|
name1="$(echo "$name1" | sed 's/!//g ; s/!//g')"
|
||||||
No_backupdata=1
|
echoRgb "跳過恢復$name1 所有數據" "0"
|
||||||
|
No_backupdata=1
|
||||||
|
fi
|
||||||
|
Backup_folder="$MODDIR/$name1"
|
||||||
|
[[ -f "$Backup_folder/app_details" ]] && app_details="$Backup_folder/app_details" . "$Backup_folder/app_details" &>/dev/null
|
||||||
|
[[ $name2 = "" ]] && echoRgb "應用包名獲取失敗" "0" && exit 1
|
||||||
fi
|
fi
|
||||||
Backup_folder="$MODDIR/$name1"
|
|
||||||
[[ -f "$Backup_folder/app_details" ]] && app_details="$Backup_folder/app_details" . "$Backup_folder/app_details" &>/dev/null
|
|
||||||
[[ $name2 = "" ]] && echoRgb "應用包名獲取失敗" "0" && exit 1
|
|
||||||
if [[ -d $Backup_folder ]]; then
|
if [[ -d $Backup_folder ]]; then
|
||||||
echoRgb "恢復$name1 ($name2)" "2"
|
echoRgb "恢復$name1 ($name2)" "2"
|
||||||
starttime2="$(date -u "+%s")"
|
starttime2="$(date -u "+%s")"
|
||||||
@@ -1533,7 +1556,7 @@ Restore)
|
|||||||
else
|
else
|
||||||
echoRgb "$Backup_folder資料夾遺失,無法恢復" "0"
|
echoRgb "$Backup_folder資料夾遺失,無法恢復" "0"
|
||||||
fi
|
fi
|
||||||
if [[ $i = $r ]]; then
|
if [[ $i = $r && $operate != Restore2 ]]; then
|
||||||
endtime 1 "應用恢復" "2"
|
endtime 1 "應用恢復" "2"
|
||||||
if [[ $media_recovery = true ]]; then
|
if [[ $media_recovery = true ]]; then
|
||||||
starttime1="$(date -u "+%s")"
|
starttime1="$(date -u "+%s")"
|
||||||
@@ -1571,66 +1594,12 @@ Restore)
|
|||||||
restore_freeze
|
restore_freeze
|
||||||
rm -rf "$TMPDIR/scriptTMP" "$TXT"
|
rm -rf "$TMPDIR/scriptTMP" "$TXT"
|
||||||
starttime1="$TIME"
|
starttime1="$TIME"
|
||||||
echoRgb "批量恢復完成" && endtime 1 "批量恢復開始到結束" && echoRgb "如發現應用閃退請重新開機"
|
echoRgb "$DX完成" && endtime 1 "$DX開始到結束" && echoRgb "如發現應用閃退請重新開機"
|
||||||
longToast "批量恢復完成"
|
longToast "$DX完成"
|
||||||
Print "批量恢復完成 執行過程請查看$Status_log" && rm -rf "$TMPDIR"/*
|
Print "$DX完成 執行過程請查看$Status_log" && rm -rf "$TMPDIR"/*
|
||||||
} &
|
} &
|
||||||
wait && exit
|
wait && exit
|
||||||
;;
|
;;
|
||||||
Restore2)
|
|
||||||
kill_Serve
|
|
||||||
self_test
|
|
||||||
disable_verify
|
|
||||||
[[ ! -d $path2 ]] && echoRgb "設備不存在user目錄" "0" && exit 1
|
|
||||||
#記錄開始時間
|
|
||||||
starttime1="$(date -u "+%s")"
|
|
||||||
echo "$script">"$TMPDIR/scriptTMP"
|
|
||||||
Backup_folder="$MODDIR"
|
|
||||||
app_details="$Backup_folder/app_details"
|
|
||||||
if [[ ! -f $app_details ]]; then
|
|
||||||
echoRgb "$app_details遺失,無法獲取包名" "0" && exit 1
|
|
||||||
else
|
|
||||||
. "$app_details" &>/dev/null
|
|
||||||
fi
|
|
||||||
name1="$ChineseName"
|
|
||||||
[[ $name1 = "" ]] && name1="${Backup_folder##*/}"
|
|
||||||
[[ $name1 = "" ]] && echoRgb "應用名獲取失敗" "0" && exit 2
|
|
||||||
name2="$PackageName"
|
|
||||||
if [[ $name2 = "" ]]; then
|
|
||||||
Script_path="$(find "$MODDIR" -maxdepth 1 -name "*.sh*" -type f 2>/dev/null)"
|
|
||||||
name2="$(echo "${Script_path##*/}" | sed 's/.sh//g')"
|
|
||||||
fi
|
|
||||||
[[ $name2 = "" ]] && echoRgb "包名獲取失敗" "0" && exit 2
|
|
||||||
echoRgb "恢復$name1 ($name2)" "2"
|
|
||||||
starttime2="$(date -u "+%s")"
|
|
||||||
if [[ $(pm path --user "$user" "$name2" 2>/dev/null) = "" ]]; then
|
|
||||||
installapk
|
|
||||||
else
|
|
||||||
if [[ $apk_version -gt $(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1) ]]; then
|
|
||||||
installapk
|
|
||||||
[[ $? = 0 ]] && echoRgb "版本提升$(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1)>$apk_version" "1"
|
|
||||||
elif [[ $apk_version -lt $(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1) ]]; then
|
|
||||||
pm uninstall --user "$user" -k "$name2" &>/dev/null
|
|
||||||
if [[ $? = 0 ]]; then
|
|
||||||
installapk
|
|
||||||
echoRgb "版本降低$(pm list packages --show-versioncode --user "$user" "$name2" 2>/dev/null | cut -f3 -d ':' | head -n 1)>$apk_version" "1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [[ $(pm path --user "$user" "$name2" 2>/dev/null) != "" ]]; then
|
|
||||||
kill_app
|
|
||||||
find "$Backup_folder" -maxdepth 1 ! -name "apk.*" -name "*.tar*" -type f 2>/dev/null | sort | while read; do
|
|
||||||
Release_data "$REPLY"
|
|
||||||
done
|
|
||||||
Set_service
|
|
||||||
else
|
|
||||||
echoRgb "$name1沒有安裝無法恢復數據" "0"
|
|
||||||
fi
|
|
||||||
restore_freeze
|
|
||||||
endtime 1 "恢復開始到結束" && echoRgb "如發現應用閃退請重新開機" && rm -rf "$TMPDIR"/*
|
|
||||||
rm -rf "$TMPDIR/scriptTMP"
|
|
||||||
wait && exit
|
|
||||||
;;
|
|
||||||
Restore3)
|
Restore3)
|
||||||
kill_Serve
|
kill_Serve
|
||||||
self_test
|
self_test
|
||||||
@@ -1827,4 +1796,36 @@ backup_media)
|
|||||||
echoRgb "自定義路徑為空 無法備份" "0"
|
echoRgb "自定義路徑為空 無法備份" "0"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
Device_List)
|
||||||
|
URL="https://khwang9883.github.io/MobileModels/brands"
|
||||||
|
rm -rf "$bin_path/Device_List"
|
||||||
|
for i in $(echo "xiaomi\nsamsung\nasus\nBlack_Shark\ngoogle\nLenovo\nMEIZU\nMotorola\nNokia\nnothing\nnubia\nOnePlus\nSony"); do
|
||||||
|
echoRgb "獲取品牌$i"
|
||||||
|
case $i in
|
||||||
|
xiaomi) Brand_URL="$URL/xiaomi.html" ;;
|
||||||
|
samsung) Brand_URL="$URL/samsung_cn.html" ;;
|
||||||
|
asus) Brand_URL="$URL/asus.html" ;;
|
||||||
|
Black_Shark) Brand_URL="$URL/blackshark.html" ;;
|
||||||
|
google) Brand_URL="$URL/google.html" ;;
|
||||||
|
Lenovo) Brand_URL="$URL/lenovo.html" ;;
|
||||||
|
MEIZU) Brand_URL="$URL/meizu.html" ;;
|
||||||
|
Motorola) Brand_URL="$URL/motorola.html" ;;
|
||||||
|
Nokia) Brand_URL="$URL/nokia.html" ;;
|
||||||
|
nothing) Brand_URL="$URL/nothing.html" ;;
|
||||||
|
nubia) Brand_URL="$URL/nubia.html" ;;
|
||||||
|
OnePlus) Brand_URL="$URL/oneplus.html" ;;
|
||||||
|
Sony) Brand_URL="$URL/sony_cn.html" ;;
|
||||||
|
esac
|
||||||
|
down -s -L "$Brand_URL" | sed -n 's/.*<code class="language-plaintext highlighter-rouge">\([^<]*\)<\/code>: \(.*\)<\/p>.*/\1\n\2/p' | sed 's/\(.*\)/"\1"/' | sed 'N;s/\n/ /'>>"$bin_path/Device_List"
|
||||||
|
done
|
||||||
|
if [[ -e $bin_path/Device_List ]]; then
|
||||||
|
if [[ $(ls -l "$bin_path/Device_List" | awk '{print $5}') -gt 1 ]]; then
|
||||||
|
[[ $shell_language = zh-TW ]] && ts -f "$bin_path/Device_List" -o "$bin_path/Device_List"
|
||||||
|
echoRgb "已下載機型列表在$bin_path/Device_List"
|
||||||
|
else
|
||||||
|
echoRgb "下載機型失敗"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echoRgb "下載機型失敗"
|
||||||
|
f i;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
8
更新腳本機型列表.sh
Normal file
8
更新腳本機型列表.sh
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
if [ -f "${0%/*}/tools/bin/tools.sh" ]; then
|
||||||
|
MODDIR="${0%/*}"
|
||||||
|
operate="Device_List"
|
||||||
|
. "${0%/*}/tools/bin/tools.sh" | tee "$MODDIR/log.txt"
|
||||||
|
else
|
||||||
|
[[ $(echo "${0%/*}" | grep -o 'bin.mt.plus/temp') != "" ]] && echo "你媽沒告訴你腳本要解壓縮嗎?傻逼玩兒" && exit 2
|
||||||
|
echo "${0%/*}/tools/bin/tools.sh遺失"
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user