アイリッジ開発者ブログ

アイリッジに所属するエンジニアが技術情報を発信していきます。

Network Inspectorの勧め

こんにちは。
開発部 第1グループの中島です。
今回は、Android Studioに搭載されているNetwork Inspectorというツールがちょっと便利になった話を書いていこうと思います。

概要

Android Studio FlamingoからNetwork Inspectorの機能が拡張されて、便利な使い方ができるようになりました。
https://developer.android.com/studio/debug/network-profiler?hl=ja

※Android Studio GiraffeでApp Inspectorが表示されない不具合がある模様。。

Network Inspectorとは

Android Studio Electric EleからApp Inspectionに追加された機能。
Electric Eleでは、通信のトラフィックを確認したり、APIのリクエスト・レスポンスを確認することができました。
その機能がFlamingoで拡張され, APIのレスポンスが改竄できるようになりました。

環境

  • Android Studio Flamingo | 2022.2.1 以上
  • API レベル 26 以上を搭載したエミュレータまたは接続済みデバイス

使い方

1. Android Studioを起動し、App Inspectionを起動

※サイドバーにない場合は,

  • View > Tool Windows > App Inspection

2. App InspectionのNetwork Inspectorを選択

3. Rulesを選択

4. +ボタンを押して、新しいRuleを追加し、Rules Detailsに各情報を記載

  1. Nameを変更(必要なら)
  2. 下記項目を記述
    • Protocol
    • Host URL
    • Port(指定があれば)
    • Path
    • Query(必要があれば)
      • GETのみ有効?
    • Method
      • POST もしくは GETのみ(選択ができない)
  3. Ruleの雛形作成はこれで完了
  4. レスポンス上書き
    • Rule Detailsエリアをスクロールし、Body rulesを表示
    • +ボタンを押すと下記のダイアログが表示される

  • Replace entire bodyにチェックを入れ、Replace withに書き換えるレスポンスを書いて、OKを押す

    ※サンプル

  • RulesのActiveチェックボックスにチェックを入れる

  • アプリを起動させ、APIの呼び出しが行われる操作を行い、レスポンスが書き変わっているのを確認

    ※この時のアプリ起動は、Android Studioからの起動だけではなく、エミュレータ、もしくは、端末から直接起動でもOK

まとめ

  • APIのレスポンスの改竄は、他のツール(mitmproxy, Charles)などを使えば今までもできていましたが、それが、Android Studio単体でできるようになったのは非常に助かる。

  • 気になった点

    • ステータスコードの書き換えもできるようなのですが、私が試した際にはうまく動きませんでした。。。
    • レスポンスの書き換えで、正規表現が使えるようなのですが、こちらもうまく動作せず、全項目の書き換えでしかうまく動きませんでした
    • リスエストの書き換えに関しては、Query項目があるので、GETでのリクエストは対応できそうでしたが、POSTは確認できず。。。