This commit is contained in:
Yawasau
2024-11-24 17:51:38 +08:00
parent 5bf3c75762
commit bc1f62a036
3 changed files with 2461 additions and 1864 deletions

View File

@@ -37,7 +37,7 @@ Backup_Mode=1
#執行生成應用列表.sh時輸出用於recovery救援的卡刷包 #執行生成應用列表.sh時輸出用於recovery救援的卡刷包
#1輸出 0不輸出 #1輸出 0不輸出
recovery_flash=1 recovery_flash=0
#是否備份使用者數據 (1備份 0不備份 留空強制選擇) #是否備份使用者數據 (1備份 0不備份 留空強制選擇)
Backup_user_data=1 Backup_user_data=1
@@ -47,7 +47,7 @@ Backup_obb_data=1
#是否在應用數據備份完成後備份自定義目錄 #是否在應用數據備份完成後備份自定義目錄
#1開啟 0關閉 #1開啟 0關閉
backup_media=0 backup_media=1
#存在進程忽略備份(1忽略0備份) #存在進程忽略備份(1忽略0備份)
Background_apps_ignore=0 Background_apps_ignore=0
@@ -59,7 +59,6 @@ debug_list=0
Custom_path=" Custom_path="
/storage/emulated/0/Pictures/ /storage/emulated/0/Pictures/
/storage/emulated/0/Download/ /storage/emulated/0/Download/
/storage/emulated/0/Music
/storage/emulated/0/DCIM/ /storage/emulated/0/DCIM/
/data/adb /data/adb
" "
@@ -69,7 +68,8 @@ blacklist_mode=0
#備份黑名單(備份策略由「黑名單模式」控制,此處只作為黑名單應用列表) #備份黑名單(備份策略由「黑名單模式」控制,此處只作為黑名單應用列表)
blacklist=" blacklist="
#com.esunbank com.esunbank
com.esunbank.ESUNWALLET
#com.chailease.tw.app.android.ccfappcust" #com.chailease.tw.app.android.ccfappcust"
#位於data的預裝應用白名單 例:相冊 錄音機 天氣 計算器等(默認屏蔽備份預裝應用,如需備份請添加預裝應用白名單) #位於data的預裝應用白名單 例:相冊 錄音機 天氣 計算器等(默認屏蔽備份預裝應用,如需備份請添加預裝應用白名單)

File diff suppressed because it is too large Load Diff

View File

@@ -10,7 +10,7 @@ MODDIR_NAME="${MODDIR##*/}"
tools_path="$MODDIR/tools" tools_path="$MODDIR/tools"
Compression_rate=9 Compression_rate=9
script="${0##*/}" script="${0##*/}"
backup_version="V16.2" backup_version="202411241736"
[[ $SHELL = *mt* ]] && echo "請勿使用MT管理器拓展包環境執行,請更換系統環境" && exit 2 [[ $SHELL = *mt* ]] && echo "請勿使用MT管理器拓展包環境執行,請更換系統環境" && exit 2
update_backup_settings_conf() { update_backup_settings_conf() {
echo "#0關閉音量鍵選擇 (如選項未設置,則強制使用音量鍵選擇) echo "#0關閉音量鍵選擇 (如選項未設置,則強制使用音量鍵選擇)
@@ -511,6 +511,7 @@ case $MODDIR in
fi ;; fi ;;
*) [[ -d $MODDIR/tools ]] && path_hierarchy="$MODDIR" ;; *) [[ -d $MODDIR/tools ]] && path_hierarchy="$MODDIR" ;;
esac esac
[[ $LANG = "" ]] && echoRgb "系統無參數語言獲取失敗\n -如果需要更改腳本語言請於$conf_path\n -Shell_LANG=填入對應數字" "0"
case $LANG in case $LANG in
*TW* | *tw* | *HK*) *TW* | *tw* | *HK*)
echoRgb "系統語言環境:繁體中文" echoRgb "系統語言環境:繁體中文"
@@ -542,7 +543,8 @@ add_entry() {
app_name="$1" app_name="$1"
package_name="$2" package_name="$2"
# 檢查是否已經存在同樣的應用名稱 # 檢查是否已經存在同樣的應用名稱
if [[ $(echo "$3" | awk '{print $1}' | grep -w "^$app_name$") != "" ]]; then if [[ $(echo "$3" | awk '{print $1}' | grep -w "^$app_name$") = $app_name ]]; then
if [[ $(echo "$3" | awk '{print $2}' | grep -w "^$package_name$") != $package_name ]]; then
# 如果應用名稱存在但包名不同,則需要添加數字後綴 # 如果應用名稱存在但包名不同,則需要添加數字後綴
count=1 count=1
new_app_name="${app_name}_${count}" new_app_name="${app_name}_${count}"
@@ -552,6 +554,7 @@ add_entry() {
done done
app_name="$new_app_name" app_name="$new_app_name"
fi fi
fi
REPLY="$app_name $package_name" REPLY="$app_name $package_name"
} }
case $operate in case $operate in
@@ -605,7 +608,10 @@ backup|Restore|Restore2|Getlist|backup_media)
fi fi
fi fi
else else
user="$(echo "${0%}" | sed 's/.*\/Backup_zstd_\([0-9]*\).*/\1/')" case $Compression_method in
tar | TAR | Tar) user="$(echo "${0%}" | sed 's/.*\/Backup_tar_\([0-9]*\).*/\1/')" ;;
zstd | Zstd | ZSTD) user="$(echo "${0%}" | sed 's/.*\/Backup_zstd_\([0-9]*\).*/\1/')" ;;
esac
fi fi
path="/data/media/$user/Android" path="/data/media/$user/Android"
path2="/data/user/$user" path2="/data/user/$user"
@@ -1451,7 +1457,7 @@ get_name(){
rgb_a=118 rgb_a=118
user="$(echo "${0%}" | sed 's/.*\/Backup_zstd_\([0-9]*\).*/\1/')" user="$(echo "${0%}" | sed 's/.*\/Backup_zstd_\([0-9]*\).*/\1/')"
[[ ! -f $txt3 ]] && { [[ ! -f $txt3 ]] && {
Apk_info="$(pm list packages -e --user "$user" | cut -f2 -d ':' | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)" Apk_info="$(pm list packages -u --user "$user" | cut -f2 -d ':' | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)"
if [[ $Apk_info != "" ]]; then if [[ $Apk_info != "" ]]; then
[[ $Apk_info = *"Failure calling service package"* ]] && Apk_info="$(appinfo "user|system" "pkgName" 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)" [[ $Apk_info = *"Failure calling service package"* ]] && Apk_info="$(appinfo "user|system" "pkgName" 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)"
else else
@@ -1835,7 +1841,7 @@ backup)
backup_path backup_path
echoRgb "配置詳細:\n -壓縮方式:$Compression_method\n -音量鍵確認:$Lo\n -更新:$update\n -備份模式:$Backup_Mode\n -備份外部數據:$Backup_obb_data\n -備份user數據:$Backup_user_data\n -自定義目錄備份:$backup_media\n -存在進程忽略備份:$Background_apps_ignore" echoRgb "配置詳細:\n -壓縮方式:$Compression_method\n -音量鍵確認:$Lo\n -更新:$update\n -備份模式:$Backup_Mode\n -備份外部數據:$Backup_obb_data\n -備份user數據:$Backup_user_data\n -自定義目錄備份:$backup_media\n -存在進程忽略備份:$Background_apps_ignore"
D="1" D="1"
Apk_info="$(pm list packages -e --user "$user" | cut -f2 -d ':' | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)" Apk_info="$(pm list packages -u --user "$user" | cut -f2 -d ':' | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)"
if [[ $Apk_info != "" ]]; then if [[ $Apk_info != "" ]]; then
[[ $Apk_info = *"Failure calling service package"* ]] && Apk_info="$(appinfo "user|system" "pkgName" 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)" [[ $Apk_info = *"Failure calling service package"* ]] && Apk_info="$(appinfo "user|system" "pkgName" 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)"
else else
@@ -1956,7 +1962,7 @@ backup)
echoRgb "跳過備份所有數據" "0" echoRgb "跳過備份所有數據" "0"
No_backupdata=1 No_backupdata=1
fi fi
if [[ $(echo "$blacklist" | grep -w "$name2") = $name2 ]]; then if [[ $(echo "$blacklist" | grep -w "^$name2$") = $name2 ]]; then
if [[ $blacklist_mode = true ]]; then if [[ $blacklist_mode = true ]]; then
echoRgb "黑名單應用跳過備份" "0" echoRgb "黑名單應用跳過備份" "0"
nobackup="true" nobackup="true"
@@ -2201,7 +2207,7 @@ Restore|Restore2)
[[ $recovery_mode2 = false ]] && exit 2 [[ $recovery_mode2 = false ]] && exit 2
if [[ $recovery_mode = true ]]; then if [[ $recovery_mode = true ]]; then
echoRgb "獲取未安裝應用中" echoRgb "獲取未安裝應用中"
Apk_info="$(pm list packages -e --user "$user" | cut -f2 -d ':' | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)" Apk_info="$(pm list packages -u --user "$user" | cut -f2 -d ':' | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)"
if [[ $Apk_info != "" ]]; then if [[ $Apk_info != "" ]]; then
[[ $Apk_info = *"Failure calling service package"* ]] && Apk_info="$(appinfo "user|system" "pkgName" 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)" [[ $Apk_info = *"Failure calling service package"* ]] && Apk_info="$(appinfo "user|system" "pkgName" 2>/dev/null | egrep -v 'ice.message|com.topjohnwu.magisk' | sort -u)"
else else
@@ -2497,41 +2503,55 @@ Getlist)
Q="0" Q="0"
rb="0" rb="0"
Output_list() { Output_list() {
if [[ $(awk '{print $2}' "$nametxt" | grep -w "^${app_1[1]}$") != "${app_1[1]}" ]]; then if [[ $(cat "$nametxt" | cut -f2 -d ' ' | egrep -w "^${app_1[1]}$") != ${app_1[1]} ]]; then
add_entry "${app_1[2]}" "${app_1[1]}" "$REPLY2" [[ $REPLY2 = "" ]] && add_entry "${app_1[2]}" "${app_1[1]}" "$(cat "$nametxt" | grep -w "${app_1[2]}")" || add_entry "${app_1[2]}" "${app_1[1]}" "$REPLY2"
case ${app_1[1]} in case ${app_1[1]} in
*oneplus* | *miui* | *xiaomi* | *oppo* | *flyme* | *meizu* | com.android.soundrecorder | com.mfashiongallery.emag | com.mi.health | *coloros*) *oneplus* | *miui* | *xiaomi* | *oppo* | *flyme* | *meizu* | com.android.soundrecorder | com.mfashiongallery.emag | com.mi.health | *coloros*)
if [[ $(echo "$xposed_name" | grep -wq "${app_1[1]}") ]]; then if [[ $(echo "$xposed_name" | egrep -w "${app_1[1]}$") = ${app_1[1]} ]]; then
echoRgb "$app_nameXposed 模塊 進行添加" "0" echoRgb "$app_nameXposed模塊 進行添加" "0"
REPLY2="${REPLY2:+$REPLY2\n}$REPLY" if [[ $REPLY2 = "" ]]; then
tmp="${tmp:-1}" REPLY2="$REPLY" && [[ $tmp = "" ]] && tmp="1"
((i++, rd++)) else
elif [[ $(echo "$whitelist" | grep -wq "${app_1[1]}") ]]; then REPLY2="$REPLY2\n$REPLY" && [[ $tmp = "" ]] && tmp="1"
REPLY2="${REPLY2:+$REPLY2\n}$REPLY" fi
tmp="${tmp:-1}" let i++ rd++
else
if [[ $(echo "$whitelist" | egrep -w "^${app_1[1]}$") = ${app_1[1]} ]]; then
if [[ $REPLY2 = "" ]]; then
REPLY2="$REPLY" && [[ $tmp = "" ]] && tmp="1"
else
REPLY2="$REPLY2\n$REPLY" && [[ $tmp = "" ]] && tmp="1"
fi
echoRgb "$app_name ${app_1[1]}($rgb_a)" echoRgb "$app_name ${app_1[1]}($rgb_a)"
((i++)) let i++
else else
echoRgb "$app_name 預裝應用 忽略輸出" "0" echoRgb "$app_name 預裝應用 忽略輸出" "0"
REPLY2="${REPLY2:+$REPLY2\n}#$REPLY" if [[ $REPLY2 = "" ]]; then
tmp="${tmp:-1}" REPLY2="#$REPLY" && [[ $tmp = "" ]] && tmp="1"
((rc++)) else
REPLY2="$REPLY2\n#$REPLY" && [[ $tmp = "" ]] && tmp="1"
fi
let rc++
fi
fi fi
;; ;;
*) *)
REPLY2="${REPLY2:+$REPLY2\n}$REPLY" if [[ $REPLY2 = "" ]]; then
tmp="${tmp:-1}" REPLY2="$REPLY" && [[ $tmp = "" ]] && tmp="1"
if [[ $(echo "$xposed_name" | grep -wq "${app_1[1]}") ]]; then else
REPLY2="$REPLY2\n$REPLY" && [[ $tmp = "" ]] && tmp="1"
fi
if [[ $(echo "$xposed_name" | egrep -w "${app_1[1]}$") = ${app_1[1]} ]]; then
echoRgb "Xposed: $app_name ${app_1[1]}($rgb_a)" echoRgb "Xposed: $app_name ${app_1[1]}($rgb_a)"
((rd++)) let rd++
else else
echoRgb "$app_name ${app_1[1]}($rgb_a)" echoRgb "$app_name ${app_1[1]}($rgb_a)"
fi fi
((i++)) let i++
;; ;;
esac esac
else else
((Q++)) let Q++
fi fi
} }
[[ $(echo "$blacklist" | egrep -v '#|') != "" ]] && NZK=1 [[ $(echo "$blacklist" | egrep -v '#|') != "" ]] && NZK=1
@@ -2667,26 +2687,29 @@ backup_media)
fi fi
;; ;;
Device_List) Device_List)
URL="https://khwang9883.github.io/MobileModels/brands" URL="https://raw.githubusercontent.com/KHwang9883/MobileModels/refs/heads/master/brands"
rm -rf "$tools_path/Device_List" rm -rf "$tools_path/Device_List"
for i in $(echo "xiaomi\nsamsung\nasus\nBlack_Shark\ngoogle\nLenovo\nMEIZU\nMotorola\nNokia\nnothing\nnubia\nOnePlus\nSony"); do for i in $(echo "xiaomi\nsamsung\nasus\nBlack_Shark\ngoogle\nLenovo\nMEIZU\nMotorola\nNokia\nnothing\nnubia\nOnePlus\nSony\nrealme\nvivo\noppo"); do
echoRgb "獲取品牌$i" echoRgb "獲取品牌$i"
case $i in case $i in
xiaomi) Brand_URL="$URL/xiaomi.html" ;; xiaomi) Brand_URL="$URL/xiaomi.md" ;;
samsung) Brand_URL="$URL/samsung_cn.html" ;; samsung) Brand_URL="$URL/samsung_cn.md" ;;
asus) Brand_URL="$URL/asus.html" ;; asus) Brand_URL="$URL/asus.md" ;;
Black_Shark) Brand_URL="$URL/blackshark.html" ;; Black_Shark) Brand_URL="$URL/blackshark.md" ;;
google) Brand_URL="$URL/google.html" ;; google) Brand_URL="$URL/google.md" ;;
Lenovo) Brand_URL="$URL/lenovo.html" ;; Lenovo) Brand_URL="$URL/lenovo.md" ;;
MEIZU) Brand_URL="$URL/meizu.html" ;; MEIZU) Brand_URL="$URL/meizu.md" ;;
Motorola) Brand_URL="$URL/motorola.html" ;; Motorola) Brand_URL="$URL/motorola.md" ;;
Nokia) Brand_URL="$URL/nokia.html" ;; Nokia) Brand_URL="$URL/nokia.md" ;;
nothing) Brand_URL="$URL/nothing.html" ;; nothing) Brand_URL="$URL/nothing.md" ;;
nubia) Brand_URL="$URL/nubia.html" ;; nubia) Brand_URL="$URL/nubia.md" ;;
OnePlus) Brand_URL="$URL/oneplus.html" ;; OnePlus) Brand_URL="$URL/oneplus.md" ;;
Sony) Brand_URL="$URL/sony_cn.html" ;; Sony) Brand_URL="$URL/sony_cn.md" ;;
realme) Brand_URL="$URL/realme_cn.md" ;;
vivo) Brand_URL="$URL/vivo_cn.md" ;;
oppo) Brand_URL="$URL/oppo_cn.md" ;;
esac esac
down "$Brand_URL" | sed -n 's/.*<code class="language-plaintext highlighter-rouge">\([^<]*\)<\/code>: \(.*\)<\/p>.*/\1\n\2/p' | sed 's/\(.*\)/"\1"/' | sed 'N;s/\n/ /'>>"$tools_path/Device_List" down "$Brand_URL" | grep -oE '`[^`]+`:[^`]*' | sed -E 's/`([^`]+)`:\s*(.*)/"\1" "\2"/'>>"$tools_path/Device_List"
done done
if [[ -e $tools_path/Device_List ]]; then if [[ -e $tools_path/Device_List ]]; then
if [[ $(ls -l "$tools_path/Device_List" | awk '{print $5}') -gt 1 ]]; then if [[ $(ls -l "$tools_path/Device_List" | awk '{print $5}') -gt 1 ]]; then