Files
dummyvpn-android/AGENTS.md
2026-04-28 22:15:45 +09:00

1.8 KiB

概要

アプリ名: DummyVPN ターゲットAPIレベル: 33 (Android 13) 言語: Kotlin UIフレームワーク: Jetpack Compose

DummyVPNは、実際にリモートのVPNサーバーと接続するのではなく、アプリで受けたパケットをただインターネットに中継するVPNアプリである。 そのためWi-Fiやモバイルネットワークへのパケット転送のみを行う。

画面一覧

メイン画面

シンプルかつモダンなデザインにする。まぶしい色は使わない(白は例外)。

VPNのオンオフボタン

ボタンのサイズはなるべく大きく分かりやすいようにする。 VPNが有効の場合は「ON」、無効の場合は「OFF」と表示する。 ONの場合はボタンの色を変えて、視覚的に分かりやすくする。

機能一覧

VPN機能

メインの機能。概要の通り、すべてのパケットを通常のネットワークに転送する。何も制御しない。 VPNはすべてのアプリに適用する。

通知での操作機能

VPNが有効の場合は、OSに通知を表示して動作している旨を表示する。 また、「停止」ボタンを設け、通知から本アプリのVPN機能を停止できるようにする。

動作

バックグラウンドサービスを使用して、アプリを離れても動作できるようにする。

コーディングの注意事項

  • 権限が必要な機能は、requestPermissionを使用してアプリの起動時にユーザーに権限付与のリクエストをする。
  • テストは作成しない。

技術的な事項

  • パケットのパススルーはtun2socksを使用する。 そのためローカルにSocksプロキシを作成する。 VPN開始時にSocksプロキシも起動し、停止時にプロキシも停止する。