This commit is contained in:
Yawasau
2022-06-06 19:21:15 +08:00
parent 810bff932f
commit 56ccd5dd7a

View File

@@ -20,6 +20,10 @@ fi
. "$bin_path/bin.sh"
path="/data/media/$user/Android"
path2="/data/user/$user"
zipFile="$(ls -t /storage/emulated/0/Download/*.zip 2>/dev/null | head -1)"
[[ $(unzip -l "$zipFile" 2>/dev/null | awk '{print $4}' | grep -oE "^backup_settings.conf$") != "" ]] && update_script
case $operate in
backup|Restore|Restore2|Getlist)
user_id="$(ls -1 "/data/user" 2>/dev/null)"
if [[ $user_id != "" ]]; then
echo "$user_id" | while read ; do
@@ -29,9 +33,8 @@ fi
[[ $user = "" ]] && echoRgb "backup_settings.conf配置項user=為空\n -請將上方提示的用戶id按照需求填入,一次只能填寫一個" "0" && exit 2
[[ ! -d $path2 ]] && echoRgb "$user分區不存在請將上方提示的用戶id按照需求填入\n -backup_settings.conf配置項user=,一次只能填寫一個" "0" && exit 2
echoRgb "當前操作為用戶$user"
zipFile="$(ls -t /storage/emulated/0/Download/*.zip 2>/dev/null | head -1)"
[[ $(unzip -l "$zipFile" 2>/dev/null | awk '{print $4}' | grep -oE "^backup_settings.conf$") != "" ]] && update_script
isBoolean "$Lo" "LO" && Lo="$nsx"
if [[ $operate != Getlist && Restore2 ]]; then
isBoolean "$Lo" "Lo" && Lo="$nsx"
if [[ $Lo = false ]]; then
isBoolean "$toast_info" "toast_info" && toast_info="$nsx"
else
@@ -49,6 +52,10 @@ if [[ $toast_info = true ]]; then
else
pm disable "ice.message" &>/dev/null
fi
fi
;;
esac
Lo="$(echo "$Lo" | sed 's/true/1/g ; s/false/0/g')"
cdn=2
#settings get system system_locales
LANG="$(getprop "persist.sys.locale")"
@@ -80,7 +87,7 @@ else
[[ $json != "" ]] && echoRgb "使用down"
fi
#效驗選填是否正確
isBoolean "$Lo" "LO" && Lo="$nsx"
isBoolean "$Lo" "Lo" && Lo="$nsx"
if [[ $Lo = false ]]; then
isBoolean "$update" "update" && update="$nsx"
else
@@ -158,6 +165,7 @@ if [[ $json != "" ]]; then
else
echoRgb "更新獲取失敗" "0"
fi
backup_path() {
if [[ $Output_path != "" ]]; then
[[ ${Output_path: -1} = / ]] && Output_path="${Output_path%?}"
@@ -212,8 +220,8 @@ partition_info() {
lxj="$(echo "$Occupation_status" | awk '{print $2}' | sed 's/%//g')"
[[ $lxj -ge 97 ]] && echoRgb "$hx空間不足,達到$lxj%" "0" && exit 2
}
#檢測apk狀態進行備份
Backup_apk() {
#檢測apk狀態進行備份
stopscript
#創建APP備份文件夾
[[ ! -d $Backup_folder ]] && mkdir -p "$Backup_folder"
@@ -474,7 +482,7 @@ installapk() {
;;
*)
echoRgb "恢復split apk" "2"
b="$(pm install-create -i com.android.vending --user "$user" 2>/dev/null | grep -E -o '[0-9]+')"
b="$(pm install-create -i com.android.vending --user "$user" 2>/dev/null | grep -Eo '[0-9]+')"
if [[ -f $TMPDIR/nmsl.apk ]]; then
pm install -i com.android.vending --user "$user" -r -t"$TMPDIR/nmsl.apk" &>/dev/null
echo_log "nmsl.apk安裝"
@@ -589,7 +597,7 @@ backup)
*) echoRgb "$Compression_method為不支持的壓縮算法" "0" && exit 2 ;;
esac
#效驗選填是否正確
isBoolean "$Lo" "LO" && Lo="$nsx"
isBoolean "$Lo" "Lo" && Lo="$nsx"
if [[ $Lo = false ]]; then
isBoolean "$delete_folder" "delete_folder" && delete_folder="$nsx"
isBoolean "$Splist" "Splist" && Splist="$nsx"
@@ -631,10 +639,8 @@ backup)
unset PackageName
. "$REPLY/app_details" &>/dev/null
if [[ $PackageName != "" && $(pm path --user "$user" "$PackageName" 2>/dev/null | cut -f2 -d ':') = "" ]]; then
if [[ $operate = "" ]]; then
echoRgb "檢查到已卸載應用\n -音量上刪除資料夾,下移動到其他處"
get_version "刪除" "移動到其他處" && operate="$branch"
fi
get_version "刪除" "移動到其他處" && 操作="$branch"
if [[ $operate = true ]]; then
rm -rf "$REPLY"
echoRgb "${REPLY##*/}不存在系統 刪除資料夾" "0"
@@ -860,8 +866,19 @@ backup)
longToast "批量備份完成"
Print "批量備份完成 執行過程請查看$Status_log"
#打開應用
appinfo -sort-i -d "/" -o pn,sa -pn $am_start 2>/dev/null | while read; do
i=1
while [[ $i -le $r ]]; do
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
echo_log "啟動$name1"
done
fi
let i++
done
#回到桌面
#input keyevent 3 2>/dev/null
@@ -1065,7 +1082,7 @@ Restore3)
;;
Getlist)
#效驗選填是否正確
isBoolean "$Lo" "LO" && Lo="$nsx"
isBoolean "$Lo" "Lo" && Lo="$nsx"
isBoolean "$debug_list" "debug_list" && debug_list="$nsx"
txtpath="$MODDIR"
[[ $debug_list = true ]] && txtpath="${txtpath/'/storage/emulated/'/'/data/media/'}"
@@ -1089,10 +1106,10 @@ Getlist)
echo "$Apk_info" | sed 's/\///g ; s/\://g ; s/(//g ; s/)//g ; s/\[//g ; s/\]//g ; s/\-//g ; s/!//g' | while read; do
[[ $rgb_a -ge 229 ]] && rgb_a=118
app_1=($REPLY $REPLY)
if [[ $(cat "$nametxt" | cut -f2 -d ' ' | egrep "^${app_1[1]}$") != ${app_1[1]} ]]; then
if [[ $(cat "$nametxt" | cut -f2 -d ' ' | egrep -w "^${app_1[1]}$") != ${app_1[1]} ]]; then
case ${app_1[1]} in
*oneplus* | *miui* | *xiaomi* | *oppo* | *flyme* | *meizu* | com.android.soundrecorder | com.mfashiongallery.emag | com.mi.health | *coloros*)
if [[ $(echo "$xposed_name" | grep -w "${app_1[1]}") = ${app_1[1]} ]]; then
if [[ $(echo "$xposed_name" | egrep -w "${app_1[1]}$") = ${app_1[1]} ]]; then
echoRgb "${app_1[2]}為Xposed模塊 進行添加" "0"
echo "$REPLY" >>"$nametxt" && [[ ! -e $MODDIR/tmp ]] && touch "$MODDIR/tmp"
let i++ rd++
@@ -1119,7 +1136,7 @@ Getlist)
if [[ $LR = $Apk_Quantity ]]; then
if [[ $(cat "$nametxt" | wc -l | awk '{print $1-2}') -lt $i ]]; then
rm -rf "$nametxt" "$MODDIR/tmp"
echoRgb "\n -輸出異常 請將$conf_path中的debug_list=\"0\"改為1" "0"
echoRgb "\n -輸出異常 請將$conf_path中的debug_list=\"0\"改為1或是重新執行本腳本" "0"
exit
fi
[[ -e $MODDIR/tmp ]] && echoRgb "\n -第三方apk數量=\"$Apk_Quantity\"\n -已過濾=\"$rc\"\n -xposed=\"$rd\"\n -存在列表中=\"$Q\"\n -輸出=\"$i\""
@@ -1134,7 +1151,7 @@ Getlist)
name2="$(cat "$nametxt" | grep -v "#" | sed -e '/^$/d' | sed -n "${D}p" | awk '{print $2}')"
{
if [[ $name2 != "" && $(pm path --user "$user" "$name2" 2>/dev/null | cut -f2 -d ':') = "" ]]; then
echoRgb "$name1不存在系統,從列表中刪除" "0"
echoRgb "$name1 $name2不存在系統,從列表中刪除" "0"
echo "$(sed -e "s/$name1 $name2//g ; /^$/d" "$nametxt")" >"$nametxt"
fi
} &