Android エミュレータで Android Debug Bridge (adb) を使う方法
この短いブログでは、Android Debug Bridge (adb) コマンドを使って、複雑な作業を数秒で実行する方法を紹介します。
1. Android Debug Bridge (adb) とは?
Android Debug Bridge は、Android デベロッパーが Android エミュレータと通信し、多くのコマンドを実行できる強力なデバッグツールです。
これを使うと、開発者は次のような複雑でミスが起きやすい作業を簡単に行えます。
- HTTP プロキシの上書きと解除
- Wi-Fi ネットワークのオン/オフ
- 証明書のインストールと信頼
- 起動中のアプリをすべて終了
- その他
コマンドラインで多くの作業を行えるため、アプリの UI/UX に集中する時間を増やせます。
詳しくは以下をご覧ください: https://developer.android.com/studio/command-line/adb
2. インストール
adb コマンドがまだインストールされていない場合は、次の手順で手動インストールできます。
1/ Homebrew をインストール
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
2/ adb コマンドをインストール
$ brew cask install android-platform-tools
詳しくは以下をご覧ください: https://stackoverflow.com/questions/31374085/installing-adb-on-macos
3. よくある作業
以下の作業はすべて、root 化された Android エミュレータが必要です。
Android エミュレータを root 化する
使用する Android エミュレータが Play Store 版ではなく、Google APIs 版であることを確認してください。

- Android Studio から Android エミュレータを開く
- 次のコマンドを実行
$ adb root
- デバイスが再起動するまで数分待ちます。
HTTP プロキシを上書きする
- Android エミュレータの HTTP プロキシを、IP 127.0.0.1 のポート 9090 に上書きします
adb shell settings put global http_proxy 127.0.0.1:9090
HTTP プロキシを元に戻す
- HTTP プロキシの設定はコマンドラインで上書きされているため、不要になったら必ず元に戻してください。戻さないと、Android エミュレータがインターネットにアクセスできなくなる可能性があります。
adb shell settings put global http_proxy :0
自己署名証明書をインストールして信頼する
- Android エミュレータに自己署名証明書をインストールして信頼させるのは手間がかかります。特に Android 11 以降では、システムで証明書を信頼させるための追加の手順が必要です。
以下のコマンドを使うと、この作業を自動で行えます。
# 1. Prepare your certificate
$ subjectHash=`openssl x509 -inform PEM -subject_hash_old -in my-certificate.pem | head -n 1`
$ openssl x509 -in my-certificate.pem -inform PEM -outform DER -out $subjectHash.0
# 2. Copy to Android Emulators
$ adb push ./$subjectHash.0 /data/misc/user/0/cacerts-added/$subjectHash.0
$ adb shell "su 0 chmod 644 /data/misc/user/0/cacerts-added/$subjectHash.0"
# 3. Restart your android emulator to take effect!
証明書が正しくインストールされ、信頼されているかは、次の場所で確認できます。
- 設定アプリ -> Security -> Encryption & Credentials -> Trusted Certificate -> User タブ
Wi-Fi ネットワークを有効にする
$ adb shell svc wifi enable
起動中のアプリをすべて終了する
- スクリプト closeall.sh を用意します
APPS=$(adb shell dumpsys window a | grep "/" | cut -d "{" -f2 | cut -d "/" -f1 | cut -d " " -f2)
for APP in $APPS ; do
echo "Closing: $APP"
adb shell am force-stop $APP
done
- スクリプトを実行します
./closeall.sh
4. Proxyman で ADB を使う
Proxyman 2.10.0 以降では、Android エミュレータ向けの Automatic Script が導入されました。これにより、複雑な作業を ワンクリック で実行できます。
次の作業を行います。
- HTTP プロキシを Proxyman に上書き
- 必要に応じて HTTP プロキシを元に戻す
- Proxyman の CA 証明書を自動でダウンロードし、Android エミュレータにインストールして信頼させる
Certificate メニューの Install Certificate on Android -> Emulator から実行できます。

詳しくは以下をご覧ください: https://proxyman.com/docs/debug-devices/android-device/automatic-script-for-android-emulator
現在の推奨方法
証明書を手動でコピーする前に、Proxyman の Automatic Script を使うことをおすすめします。最新バージョンでは、エミュレータのプロキシを設定し、Proxyman の証明書をシステムの証明書ストアにインストールできます。まず adb からエミュレータが見えているか確認し、対応している Google APIs のイメージを使用してください。作業が終わったら Revert All Changes を選択してください。これにより、Proxyman を終了した後も、エミュレータがインターネットに接続できます。
Proxyman は、iOS デバイス、iOS シミュレータ、Android デバイスの HTTPS 通信をキャプチャできる、高性能な macOS アプリです。
https://proxyman.com からダウンロードできます。

