こんにちは。
開発部 第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が表示されない不具合がある模様。。
- https://stackoverflow.com/questions/76851701/app-inspection-not-found-in-android-studio-giraffe
- https://issuetracker.google.com/issues/271871287
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に各情報を記載
- Nameを変更(必要なら)
- 下記項目を記述
- Protocol
- Host URL
- Port(指定があれば)
- Path
- Query(必要があれば)
- GETのみ有効?
- Method
- POST もしくは GETのみ(選択ができない)
- Ruleの雛形作成はこれで完了
- レスポンス上書き
- Rule Detailsエリアをスクロールし、Body rulesを表示
- +ボタンを押すと下記のダイアログが表示される
Replace entire bodyにチェックを入れ、Replace withに書き換えるレスポンスを書いて、OKを押す
※サンプル
RulesのActiveチェックボックスにチェックを入れる
アプリを起動させ、APIの呼び出しが行われる操作を行い、レスポンスが書き変わっているのを確認
※この時のアプリ起動は、Android Studioからの起動だけではなく、エミュレータ、もしくは、端末から直接起動でもOK
まとめ
APIのレスポンスの改竄は、他のツール(mitmproxy, Charles)などを使えば今までもできていましたが、それが、Android Studio単体でできるようになったのは非常に助かる。
気になった点
- ステータスコードの書き換えもできるようなのですが、私が試した際にはうまく動きませんでした。。。
- レスポンスの書き換えで、正規表現が使えるようなのですが、こちらもうまく動作せず、全項目の書き換えでしかうまく動きませんでした
- リスエストの書き換えに関しては、Query項目があるので、GETでのリクエストは対応できそうでしたが、POSTは確認できず。。。