This commit is contained in:
Yawasau
2025-01-11 22:21:10 +08:00
parent a8c26d334c
commit 979b828cd9
3 changed files with 42 additions and 13 deletions

View File

@@ -376,7 +376,10 @@
"2409BRN2CI" "Redmi 14C 印度版" "2409BRN2CI" "Redmi 14C 印度版"
"2409BRN2CL" "Redmi 14C 拉美版 / 日韓版" "2409BRN2CL" "Redmi 14C 拉美版 / 日韓版"
"2409BRN2CY" "Redmi 14C 國際版 (NFC)" "2409BRN2CY" "Redmi 14C 國際版 (NFC)"
"2411DRN47C" "Redmi 14R 5G" "2411DRN47G" "Redmi 14C 5G 國際版"
"2411DRN47R" "Redmi 14C 5G 日本版"
"2411DRN47C" "Redmi 14R 5G 國行版"
"2411DRN47I" "Redmi 14C 5G 印度版"
"2014018" "紅米 Note 聯通 3G 標準版" "2014018" "紅米 Note 聯通 3G 標準版"
"2013121" "紅米 Note 聯通 3G 增強版" "2013121" "紅米 Note 聯通 3G 增強版"
"2014017" "紅米 Note 移動 3G 標準版" "2014017" "紅米 Note 移動 3G 標準版"
@@ -552,6 +555,7 @@
"M2004J7BC" "Redmi 10X Pro 5G" "M2004J7BC" "Redmi 10X Pro 5G"
"M2003J15SC" "Redmi 10X 4G" "M2003J15SC" "Redmi 10X 4G"
"24069RA21C" "Redmi Turbo 3" "24069RA21C" "Redmi Turbo 3"
"24129RT7CC" "REDMI Turbo 4"
"M1903F10A" "Redmi K20 全網通版" "M1903F10A" "Redmi K20 全網通版"
"M1903F10C" "Redmi K20 運營商全網通版" "M1903F10C" "Redmi K20 運營商全網通版"
"M1903F10I" "Redmi K20 印度版" "M1903F10I" "Redmi K20 印度版"
@@ -3010,8 +3014,13 @@
"V2349" "vivo V30 SE" "V2349" "vivo V30 SE"
"V2348" "vivo V40" "V2348" "vivo V40"
"V2347" "vivo V40 Pro" "V2347" "vivo V40 Pro"
"V2418" "vivo V40e" "V2403" "vivo V40e"
"V2341" "vivo V40 Lite" "V2424" "vivo V40 Lite"
"V2418" "vivo V40 Lite 5G"
"V2337" "vivo V40 SE 5G"
"V2427" "vivo V50"
"V2428" "vivo V50e"
"V2440" "vivo V50 Lite"
"V1937" "vivo S1 Prime" "V1937" "vivo S1 Prime"
"vivo 1920_20" "vivo S1 Pro" "vivo 1920_20" "vivo S1 Pro"
"V2168" "vivo T1" "V2168" "vivo T1"
@@ -3080,6 +3089,7 @@
"V2315" "vivo Y28 5G" "V2315" "vivo Y28 5G"
"V2351" "vivo Y28s 5G" "V2351" "vivo Y28s 5G"
"V2407" "vivo Y28e 5G" "V2407" "vivo Y28e 5G"
"V2420" "vivo Y29 5G"
"V2160" "vivo Y30 5G" "V2160" "vivo Y30 5G"
"V2036_21" "vivo Y31" "V2036_21" "vivo Y31"
"V2057" "vivo Y33" "V2057" "vivo Y33"
@@ -3090,6 +3100,7 @@
"V2324" "vivo Y36" "V2324" "vivo Y36"
"V2248" "vivo Y36 5G" "V2248" "vivo Y36 5G"
"V2343" "vivo Y38 5G" "V2343" "vivo Y38 5G"
"V2444" "vivo Y39 5G"
"V2035" "vivo Y51" "V2035" "vivo Y51"
"V2031_21" "vivo Y51s" "V2031_21" "vivo Y51s"
"V2053" "vivo Y52 5G" "V2053" "vivo Y52 5G"
@@ -3098,6 +3109,7 @@
"V2127" "vivo Y55 5G" "V2127" "vivo Y55 5G"
"V2311" "vivo Y56 5G" "V2311" "vivo Y56 5G"
"V2355" "vivo Y58 5G" "V2355" "vivo Y58 5G"
"V2443" "vivo Y59 5G"
"V2041" "vivo Y72" "V2041" "vivo Y72"
"V2060" "vivo Y72 5G" "V2060" "vivo Y72 5G"
"V2059-EG" "vivo Y73" "V2059-EG" "vivo Y73"
@@ -3122,6 +3134,7 @@
"I2019" "iQOO 9 SE" "I2019" "iQOO 9 SE"
"I2212" "iQOO 11" "I2212" "iQOO 11"
"I2220" "iQOO 12" "I2220" "iQOO 12"
"I2401" "iQOO 13"
"I2202" "iQOO Neo6" "I2202" "iQOO Neo6"
"I2214" "iQOO Neo7 5G" "I2214" "iQOO Neo7 5G"
"I2217" "iQOO Neo7 Pro 5G" "I2217" "iQOO Neo7 Pro 5G"
@@ -3336,6 +3349,8 @@
"OWW213" "OPPO Watch SE" "OWW213" "OPPO Watch SE"
"OWW221" "OPPO Watch 4 Pro" "OWW221" "OPPO Watch 4 Pro"
"OWW231" "OPPO Watch X" "OWW231" "OPPO Watch X"
"OWW242" "OPPO Watch"
"OWW251" "OPPO Watch"
"CPH1875" "OPPO Find X" "CPH1875" "OPPO Find X"
"CPH2023" "OPPO Find X2" "CPH2023" "OPPO Find X2"
"CPH2025" "OPPO Find X2 Pro" "CPH2025" "OPPO Find X2 Pro"

Binary file not shown.

View File

@@ -9,7 +9,7 @@ MODDIR="$MODDIR"
MODDIR_NAME="${MODDIR##*/}" MODDIR_NAME="${MODDIR##*/}"
tools_path="$MODDIR/tools" tools_path="$MODDIR/tools"
script="${0##*/}" script="${0##*/}"
backup_version="202412282251" backup_version="20241228225"
[[ $SHELL = *mt* ]] && echo "請勿使用MT管理器拓展包環境執行,請更換系統環境" && exit 2 [[ $SHELL = *mt* ]] && echo "請勿使用MT管理器拓展包環境執行,請更換系統環境" && exit 2
update_backup_settings_conf() { update_backup_settings_conf() {
echo "#0關閉音量鍵選擇 (如選項未設置,則強制使用音量鍵選擇) echo "#0關閉音量鍵選擇 (如選項未設置,則強制使用音量鍵選擇)
@@ -340,7 +340,7 @@ while read -r file expected_hash; do
done <<< "$(cat <<EOF done <<< "$(cat <<EOF
zstd 2388211eb3960070c6b4528f68f7129a9ef5d165a0fef0113ac59e723006f4ca zstd 2388211eb3960070c6b4528f68f7129a9ef5d165a0fef0113ac59e723006f4ca
tar 3c605b1e9eb8283555225dcad4a3bf1777ae39c5f19a2c8b8943140fd7555814 tar 3c605b1e9eb8283555225dcad4a3bf1777ae39c5f19a2c8b8943140fd7555814
classes.dex 38c0747425bfdd7c1846ad1767f7c8ebf96996df1db1cb00dbd08c8ed8028601 classes.dex d117c122547837d725886a7820df6a1cc998f19ad9a2f0a7831479aaa60bb102
bc b15d730591f6fb52af59284b87d939c5bea204f944405a3518224d8df788dc15 bc b15d730591f6fb52af59284b87d939c5bea204f944405a3518224d8df788dc15
busybox 4d60ab3f5a59ebb2ca863f2f514e6924401b581e9b64f602665c008177626651 busybox 4d60ab3f5a59ebb2ca863f2f514e6924401b581e9b64f602665c008177626651
find 7fa812e58aafa29679cf8b50fc617ecf9fec2cfb2e06ea491e0a2d6bf79b903b find 7fa812e58aafa29679cf8b50fc617ecf9fec2cfb2e06ea491e0a2d6bf79b903b
@@ -620,6 +620,7 @@ backup|Restore|Restore2|Getlist|backup_media)
zstd | Zstd | ZSTD) user="$(echo "${0%}" | sed 's/.*\/Backup_zstd_\([0-9]*\).*/\1/')" ;; zstd | Zstd | ZSTD) user="$(echo "${0%}" | sed 's/.*\/Backup_zstd_\([0-9]*\).*/\1/')" ;;
esac esac
fi fi
[[ $user != 0 ]] && am start-user "$user"
path="/data/media/$user/Android" path="/data/media/$user/Android"
path2="/data/user/$user" path2="/data/user/$user"
path3="/data/user_de/$user" path3="/data/user_de/$user"
@@ -1186,6 +1187,12 @@ Backup_data() {
if [[ $Size != $Filesize ]]; then if [[ $Size != $Filesize ]]; then
case $1 in case $1 in
user) user)
if [[ $(su "$(get_uid "$name2" 2>/dev/null)" -c keystore_cli_v2 list | wc -l) -ge 2 ]]; then
echoRgb "$name1包含keystore 恢復可能閃退" "0"
jq --arg entry "$name1" '.[$entry].keystore |= "true"' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
else
jq --arg entry "$name1" '.[$entry].keystore |= "false"' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
fi
Backup_ssaid Backup_ssaid
Backup_Permissions ;; Backup_Permissions ;;
esac esac
@@ -1244,6 +1251,9 @@ Backup_data() {
\"$1\": { \"$1\": {
\"path\": \"$2\", \"path\": \"$2\",
\"Size\": \"$Filesize\" \"Size\": \"$Filesize\"
},
\"Backup time\": {
\"date\": \"$(date "+%Y.%m.%d %H:%M:%S")\"
} }
}" }"
jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
@@ -1251,6 +1261,9 @@ Backup_data() {
extra_content="{ extra_content="{
\"$1\": { \"$1\": {
\"Size\": \"$Filesize\" \"Size\": \"$Filesize\"
},
\"Backup time\": {
\"date\": \"$(date "+%Y.%m.%d %H:%M:%S")\"
} }
}" }"
jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json jq --argjson new_content "$extra_content" '. += $new_content' "$app_details" > temp.json && cp temp.json "$app_details" && rm -rf temp.json
@@ -1284,6 +1297,7 @@ Release_data() {
case $FILE_NAME2 in case $FILE_NAME2 in
user) user)
if [[ -d $X ]]; then if [[ -d $X ]]; then
[[ $(jq -r '.[] | select(.Ssaid != null).keystore' "$app_details") = true ]] && echoRgb "$name1存在keystore 恢復可能閃退" "0"
FILE_PATH="$path2" FILE_PATH="$path2"
Selinux_state="$(LS "$X" | awk 'NF>1{print $1}' | sed -e "s/system_data_file/app_data_file/g" 2>/dev/null)" Selinux_state="$(LS "$X" | awk 'NF>1{print $1}' | sed -e "s/system_data_file/app_data_file/g" 2>/dev/null)"
else else
@@ -1332,14 +1346,11 @@ Release_data() {
if [[ $result = 0 ]]; then if [[ $result = 0 ]]; then
case $FILE_NAME2 in case $FILE_NAME2 in
user|data|obb|user_de) user|data|obb|user_de)
if [[ $G = "" ]]; then
if [[ $(get_uid "$name2" 2>/dev/null) != "" ]]; then
G="$(get_uid "$name2" 2>/dev/null)" G="$(get_uid "$name2" 2>/dev/null)"
else if [[ $G != "" ]]; then
G="$(dumpsys package "$name2" 2>/dev/null | awk -F'uid=' '{print $2}' | egrep -o '[0-9]+' | head -n 1)" G="$(dumpsys package "$name2" 2>/dev/null | awk -F'uid=' '{print $2}' | egrep -o '[0-9]+' | head -n 1)"
[[ $(echo "$G" | egrep -o '[0-9]+') = "" ]] && G="$(pm list packages -U --user "$user" | egrep -w "$name2" | awk -F'uid:' '{print $2}' | awk '{print $1}' | head -n 1)" [[ $(echo "$G" | egrep -o '[0-9]+') = "" ]] && G="$(pm list packages -U --user "$user" | egrep -w "$name2" | awk -F'uid:' '{print $2}' | awk '{print $1}' | head -n 1)"
fi fi
fi
G="$(echo "$G" | egrep -o '[0-9]+')" G="$(echo "$G" | egrep -o '[0-9]+')"
if [[ $G != "" ]]; then if [[ $G != "" ]]; then
if [[ -d $X ]]; then if [[ -d $X ]]; then
@@ -1361,7 +1372,7 @@ Release_data() {
esac esac
if [[ $Validation_settings = true ]]; then if [[ $Validation_settings = true ]]; then
chown -hR "$uid" "$X/" chown -hR "$uid" "$X/"
echo_log "設置用戶組" echo_log "設置用戶組$uid"
chcon -hR "$Selinux_state" "$X/" 2>/dev/null chcon -hR "$Selinux_state" "$X/" 2>/dev/null
echo_log "selinux上下文設置" echo_log "selinux上下文設置"
else else
@@ -1690,6 +1701,7 @@ Set_screen_pause_seconds () {
if [[ $Get_dark_screen_seconds != "" ]]; then if [[ $Get_dark_screen_seconds != "" ]]; then
settings put system screen_off_timeout "$Get_dark_screen_seconds" settings put system screen_off_timeout "$Get_dark_screen_seconds"
echo_log "設置無操作息屏時間為$Get_dark_screen_seconds" echo_log "設置無操作息屏時間為$Get_dark_screen_seconds"
input keyevent 224
fi fi
[[ $setDisplayPowerMode = true ]] && { [[ $setDisplayPowerMode = true ]] && {
setDisplay 2 setDisplay 2
@@ -2149,6 +2161,7 @@ backup)
let i++ en++ nskg++ let i++ en++ nskg++
done done
Set_screen_pause_seconds off Set_screen_pause_seconds off
[[ $user != 0 ]] && am stop-user "$user"
rm -rf "$TMPDIR/scriptTMP" rm -rf "$TMPDIR/scriptTMP"
Calculate_size "$Backup" Calculate_size "$Backup"
echoRgb "批量備份完成" echoRgb "批量備份完成"
@@ -2458,6 +2471,7 @@ Restore|Restore2)
let i++ en++ nskg++ let i++ en++ nskg++
done done
Set_screen_pause_seconds off Set_screen_pause_seconds off
[[ $user != 0 ]] && am stop-user "$user"
starttime1="$TIME" starttime1="$TIME"
echoRgb "$DX完成" && endtime 1 "$DX開始到結束" echoRgb "$DX完成" && endtime 1 "$DX開始到結束"
rm -rf "$TMPDIR"/* rm -rf "$TMPDIR"/*