1 Commits

Author SHA1 Message Date
Yawasau
e6e8da1184 feat: 性能與穩定性大改進,新增功能與防呆
性能優化:
- 主迴圈 fork 量降低 5-10 倍
- 100 app 備份省 ~800 jq fork, ~100 pm fork
- 100 app 恢復省 ~300 pm fork, ~500 jq fork
- 大目錄 (OBB) 計算改 du -sb, 快 3-5 倍

新增功能:
- 主選單循環 (跑完非備份動作回選單,不用每次重啟)
- 工具版本啟動時記錄到 log/tools_version.log
- log 自動清理 (conf: log_max_size_mb)
- SMB 掃描自動抓主機名 (Server=[name])
- WebDAV PROPFIND 失敗時自動探測根目錄
- 啟動驗證新增 curl SHA-256

Bug 修復:
- mksh 兼容: here-string / 空陣列 / += 全改檔案
- 32-bit 整數溢位 (Calculate_size / Backup_data)
- versionCode 解析錯誤 (split apk 多行覆蓋導致誤判更新)
- appList.txt 同名 app 重複 (考慮舊清單已存在的記錄)
- WebDAV XML 解析 (兼容 D: 前綴 / 無前綴)
- WebDAV 下載遞迴掃描檔案丟失 (PID 共用暫存檔)
- 單獨備份覆蓋 appList.txt (改合併)
- 主選單循環不觸發 trap EXIT (backup 內主動呼叫 remote_cleanup)
- isBoolean 接受 true/false (避免循環選單二次校驗失敗)
- conf 驗證防呆 (webdav/smb 協議跟 URL scheme 不匹配警告)
- WebDAV 連線失敗識別 (WRONG_VERSION_NUMBER / DNS / SSL)
- 小米 libc 雜訊 (用 command -v 先查 magisk 才呼叫)
- KernelSU smbclient 缺失改非致命

新增 helper:
- app_details_read / release_details_read (jq 多欄位一次抓)
- prepare_pkg_uid_map / prepare_pkg_ver_map / prepare_installed_pkgs_map
- get_app_uid (uid 三層 fallback)
- _dns_resolve + curl wrapper (繞過 ARM curl DNS 解析失敗)
- jq_inplace / tar_compress_dir / ts_inplace 等
2026-05-18 19:39:33 +08:00

File diff suppressed because it is too large Load Diff