Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BAKU Browser

Heliumフォークで作るプライバシー特化Androidブラウザ

Chromium 147 Helium fork Kotlin Android License: GPL v2

広告ブロック・指紋防御・コンテナ・拡張機能・カスタムリクエストを全部盛りにしたAndroidブラウザの設計仕様


概要

BAKU (バク) は Helium (Chromium 147 fork) を Android 向けにさらに拡張する個人プロジェクトです。Brave / Firefox / Vivaldi が提供する強力なプライバシー機能をひとつのアプリに統合し、リクエスト改造とフィンガープリント防御まで踏み込んだ「プライバシー全部入り」を目指します。

このリポジトリは設計仕様と実装方針の記録です。実装本体は Helium ツリー内 (約 100GB) に存在し、ここでは仕様 / アーキテクチャ / ハマりどころをまとめています。

⚠️ 現状ステータス: APK ビルドまで成功、起動経路で問題が残るため初回リリースはまだ。 詳細は TODO.mdLESSONS.md 参照。

特徴

カテゴリ 機能 状態
広告ブロック Brave風 Shields、フィルタリスト 7 種、要素ピッカー、サイト別ホワイトリスト 🟡 本体動作 / フィルタDL未配線
指紋防御 Canvas/WebGL/Audio/Font/HW/Screen/WebRTC/Battery/Plugins shim、3 段階強度 🟢 実装済
リクエスト改造 UA preset 10種+カスタム / Accept-Language / Referer policy / Client Hints / 任意ヘッダ追加 🟢 実装済
コンテナタブ Firefox風、コンテナごと UA / Header / FP 強度を変更 🟡 Cookie隔離は未実装
拡張機能 uBlock Origin / Tampermonkey / ModHeader を同梱 🔴 install経路は要追加実装
ジェスチャー エッジスワイプで戻る/進む/リロード/タブ切替 🟢 実装済
ユーザースクリプト Tampermonkey互換 @match、CSS 注入も可 🟢 実装済
履歴暗号化 Android Keystore AES-256-GCM、PBKDF2 600k iter 🔴 SQLCipher統合まで強制OFF
タブ管理 グループ + 6時間アイドルで自動 suspend、ピン留め対応 🟢 実装済
設定 検索可能、JSON 一括 export/import、工場リセット 🟢 実装済
ブックマーク フラットなタグ層、Auto-tag 規則、HTML/JSON IO 🟢 実装済
翻訳 Google Translate / DeepL ラッパー (要 API key) 🟢 実装済
その他 PWA、PiP、スクリーンショット (MediaStore Q+)、PDF、TabbedActivity 統合 🟢 実装済

凡例: 🟢 実装済 / 🟡 部分動作 / 🔴 未実装または stub

アーキテクチャ概観

flowchart TB
    Manifest["AndroidManifest.xml<br/>(BAKU activities + alias)"]
    Manifest --> IntroAct["BakuIntroActivity<br/>(起動アニメ + CommandLine bridge)"]
    Manifest --> SettingsAct["BakuMainSettingsActivity<br/>(設定ハブ)"]
    Manifest --> CCT["BakuCustomTabsForwardActivity<br/>(他アプリからのVIEW intent)"]

    IntroAct --> ChromeTabbed["ChromeTabbedActivity<br/>(Chromium本体)"]
    ChromeTabbed --> ActIntegration["BakuActivityIntegration.attach()<br/>(全機能のwiring起点)"]

    ActIntegration --> Gestures["BakuGestureAttacher<br/>(Window.Callback chain)"]
    ActIntegration --> JsInjector["BakuJsInjector<br/>(TabObserver + 4s polling)"]
    ActIntegration --> TabSuspend["BakuTabSuspendWorker<br/>(30分周期、daemon thread)"]
    ActIntegration --> ChromiumPrefs["BakuChromiumPrefs<br/>(reflection経由でPrefService)"]
    ActIntegration --> Shields["BakuShieldsManager<br/>(stats batch flush)"]

    JsInjector --> FpDefense["BakuFingerprintDefense<br/>(JS shim生成)"]
    JsInjector --> UserScripts["BakuUserScripts<br/>(Tampermonkey互換)"]
    JsInjector --> GeoOverride["BakuGeoOverride<br/>(緯度経度偽装)"]

    CppLayer["chrome/browser/baku/<br/>(C++ throttle + JNI bridge)"]
    CppLayer --> Throttle["BakuRequestThrottle<br/>(URLLoaderThrottle)"]
    CppLayer --> ExtLoader["BakuExtensionLoader<br/>(CRX scan)"]
    CppLayer --> HistGuard["BakuHistoryGuard<br/>(Profile shutdown observer)"]
    CppLayer --> StorageBridge["BakuStoragePartitionBridge<br/>(Container Cookie isolation - stub)"]
    CppLayer --> ExtraParts["ChromeBrowserMainExtraPartsBaku<br/>(PostProfileInit hook)"]

    BUILDgn["BUILD.gn<br/>(chrome/android + chrome/browser/baku)"]
    BUILDgn -.- ActIntegration
    BUILDgn -.- CppLayer
Loading

詳細は ARCHITECTURE.md

ドキュメント

ファイル 内容
SPEC.md 全機能の詳細仕様 (UI / 設定キー / JS shim / 暗号方式まで)
ARCHITECTURE.md Kotlin 層 / C++ 層 / JNI / Manifest 構造
BUILD.md WSL2 でのビルド手順
TODO.md 未実装項目と既知の制限
LESSONS.md 開発中ハマったポイント (Werror系警告、resource衝突、起動経路issue 等)

技術スタック

技術
ベース Helium (imputnet/helium-android) — Chromium 147 fork
言語 Kotlin 2.0 + Java 21 + C++23
ランタイム Android API 29+ (target 36)
ビルド GN + Siso (ninja互換) on WSL2 Ubuntu 24.04
署名 apksigner v3 + zipalign
native bridge jni_zero (@JNINamespace / @NativeMethods)

Attribution

ライセンス

GPL-2.0 (Helium / Chromium 由来の継承)。詳細は LICENSE を参照。

About

Heliumフォーク (Chromium 147) で作る予定のAndroidブラウザ — 広告ブロック・指紋防御・コンテナ・拡張機能・カスタムリクエストを全部盛り、設計仕様

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors