Skip to content

feat: 支援 Brave、Edge、Firefox 帳號導入、讀取鎖突破與批量容錯 - #19

Open
Vaxaxas wants to merge 7 commits into
Mag1cFall:mainfrom
Vaxaxas:feat-brave-edge-firefox-import
Open

Vaxaxas wants to merge 7 commits into
Mag1cFall:mainfrom
Vaxaxas:feat-brave-edge-firefox-import

Conversation

@Vaxaxas

@Vaxaxas Vaxaxas commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

Summary

  • 支援 Brave、Edge 與 Firefox 瀏覽器帳號匯入,包含自動解析 Preferences 中 gaia_cookie Protobuf 多帳號清單 (/u/0 ~ /u/N)。
  • 實作 Windows DuplicateHandle 技術,突破瀏覽器開啟時 Cookies 與 Web Data 的獨佔讀取鎖 (Sharing Violation),無須關閉瀏覽器即可直接匯入。
  • 動態置換 Helper DLL 的 COM CLSID/IID 解鎖 Brave/Edge App-Bound (v20) 主金鑰,剝除 v20 AES-GCM 明文 32 位元組 Hash Header,並實作批量匯入單帳號容錯。

Test plan

  • 實機驗證 Brave / Edge / Chrome 運行中讀取鎖突破與 Cookies 解密
  • 驗證 gaia_cookie 多帳號解析出真實 Email 與 AuthUser 序號
  • 驗證批量匯入單一帳號失效不影響其餘帳號入庫
  • 前端 ESLint 與 Vitest 單元測試 (35/35 pass)
  • 後端 go test 全模組測試 pass 與全平台交叉編譯 (Windows/Linux/macOS)

🤖 Generated with Claude Code Best

fi and others added 7 commits October 25, 2026 13:19
- 擴充 Chromium 導入架構,支援 Brave 與 Microsoft Edge 的 Local State、Preferences 與 Web Data (token_service) / Network/Cookies
- 新增 Firefox 設定檔掃描與 cookies.sqlite 讀取,自動識別 Google/Gemini 核心登入 Cookie
- 支援 Windows 原生 DPAPI (CryptUnprotectData) 解密主金鑰與 Chromium v10 / v20 Token 及 Cookie
- 精確辨識執行中瀏覽器造成的 SQLite 排他鎖 (Sharing Violation),提示使用者關閉後重試
- 管理端 API 新增 GET/POST /api/accounts/import/browser,相容舊有 /api/accounts/import/chrome
- 管理端前端匯入頁面升級為多瀏覽器切換,帳號列表與詳情頁正確標註來源瀏覽器
- CLI setup 指令新增 --browser 旗標,未指定且未安裝 Chrome 時自動偵測並切換至本機已安裝瀏覽器
- 同步更新中英文 README 說明文件與多語系文案

Co-Authored-By: Claude Code <noreply@anthropic.com>
- 新增 gaia_cookie (last_list_accounts_binary_data) Protobuf 解析器,完整支援單一 Profile 登入多 Google 帳號探索
- 精確解析每個 Google 帳號的真實 Email、DisplayName、GaiaID 與 AuthUser 序號 (/u/0 ~ /u/N)
- 動態置換 abe_helper_amd64 DLL 中的 CLSID 與 IElevator IID,成功解鎖 Brave 與 Edge 的 App-Bound Encryption (v20) 主金鑰
- 匯入 Chromium Cookie 時自動傳遞對應的 authUser 序號,支援各帳號獨立呼叫 /u/N 官網介面
- 優化資料庫排他鎖 (Sharing Violation) 的錯誤提示,明確指引關閉瀏覽器後重試

Co-Authored-By: Claude Code <noreply@anthropic.com>
- Chromium v20 (App-Bound Encryption) 在 AES-GCM 解密後的明文開頭固定包含 32 位元組的 SHA256 驗證標頭
- 增加 isPrintableASCII 判斷,自動剝離前 32 位元組二進位雜湊,還原標準 Google Cookie 字串以通過登入檢驗

Co-Authored-By: Claude Code <noreply@anthropic.com>
- 實作 Windows DuplicateHandle 技術,當複製 Cookies 遭遇 Sharing Violation 獨佔鎖時自動啟用
- 從運行中的瀏覽器進程 (Brave, Chrome, Edge, Firefox) 安全複製檔案 Handle,無感讀取 Cookies 及 WAL 檔案
- 使用者無需關閉瀏覽器即可直接匯入帳號與認證資料
- 同步支援跨平台空實現

Co-Authored-By: Claude Code <noreply@anthropic.com>
- 僅在帳號 Email 相符時才標記為 Imported: true
- 避免同 Profile 下任一帳號匯入後導致同 Profile 所有其他帳號皆被誤判為已匯入

Co-Authored-By: Claude Code <noreply@anthropic.com>
- validateAndWriteImports 改為獨立驗證並寫入每個帳號,單個帳號連線或驗證失敗不中斷其餘帳號匯入
- 後端 ImportBrowser 回傳所有成功帳號清單與失敗詳情,避免單一失敗造成全體勾選無效
- 前端 ImportPage 即時更新已成功帳號,僅保留失敗項勾選並顯示部分成功 Toast 提示
- 多語系補充 importPartial 文案

Co-Authored-By: Claude Code <noreply@anthropic.com>
- 實作 browserRenewal:當非 OAuth 之瀏覽器帳號會話失效時,自動透過 DuplicateHandle 從運行中瀏覽器重讀最新 Cookie 並原子寫回磁碟,達成永久自動自癒
- Verify (重新連接) 觸發時自動先從本機瀏覽器同步最新 Cookie
- 移除匯入清單中因 imported 而被強制禁用的限制,支援直接勾選覆蓋更新,無需手動先刪除帳號

Co-Authored-By: Claude Code <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant