feat: 權限預掃/JSON驗證/遠端比對/互動統一及多項修復

功能新增:
- ask_yn helper 統一 Lo=0/1/2 互動邏輯
- prepare_permissions_map 備份前預掃 runtime permissions,取代逐 app fork dex
- 備份完成後自動驗證本次變動應用的 JSON 結構
- remote_list_backups 加入本地/遠端差異比對,支援直接補上傳/補下載
- show_conf/remote_conf_line 各功能執行前顯示對應 conf
- get_backup_dirname/per_app_upload_and_cleanup 邏輯抽成獨立函數

邏輯修復:
- Backup_Permissions/Backup_ssaid 移出 size 判斷,size 無變化時也偵測變更
- 權限變更列出具體項目 (permName: false→true)
- .changed_apps 去重從 grep -qFx 改為 awk /data/data/com.termux/files/usr/bin/push==n,避免特殊字元誤判
- 僅上傳變更應用訊息加 remote_type 守衛,未設遠端時不顯示
- 遠端斷線保存 _remote_type_orig,支援中途開 WiFi 後重連
- 遠端缺檔本地無變化時免重壓直接上傳
- Lo=2 恢復未安裝應用選項順序顛倒 bug
- Lo=2 更新腳本誤設 update 變數(應為 choose)bug
- Media 備份無內容不留空殼
- 全腳本去除 bc 依賴改用 awk

其他:
- 單獨備份模式只預掃該 app 權限
- 頂部加區塊索引,各分區加分隔標題
- 縮排統一為 Tab
- 掛載路徑顯示從 mount:[...] 改為 └─ 掛載於:
This commit is contained in:
Yawasau
2026-06-02 00:42:04 +08:00
parent 3dc8bbdb2b
commit e31c31515c
3 changed files with 2213 additions and 1787 deletions

View File

@@ -158,7 +158,11 @@
"2512BPNDAI" "Xiaomi 17 Ultra 印度版"
"25128PNA1C" "Xiaomi 17 Ultra by Leica 國行版 (衛星通訊)"
"25128PNA1G" "Leica Leitzphone powered by Xiaomi 國際版"
"2605EPN8EC" "Xiaomi 17 Max"
"M531DA" "Xiaomi 17T 國行版"
"2602DPT53G" "Xiaomi 17T 國際版"
"2602DPT53I" "Xiaomi 17T 印度版"
"M025EC" "Xiaomi 17T Pro 國行版"
"2602EPTC0G" "Xiaomi 17T Pro 國際版"
"2602EPTC0R" "Xiaomi 17T Pro 日本版 (無鎖)"
"2014616" "小米 Note 雙網通版"
@@ -634,7 +638,8 @@
"24069RA21C" "Redmi Turbo 3"
"24129RT7CC" "REDMI Turbo 4"
"25053RT47C" "REDMI Turbo 4 Pro"
"2511FRT34C" "REDMI Turbo 5"
"2511FRT34C" "REDMI Turbo 5 國行版"
"2606FRT34I" "REDMI Turbo 5 印度版"
"2602BRT18C" "REDMI Turbo 5 Max"
"M1903F10A" "Redmi K20 全網通版"
"M1903F10C" "Redmi K20 運營商全網通版"
@@ -851,7 +856,7 @@
"2410FPCC5G" "POCO C75 國際版"
"2410FPCC5I" "POCO C75 印度版"
"24116PCC1I" "POCO C75 5G 印度版"
"25128PC17G" "POCO C81 Pro 國際版"
"25128PC17Y" "POCO C81 Pro 國際版"
"25128PC17L" "POCO C81 Pro 拉美版"
"25128PC17I" "POCO C81 印度版"
"26020PCB4I" "POCO C81x 印度版"
@@ -863,11 +868,12 @@
"24074PCD2I" "POCO Pad 5G 印度版"
"25099RP08G" "POCO Pad X1 國際版"
"2509ARPBDG" "POCO Pad M1 國際版"
"2603APC14G" "POCO Pad C1 國際版"
"FYJ01QP" "小米米家翻譯機"
"21051191C" "CyberDog 仿生四足機器人"
"2405AVPB7C" "小米澎湃智能座艙 (第一代 SU7/SU7 Ultra)"
"25033VP3FC" "小米澎湃智能座艙 (YU7/新一代 SU7)"
"2503CVPC6C" "Xiaomi YU7 後排移動控制屏"
"2503CVPC6C" "小米汽車後排移動控制屏"
"MI-ONE" "Mi 1 Lite"
"2109119BC" "Xiaomi Civi China"
"2109119BC" "Xiaomi Civi 1S China"
@@ -2899,6 +2905,7 @@
"RMX5171" "realme 16 5G"
"RMX5120" "realme 16 Pro 5G"
"RMX5131" "realme 16 Pro+ 5G"
"RMX5268" "realme 16T 5G"
"RMX1921" "realme XT Global"
"RMX1922" "realme XT India"
"RMX1992" "realme X2 India"
@@ -3128,6 +3135,8 @@
"V2465A" "vivo S30 Pro mini"
"V2528A" "vivo S50 / vivo S50t"
"V2527A" "vivo S50 Pro mini"
"V2571A" "vivo S60"
"V2572A" "vivo S60 元氣版"
"V1901A" "vivo Y3 全網通版"
"V1901T" "vivo Y3 移動全網通版"
"V1930A" "vivo Y3 標準版 全網通版"
@@ -3173,6 +3182,7 @@
"V2164A" "vivo Y55s 5G"
"V2559A" "vivo Y60 5G / vivo Y6t 5G"
"V2559BA" "vivo Y60m 5G"
"V2532BA" "vivo Y6m"
"V1731CA" "vivo Y71s"
"V2102A" "vivo Y71t 5G"
"V2164PA" "vivo Y73t 5G"
@@ -3209,6 +3219,7 @@
"V2516A" "vivo Y500 Pro"
"V2531A" "vivo Y500i / vivo Y500s / vivo Y6"
"V2561A" "vivo Y600 Pro"
"V2553A" "vivo Y600 Turbo"
"V2115A" "vivo T1"
"V2199GA" "vivo T2"
"V2188A" "vivo T2x"
@@ -3416,7 +3427,6 @@
"V2418" "vivo V40 Lite 5G Indonesia"
"V2337" "vivo V40 SE 5G"
"V2451" "vivo V50"
"V2504" "vivo V50 Pro"
"V2428" "vivo V50e"
"V2441" "vivo V50 Lite"
"V2453" "vivo V50 Lite 5G"
@@ -3427,6 +3437,7 @@
"V2540" "vivo V70"
"V2548" "vivo V70 Elite"
"V2558" "vivo V70 FE"
"V2637" "vivo V70 Lite 5G"
"vivo 1920_20" "vivo S1 Pro"
"V2168" "vivo T1"
"V2157" "vivo T1 5G"
@@ -3446,6 +3457,7 @@
"V2509" "vivo T4 Lite 5G"
"V2518" "vivo T4R 5G"
"V2510" "vivo T4 Pro"
"V2504" "vivo T4 Ultra"
"V2568" "vivo T5 Pro"
"V2545" "vivo T5x 5G"
"V2603" "vivo T5 Lite 5G"
@@ -3527,7 +3539,8 @@
"V2036_21" "vivo Y31"
"V2521" "vivo Y31 5G"
"V2534" "vivo Y31 Pro 5G"
"V2611" "vivo Y31d"
"V2636" "vivo Y31d"
"V2543" "vivo Y31d Pro"
"V2533" "vivo Y31e 5G"
"V2057" "vivo Y33"
"V2109-EG" "vivo Y33A"
@@ -3718,6 +3731,8 @@
"PLW110" "OPPO Reno15"
"PLV110" "OPPO Reno15 Pro"
"PMD110" "OPPO Reno15c"
"PMM110" "OPPO Reno16"
"PMK110" "OPPO Reno16 Pro"
"PCLM10" "OPPO Reno Ace"
"PDHM00" "OPPO Ace2"
"PACM00" "OPPO R15 全網通版"
@@ -3802,7 +3817,7 @@
"PLT120" "OPPO A6s / OPPO A6i+ / OPPO A6k"
"PMT110" "OPPO A6s Pro"
"PLT130" "OPPO A6v"
"PLT140" "OPPO A6x"
"PLT140" "OPPO A6x / OPPO A6m"
"PMC110" "OPPO A6c"
"PBCM30" "OPPO K1"
"PCGM00" "OPPO K3 全網通版"
@@ -3839,6 +3854,7 @@
"OPD2501" "OPPO Pad Air5"
"OPD2511" "OPPO Pad 5 Pro"
"OPD2515" "OPPO Pad Mini"
"OPD2601" "OPPO Pad 6"
"OB19O1" "OPPO Band 運動版"
"OB19O3" "OPPO Band 運動版 (國際版)"
"OB19O7" "OPPO Band 活力版"

BIN
tools/bc

Binary file not shown.

File diff suppressed because it is too large Load Diff