Android デバイスとエミュレータ
デスクトップ版 Proxyman で Android デバイスとエミュレータの HTTP/HTTPS 通信をキャプチャします。プロキシ設定、証明書、自動スクリプト、Google Play イメージの手順を説明します。
このガイドでは、Android デバイスまたはエミュレータの通信を、お使いのパソコン上の Proxyman に送信する方法を説明します。プロキシの設定、証明書のインストール、HTTPS 検査のためのアプリの証明書の信頼について解説します。
お使いのデバイスに合ったセットアップを選択してください:
- Android の実機: 下記の手動セットアップに従ってください。デバイスは、ネットワーク経由で Proxyman を実行しているパソコンに接続できる必要があります。
- Android エミュレータ: まずは自動セットアップスクリプトをお使いください。
- Google Play エミュレータイメージ: Google Play と Magisk のガイドに従ってください。標準の自動セットアップでは、すべてのイメージには対応していません。
パソコンを使わずにスマートフォンで直接キャプチャするには、スタンドアロン版の Proxyman Android アプリをご利用ください。
デスクトップでキャプチャする場合は、Proxyman で対応するガイドを開いてください:
- Certificate Menu → Install Certificate on Android → Physical Devices…
- Certificate Menu → Install Certificate on Android → Emulators…
Android エミュレータの場合は、Android エミュレータ用の自動スクリプトをご覧ください
動画
1. Android セットアップガイド
手動でセットアップする場合は、まずデバイスのプロキシを設定し、次に証明書をインストールして、開発中のアプリで証明書の信頼を設定してください。証明書をインストールしただけでは、すべての Android アプリがその証明書を信頼するわけではありません。以下の手順をすべて実行してください:

Android デバイスのセットアップガイド
Certificate メニュー → Install Certificate on Android → Physical Devices… の順にガイドを開き、次の手順に従ってください:
- Mac に Root Proxyman Certificate をインストールします。macOS ガイドに従ってください。
- Android デバイスまたはエミュレータを用意し、Settings アプリを開いて Wi-Fi を選択し、接続中の Wi-Fi を選択します。下の表の値で HTTP プロキシを設定します。
| 項目 | 値 |
|---|---|
| サーバー IP | Mac の現在の IP アドレス |
| ポート | Proxyman の現在のポート。デフォルトは 9090 です |
| 認証 | なし |
一部の Samsung 製デバイスでは、HTTP プロキシを設定すると、インターネットに接続できなくなることがあります。その場合は、現在のネットワークを削除してから、再度接続してください。
VPN アプリを使用している場合は、必ず終了してください。一部の VPN アプリは HTTP/HTTPS プロキシの設定と競合するためです。
3. Android デバイスの Web ブラウザで http://proxy.man/ssl または http://cert.proxyman.io を開き、Proxyman 証明書をインストールします。
Android 11、Android 12 以降:
- Google Chrome アプリで http://proxy.man/ssl にアクセスし、証明書をダウンロードします。
- Android 11 以降では、Settings アプリで証明書を手動でインストールする必要があります。
- Settings アプリ → Security → Encryption & Credentials → Install a Certificate → "CA Certificate" を選択 → ストレージ内の Proxyman CA 証明書を選択
Android 10 以前:
- http://proxy.man/ssl にアクセスすると、Android デバイスが証明書を自動的にダウンロードしてインストールします。VPN and App Section を選択してください。
Android 12 以降で「Can't install the Certificate: This file can't be used as a VPN & app user certificate」という警告が表示された場合は、代わりに "CA Certificate" を選択してください。
http://proxy.man/ssl は、Proxyman 内蔵の HTTP サーバーが配信するローカルの Web サイトです。開けない場合は、Wi-Fi ネットワークを削除して再接続し、Proxyman アプリが開いていることを確認してください。
4. Android 11 以降では、証明書を確認します。Settings → Security → Encryption & Credentials → Trusted Credentials を開き、User タブを表示してください。
下のスクリーンショットのように、Proxyman CA 証明書が表示されていることを確認してください。
5. アプリのソースコードを開き、次の 2 つの xml ファイルを追加します。
- res/xml/network_security_config.xml を追加します
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
<certificates src="system" />
</trust-anchors>
</debug-overrides>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
- AndroidManifest.xml に追加します
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config" ... >
...
</application>
</manifest>
詳しくは Network Security Configuration を参照してください
これらの設定は、必ず Release ビルドから削除してください。削除しないと、Production ビルドで HTTP/HTTPS リクエストが傍受され、機密データが漏えいするおそれがあります。
6. Android エミュレータを使用している場合は、エミュレータを再起動してください
7. 完了 ✅
2. トラブルシューティング
デバイス接続のトラブルシューティングガイドの Android の項目をご覧ください。
3. Android サンプルプロジェクト
XML の設定でお困りの場合は、設定済みのシンプルなプロジェクトをご覧ください:
GitHub のリンク:https://github.com/ProxymanApp/OKHTTP-Android-Sample
4. React Native の Android アプリ
Android アプリで React Native を使用している場合は、React Native のページをご覧ください。
5. 埋め込み WebView の通信をインターセプト
アプリによっては、HTTPS 通信をインターセプトするために追加の手順が必要な、埋め込みの WebView があります。
- Android アプリで他の HTTPS 通信が表示されていることを確認してください。表示されていれば、証明書が正しく設定されていることを意味します。
- 次のコードを WebView に挿入します
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
// The following two lines help with disabling asset caching
webView.getSettings().setAppCacheEnabled(false);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
3. パソコンで新しい Chrome タブを開き、chrome://inspect にアクセスします
4. WebView を開くと、その WebView が Chrome タブに表示されます。inspect をクリックすると、リモートデバッガを使用できます。
6. ルート化したデバイスで SSL Proxying を使用
クレジット:Shirshak
Android 7 より前のバージョンでは、この手順は不要です。Android 7 以降では、Google が追加のセキュリティ機能を導入し、既定では中間者攻撃(MITM)ツールがアプリの通信を読み取れないようになっています。
端末のルート化によって生じた問題について、当社は一切の責任を負いません。このガイドは自己責任でご利用ください。
新しいバージョンの Proxyman では、証明書は ~/Library/Application Support/com.proxyman.NSProxy/app-data/proxyman-ca.pem に保存されます。Mac に ~/.proxyman フォルダが存在しない場合は、代わりにそのフォルダを使うか、Certificate メニュー → Export → Root Certificate as PEM から証明書をエクスポートしてください。
-
magiskフレームワークを使って端末をルート化します。 -
制限されたシステムフォルダ内のファイルをコピー&ペーストできるよう、ルート対応のファイルブラウザをインストールします。
-
コマンドラインで次のスクリプトを入力します
$ cd ~/.proxyman// We copy certificate to another file name just so we may need it later$ cp proxyman-ca.pem temp.pem$ hash=$(openssl x509 -inform PEM -subject_hash_old -in temp.pem | head -1)$ mv temp.pem "$hash.0" -
~/.proxymanフォルダに、名前が数字で始まり.0で終わるファイルが表示されます。 -
そのファイルを Android デバイスにコピーします。
-
ルート対応のファイルブラウザを使って、そのファイルを /system/etc/security/cacerts/ に移動します。
-
これで、プロキシ経由の通信を確認できます。
- Android スマートフォンでは、ゲートウェイに誤った IP アドレスを設定してください。こうすると、すべての通信が必ず Proxyman のプロキシを経由します。
- macOS のインターネット共有機能を使うと、モバイルホットスポットを作成できます。そうすると、Android スマートフォンから Proxyman のプロキシを簡単に使用できます。ルーターがスマートフォンと Mac の間のリクエストを遮断することがあるため、この方法の方が確実です。
追加のリソース
- mitmproxy には、Android エミュレータにシステムで信頼される CA 証明書をインストールする方法を解説した、役立つチュートリアルがあります。同じ手順は Proxyman の証明書にも使えます:https://docs.mitmproxy.org/stable/howto-install-system-trusted-ca-android/