# Android エミュレータ用の自動スクリプト

> Proxyman の自動スクリプトで、Android エミュレータに HTTP プロキシを設定し、Proxyman 証明書をインストールします。ワンクリックで HTTPS 通信をキャプチャできます。

## 1. 概要 {#1-whats-it}

HTTP プロキシを手動で上書きし、Android エミュレータに Proxyman 証明書をインストールして信頼させる作業は、手順が複雑でミスも起こりやすいものです。

Proxyman には、この作業を数秒で行う組み込みスクリプトが用意されています。**Certificate Menu → Install Certificate on Android → Emulators…** から開けます。

> **ヒント:** Proxyman 5.16.0 以降では、Proxyman 証明書をシステムレベルのストアにインストールできます。これにより、Android エミュレータのすべての HTTPS 通信を復号できるようになります。

> **備考:** Proxyman は、Google Play エミュレータと Google Play 以外のエミュレータの両方に対応しています。ワンクリックで上書きできます。詳しくは [google-play-android-emulator-with-magisk.md](https://proxyman.com/docs/ja/debug-devices/android-device/google-play-android-emulator-with-magisk) をご覧ください

![Override All Emulators と Install Proxyman VPN オプションにチェックが入った Proxyman の Android エミュレータセットアップガイド](https://proxyman.com/docs/assets/Screenshot%202026-01-10%20at%2019.29.46.jpg)

## 動画 {#video}

[API 36 の Android エミュレータで、ネイティブ Android アプリ（OkHttp）の HTTPS 通信をキャプチャ](https://www.youtube.com/watch?v=CWInB7gZj6g)

## 2. メリット {#2-benefit}

**ワンクリックで次の操作ができます：**

* **✅ 自動で** HTTP プロキシの上書き / 元に戻す
* **✅ 自動で** Proxyman 証明書をダウンロード、インストールし、システムレベルのストアで信頼させます。エミュレータのすべての HTTPS 通信を復号できます。（Proxyman 5.16.0 以降で利用可能）
* **network\_security\_config.xml** の設定は不要
* **✅** ミスが起こりにくく、数クリックで完了します

> **ヒント:** `adb` 経由で、Android エミュレータと Android の実機の両方に対応しています（Proxyman v5.19.0 以降のみ）

![Android エミュレータ上で動作する OkHttp アプリの、復号された HTTPS リクエストを表示する Proxyman のメインウィンドウ](https://proxyman.com/docs/assets/Capture_HTTPS_Android_Emulator_proxyman.jpg)

_Proxyman で Android エミュレータの HTTPS をキャプチャして復号_

* Proxyman 証明書をシステムレベルのストアにインストールします。

### ✅ Flutter / React Native アプリ {#-flutter--react-native-app}

Proxyman macOS 6.4.0 以降では、コードを変更することなく Flutter アプリの HTTPS 通信をキャプチャできます。

詳しくは [flutter.md](https://proxyman.com/docs/ja/debug-devices/flutter) のドキュメントをご覧ください。

## 3. 使い方 {#3-how-to-use-it}

1. `adb` コマンドがインストールされていることを確認してください。インストールされていない場合は、インストールしてください。

```bash
brew install android-platform-tools
```

2. Android Studio で Android アプリを開きます
3. Android Virtual Device Manager で新しいエミュレータを作成します。**Google Play イメージではないことを確認してください。必ず Google APIs イメージを選択してください。**

* ✅ NEW: Proxyman で Google Play Store のエミュレータをルート化できるようになりました。詳しくは [google-play-android-emulator-with-magisk.md](https://proxyman.com/docs/ja/debug-devices/android-device/google-play-android-emulator-with-magisk) をご覧ください

4. Proxyman で Certificate Menu → Install Certificate on Android → Emulators… の順に開き、Override All Emulators ボタンをクリックします
5. Terminal のスクリプトが完了するまで待ちます
6. Android Studio から Android アプリを再起動します
7. Proxyman がすべての HTTPS データをキャプチャします ✅

> **備考:** Proxyman を終了する場合は、必ず Revert All Changes ボタンをクリックしてください。そうしないと、Android エミュレータがインターネットに接続できなくなります。

## 4. ⚠️ Proxyman 5.15.0 以前 {#4-️-proxyman-5150-or-earlier}

* Proxyman 5.15.0 以前では、Proxyman 証明書をユーザーレベルでしかインストールできません。
* そのため、次の手順を完了する必要があります：
* ソースコードで次の対応を行います：
  * res/xml/network\_security\_config.xml を追加

```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 に追加します

<pre class="language-xml"><code class="lang-xml">&#x3C;?xml version="1.0" encoding="utf-8"?>
&#x3C;manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    &#x3C;uses-permission android:name="android.permission.INTERNET" />

    &#x3C;application
        android:networkSecurityConfig="@xml/network_security_config">
        &#x3C;activity
            ...
        &#x3C;/activity>
    &#x3C;/application>

&#x3C;/manifest>
</code></pre>

## 5. 上級：スクリプトを手動で実行 {#5-advanced-run-the-script-manually}

Privacy & Security（プライバシーとセキュリティ）で Automation の権限を許可しなくても、Terminal アプリで手動でスクリプトを実行できます。

### **スクリプトのパス：** {#script-path}

```bash
/Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh
```

* Proxyman 5.19.0 以降の場合

```bash
Usage: /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh -m <mode> [options]

Modes:
  all             Set proxy and install certificate
  proxy           Set proxy only
  revertProxy     Revert proxy settings only
  certificate     Install certificate only

Required Options based on Mode:
  -m, --mode <mode>              : Operation mode (all, proxy, revertProxy, certificate)
  -i, --ip <ip_address>          : IP address (required for all, proxy, certificate)
  -p, --port <port_number>       : Port number (required for all, proxy, certificate)
  -c, --cert <path_to_cert.pem>  : Path to Proxyman certificate (required for all, certificate)

Optional Options:
  --include-physical            : Include physical devices (default: only emulators)
  -h, --help                    : Show this help message
```

### 証明書を準備する {#prepare-the-certificate}

1. Proxyman アプリを開きます
2. メインツールバーで現在の IP アドレスを確認します
3. Certificate メニュー → Export → Root Certificate as PEM の順に選択し、デスクトップフォルダに保存します

### 5.1 HTTP プロキシを上書きし、証明書をシステムレベルのストアにインストール {#51-override-http-proxy-and-install-the-certificate-to-system-level-store}

* Proxyman v5.19.0 以降（新機能）

```bash
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh --mode all --ip <current_ip> --port <port> --cert <certificate_path>
```

* Proxyman v5.18.0 以前

```bash
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh all <current_ip> <port> <certificate_path>
```

### 5.2 HTTP プロキシのみを上書き {#52-only-override-http-proxy}

* Proxyman v5.19.0 以降（新機能）

```bash
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh --mode proxy --ip <current_ip> --port <port>
```

* Proxyman v5.18.0 以前

```bash
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh proxy <current_ip> <port> 
```

### 5.3 HTTP プロキシを元に戻す {#53-revert-http-proxy}

* Proxyman v5.19.0 以降（新機能）

```bash
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh --mode revertProxy
```

* Proxyman v5.18.0 以前

```bash
bash /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Resources/install_certificate_android_emulator.sh revertProxy
```

## 6. リーフ証明書の有効期限 {#6-left-certificate-expiry-date}

6.1 問題：Android WebView で HTTPS をインターセプトすると、次のエラーが表示されます

❗️ Android WebView が ERR\_CERT\_VALIDITY\_TOO\_LONG で接続を拒否します

Proxyman の Settings → General を開き、証明書の横にある **More** → **Leaf Certificate Expiry** を選択して、10 日間などより短い有効期限を選んでください。

![Proxyman の Settings（General）で、証明書の More メニューを開き、Leaf Certificate Expiry を 10 日間に設定した画面](https://proxyman.com/docs/assets/Screenshot%202026-08-28%20at%2014.28.54.jpg)

* 参考：[https://github.com/ProxymanApp/Proxyman/issues/2751](https://github.com/ProxymanApp/Proxyman/issues/2751)

## さらに詳しく {#learn-more}

* [API 35 の Android エミュレータから HTTPS 通信をキャプチャする方法](https://proxyman.com/posts/capture_https_android_emulators)
* [Android エミュレータ上の Flutter アプリから HTTPS 通信をキャプチャする方法](https://proxyman.com/posts/Capture-https-flutter-android-emulator)
* [Proxyman で Android エミュレータの HTTP/HTTPS 通信をキャプチャ](https://proxyman.com/android-emulator)（Proxyman の Web サイト）
