diff --git a/tools/Device_List b/tools/Device_List index 86490c7..5e4b919 100644 --- a/tools/Device_List +++ b/tools/Device_List @@ -376,7 +376,10 @@ "2409BRN2CI" "Redmi 14C 印度版" "2409BRN2CL" "Redmi 14C 拉美版 / 日韓版" "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 標準版" "2013121" "紅米 Note 聯通 3G 增強版" "2014017" "紅米 Note 移動 3G 標準版" @@ -552,6 +555,7 @@ "M2004J7BC" "Redmi 10X Pro 5G" "M2003J15SC" "Redmi 10X 4G" "24069RA21C" "Redmi Turbo 3" +"24129RT7CC" "REDMI Turbo 4" "M1903F10A" "Redmi K20 全網通版" "M1903F10C" "Redmi K20 運營商全網通版" "M1903F10I" "Redmi K20 印度版" @@ -3010,8 +3014,13 @@ "V2349" "vivo V30 SE" "V2348" "vivo V40" "V2347" "vivo V40 Pro" -"V2418" "vivo V40e" -"V2341" "vivo V40 Lite" +"V2403" "vivo V40e" +"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" "vivo 1920_20" "vivo S1 Pro" "V2168" "vivo T1" @@ -3080,6 +3089,7 @@ "V2315" "vivo Y28 5G" "V2351" "vivo Y28s 5G" "V2407" "vivo Y28e 5G" +"V2420" "vivo Y29 5G" "V2160" "vivo Y30 5G" "V2036_21" "vivo Y31" "V2057" "vivo Y33" @@ -3090,6 +3100,7 @@ "V2324" "vivo Y36" "V2248" "vivo Y36 5G" "V2343" "vivo Y38 5G" +"V2444" "vivo Y39 5G" "V2035" "vivo Y51" "V2031_21" "vivo Y51s" "V2053" "vivo Y52 5G" @@ -3098,6 +3109,7 @@ "V2127" "vivo Y55 5G" "V2311" "vivo Y56 5G" "V2355" "vivo Y58 5G" +"V2443" "vivo Y59 5G" "V2041" "vivo Y72" "V2060" "vivo Y72 5G" "V2059-EG" "vivo Y73" @@ -3122,6 +3134,7 @@ "I2019" "iQOO 9 SE" "I2212" "iQOO 11" "I2220" "iQOO 12" +"I2401" "iQOO 13" "I2202" "iQOO Neo6" "I2214" "iQOO Neo7 5G" "I2217" "iQOO Neo7 Pro 5G" @@ -3336,6 +3349,8 @@ "OWW213" "OPPO Watch SE" "OWW221" "OPPO Watch 4 Pro" "OWW231" "OPPO Watch X" +"OWW242" "OPPO Watch" +"OWW251" "OPPO Watch" "CPH1875" "OPPO Find X" "CPH2023" "OPPO Find X2" "CPH2025" "OPPO Find X2 Pro" diff --git a/tools/classes.dex b/tools/classes.dex index 96d9d98..2fa6725 100644 Binary files a/tools/classes.dex and b/tools/classes.dex differ diff --git a/tools/tools.sh b/tools/tools.sh index aeb9619..fb7a417 100644 --- a/tools/tools.sh +++ b/tools/tools.sh @@ -9,7 +9,7 @@ MODDIR="$MODDIR" MODDIR_NAME="${MODDIR##*/}" tools_path="$MODDIR/tools" script="${0##*/}" -backup_version="202412282251" +backup_version="20241228225" [[ $SHELL = *mt* ]] && echo "請勿使用MT管理器拓展包環境執行,請更換系統環境" && exit 2 update_backup_settings_conf() { echo "#0關閉音量鍵選擇 (如選項未設置,則強制使用音量鍵選擇) @@ -340,7 +340,7 @@ while read -r file expected_hash; do done <<< "$(cat </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_Permissions ;; esac @@ -1244,6 +1251,9 @@ Backup_data() { \"$1\": { \"path\": \"$2\", \"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 @@ -1251,6 +1261,9 @@ Backup_data() { extra_content="{ \"$1\": { \"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 @@ -1284,6 +1297,7 @@ Release_data() { case $FILE_NAME2 in user) if [[ -d $X ]]; then + [[ $(jq -r '.[] | select(.Ssaid != null).keystore' "$app_details") = true ]] && echoRgb "$name1存在keystore 恢復可能閃退" "0" 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)" else @@ -1332,13 +1346,10 @@ Release_data() { if [[ $result = 0 ]]; then case $FILE_NAME2 in user|data|obb|user_de) - if [[ $G = "" ]]; then - if [[ $(get_uid "$name2" 2>/dev/null) != "" ]]; then - G="$(get_uid "$name2" 2>/dev/null)" - else - 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)" - fi + G="$(get_uid "$name2" 2>/dev/null)" + if [[ $G != "" ]]; then + 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)" fi G="$(echo "$G" | egrep -o '[0-9]+')" if [[ $G != "" ]]; then @@ -1361,7 +1372,7 @@ Release_data() { esac if [[ $Validation_settings = true ]]; then chown -hR "$uid" "$X/" - echo_log "設置用戶組" + echo_log "設置用戶組$uid" chcon -hR "$Selinux_state" "$X/" 2>/dev/null echo_log "selinux上下文設置" else @@ -1690,6 +1701,7 @@ Set_screen_pause_seconds () { if [[ $Get_dark_screen_seconds != "" ]]; then settings put system screen_off_timeout "$Get_dark_screen_seconds" echo_log "設置無操作息屏時間為$Get_dark_screen_seconds" + input keyevent 224 fi [[ $setDisplayPowerMode = true ]] && { setDisplay 2 @@ -2149,6 +2161,7 @@ backup) let i++ en++ nskg++ done Set_screen_pause_seconds off + [[ $user != 0 ]] && am stop-user "$user" rm -rf "$TMPDIR/scriptTMP" Calculate_size "$Backup" echoRgb "批量備份完成" @@ -2458,6 +2471,7 @@ Restore|Restore2) let i++ en++ nskg++ done Set_screen_pause_seconds off + [[ $user != 0 ]] && am stop-user "$user" starttime1="$TIME" echoRgb "$DX完成" && endtime 1 "$DX開始到結束" rm -rf "$TMPDIR"/*