| App 版本 | v0.2.0 release 簽章版 |
| 技術棧 | Kotlin + Jetpack Compose・minSdk 26 (Android 8.0)・targetSdk 34 |
| 單元測試 | 17/17 通過 |
| 本機真機狀態 | 待真機回饋(v0.1.2 縮小問題) |
| 後端 server | dnspilot-server 已上線(36/36 測試) |
| Google OAuth | 程式完成,等 Cloud Console 憑證 |
| APK 下載 | 見下方「4. 安裝與下載」 |
| 功能 | 狀態 | 說明 |
|---|---|---|
| VpnService 安全通道 | 完成 | TUN 本機通道,所有 DNS 流量經 app 重導至指定 DNS server |
| userspace DNS forwarder | 完成 (v0.1.4) | 修復部分機種「DNS 不生效」:app 自轉發,失敗切備用 DNS + 5 分回試 |
| 白名單自我修復 | 完成 | 連不通 / 對外 IP 變動 → 自動以 token 向 add-ip 申報(伺服器抓來源 IP) |
| status-check 輪詢 | 完成 | 預設 60s、連續 3 次失敗才觸發(皆可在設定調整) |
| 狀態頁 (StatusScreen v2) | 完成 (9/4) | 日誌 / 狀態 / 設定三分頁;fileCorrupt banner;啟動追蹤一鍵複製 |
| Crash 防護 | 完成 (9/4) | uncaught worker exception 不再帶垮 process;初始化中途失敗安全回退 |
| Google 登入 / 註冊 | 程式完成 | GSI 一鍵登入(app 通道)+ web code 通道;首登自動簽發白名單 token,寫入 whitelist_registration (L3) |
| 開機自啟 (BootReceiver) | 完成 | 重啟後自動恢復 VPN 服務 |
| 常駐通知 + 警告 | 完成 | IP 更動通知預設關 |
| 版本 | 日期 | 重點 |
|---|---|---|
| v0.2.0 (code 9) | 09-04 | crash 修復(_fileCorrupt 初始化順序 / ServiceHub 防護)+ StatusScreen v2 重寫 + mockserver 增強(ip_changed 生效、--bind) |
| v0.2.0 (code 8) | 08-30 | Google 登入 / 註冊 app 通道(OAuthClient、GSI launcher、設定頁帳號卡) |
| v0.1.2 | 08-28 | catch uncaught worker exceptions;LaunchTracer 啟動追蹤(一鍵複製);uptime 時基 bug 修復 |
| v0.1.1 | — | Android 14 crash 修復(specialUse FGS);R8 minify+shrink(debug 17MB→9.8MB) |
| v0.1.0 | — | M0–M5 baseline(VPN / DNS 重導 / 白名單申報 / 設定三層優先級) |
APK: dnspilot-v0.2.0-release.apk 📥 直接下載
安裝步驟:
com.dnspilot.guard.debug)包名不同,可並存;舊 debug 版建議先移除| 項目 | 狀態 |
|---|---|
| dnspilot-server(FastAPI) | 已部署(M0–M4:token / 白名單 / 管理端 / pfSense alias sync) |
| Google OAuth 雙通道 | 程式完成;等 Cloud Console 建 Web + Android 兩個 client 填 env 後重啟 server |
| 真機回饋 | v0.1.2 起「縮小」問題是否解決待確認(LogsScreen 有啟動追蹤可一鍵複製) |
| 正式域名反代 | 外部 /v1/* 尚 404(反代未接) |