Fiddler + Android Thunderbolt Simulator + パケットをキャプチャできない問題を解決、私を見てください、問題をワンストップで解決、どこにいても記事を探す必要はありません

まえがき: この記事では、フィドラーがシミュレーターでデータ パケットをキャプチャする方法について説明します。本文についてはあまり触れません。

目次

環境準備:雷シミュレータ、フィドラー、adb

adb と fiddler のダウンロード アドレス:

 1. バイオリン弾きの設定

1. HTTPS: https トラフィックを復号化し、安全でない証明書を無視します

2. 接続設定: リモート コンピューター接続を許可します。

 3. ルート証明書のインストール: デスクトップ インストール証明書をエクスポートします。

 2. シミュレータの設定

1. ネットワーク設定: ブリッジドライバーのインストールとオープンブリッジ

 2. WLAN 設定: fiddler プロキシを設定します。

 3. 信頼証明書を設定します。 adb コマンドを使用して、インストールされた証明書をシステム ディレクトリに移動します。

ここから雷シミュレータの問題を直接解決します。上記はエラー処理であり、他のシミュレータが参照して解析できるようにします。

他の:

質問: fiddler thunderbolt シミュレーターはパケットをキャプチャできず、データを取得できませんか?


環境準備:雷シミュレータ、フィドラー、adb

adb と fiddler のダウンロード アドレス: fiddler+adb.zip - Lanzuoyun

アイデア: この記事で 99% 解決できます。問題を解くことよりも、フィドラー シミュレータのパケット キャプチャ問題の原理を理解してもらうことが重要ですので、参考までに考え方のフローチャートを以下に示します。

 1. バイオリン弾きの設定

1. HTTPS: https トラフィックを復号化し、安全でない証明書を無視します

2. 接続設定: リモート コンピューター接続を許可します。

クリックしてリモート コンピューター接続を許可し、[OK] をクリックして保存します

 3. ルート証明書のインストール: デスクトップ インストール証明書をエクスポートします。

デスクトップ上でエクスポートされた証明書をクリックしてインストールの次の手順に進み、インポートが成功するまですべてのデフォルトをクリックします。

 

 Fiddler の構成が完了したら、Fiddler を閉じて再起動します

 2. シミュレータの設定

1. ネットワーク設定: ブリッジドライバーのインストールとオープンブリッジ

 

 ブリッジドライバーをインストールすると、インストールは成功します。

インストールが完了したら、「設定を保存」をクリックして自動的に再起動します。 

 2. WLAN 設定: fiddler プロキシを設定します。

エミュレータ設定を開きます - WiFi メニューを開きます - WiFi 構成を変更します (一部のエミュレータには小さなペン変更キーがあり、一部のエミュレータではマウスを長押しすると「ネットワークを変更」と表示されます。これは同様で、自分で参照できます。コアは、Wi-Fi に接続されている手動エージェントを変更し、このマシンに IP を書き込み、フィドラー ソフトウェアで使用するポートを 8888 に書き込みます。ポートがフィドラーで占有されている場合は、ここで同じになるように変更します)、最後にクリックします。保存!

 2. 証明書のインストール: 物理マシン IP: 8888

エミュレータ ブラウザを開き、ポート 8888 に対応するようにアドレス バーに物理マシンの IP を入力します。つまり、プロキシの IP とポートを入力します。証明書のインストールページにジャンプします。

なぜこの方法で証明書をインストールするのか 1. 簡単で便利 2. 物理マシンとの接続が正常かどうかを偽装して検出できる

 画像は少し長いので、手順に従って気長にクリックしてください。

 3. 信頼証明書を設定します。 adb コマンドを使用して、インストールされた証明書をシステム ディレクトリに移動します。

サンダーボルトシミュレータを使用した直接観察

元の - ユーザー証明書ディレクトリ: /data/misc/user/0/cacerts-added/
新しい - システム証明書ディレクトリ: /system/etc/security/cacerts/

インストールされた証明書を移動しない場合、信頼できない証明書がここに表示され、頻繁にポップアップ表示されます (組織単位が fiddler のインストールであることがわかります)。

これは、エミュレータの root 権限を事前に有効にしておく必要があります。有効にしないと、su でユーザーを切り替えることができません (詳細はエミュレータによって異なります。エミュレータで有効にする必要がある root 権限もあれば、有効にする必要のない root 権限もあり、また、 su できない問題が発生した場合は、エミュレータの理由を探してください)

-------------------------------------------------- -------------エラー分析 ----------------------------------- -------------------
 次に、操作を続けて、/data/misc/user/0/cacerts-added/ の証明書ファイルを /system/etc/security に移動します。 /cacerts/ を使用して、信頼できる証明書にします。

# 进入adb shell 工具
adb shell

# 切换root用户
gracelte:/ $ su

# 查看用户证书安装的名称
127|gracelte:/ # ls /data/misc/user/0/cacerts-added/
e5c3944b.0

# 将用户证书挪至系统证书目录 /system/etc/security/cacerts/
gracelte:/ # mv /data/misc/user/0/cacerts-added/e5c3944b.0 /system/etc/security/cacerts/
mv: /system/etc/security/cacerts//e5c3944b.0: Read-only file system

証明書を /system/etc/security/cacerts/ に移動すると問題が報告されます。

エラー: mv: /system/etc/security/cacerts//e5c3944b.0: 読み取り専用ファイル システム

エラーの理由: /system は読み取り専用としてマウントされているため、どのように chmod しても、そのアクセス許可を変更できません。

解決策: 再マウント、マウント読み取り、書き込み、および実行権限

gracelte:/ $ su

# 重新挂载/system 文件夹
:/ #  mount -o rw,remount /system
mount: '/system' not in /proc/mounts

エラー: マウント: '/system' が /proc/mounts にありません

エラーの理由: Android 8.0 以降では、上記の mount コマンドを使用しても、/system で表されるノードと権限情報が見つかりません。これは、Android 8.0 以降、Google が A/B システム機能とシステム パーティションを追加したためです。は ramdisk パーティションと一緒にパッケージ化されているため、システムの起動後はシステム パーティションはありませんが、システム イメージは / ルート ディレクトリに直接マウントされます。したがって、/proc/mounts ファイルには、/system の権限情報は含まれません。

 エミュレータの Android バージョンを表示します。

# 进入adb shell 工具
adb shell

# 切换root用户
gracelte:/ $ su

# 查看安卓版本
gracelte:/ # getprop ro.build.version.release
9

                       

解決策: ディスクのロックを解除し、再度マウントします。

# 在windows窗口运行以下命令,不要进到adb shell 里面运行
D:\platform-tools> adb root

# 解锁分区(需要升级到最新版本adb,才有disable-verity工具)
D:\platform-tools> adb disable-verity

# 重新挂载,没加权限 表示rwx全部挂上
D:\platform-tools> adb remount

エラー: adb のバージョンが古い場合、次の情報が表示されます

networking:
  adb ppp <tty> [parameters]   - Run PPP over USB.
 Note: you should not automatically start a PPP connection.
 <tty> refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
 [parameters] - Eg. defaultroute debug dump local notty usepeerdns

adb sync notes: adb sync [ <directory> ]
  <localdir> can be interpreted in several ways:

  - If <directory> is not specified, both /system and /data partitions will be updated.

  - If it is "system" or "data", only the corresponding partition
    is updated.

environmental variables:
  ADB_TRACE                    - Print debug information. A comma separated list of the following values
                                 1 or all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp
  ANDROID_SERIAL               - The serial number to connect to. -s takes priority over this if given.
  ANDROID_LOG_TAGS             - When used with the logcat option, only these debug tags are printed.

理由: 古いバージョンの adb には disable-verity ツールキットが含まれていません

解決策: 最新の adb ツールをインストールします。

报错:fstab の読み取りに失敗しました。おそらく adb root を実行しますか?

理由: 9 つの Thunderbolt シミュレータがあり、これは直接インターフェイスされており、disable-verity を通じてディスクのロックを解除する必要はありませんが、他のタイプのシミュレータでも同様のこの機能が使用されるため、自分で決定してください。

解決策: エミュレータの設定で、ディスク管理により system.vmdk が書き込み可能になります。

-------------------------------------------------- -------------------------------------------------- -------------------------

ここから雷シミュレータの問題を直接解決します。上記はエラー処理であり、他のシミュレータが参照して解析できるようにします。

# 在windows窗口运行以下命令,不要进到adb shell 里面运行
D:\platform-tools> adb root

# 雷电模拟器,直接在设置打开磁盘写入功能

# 重新挂载,没加权限 表示rwx全部挂上
D:\platform-tools> adb remount

# 进入adb shell
D:platform-tools>adb shell

# 查看用户证书位置
gracelte:/ # ls /data/misc/user/0/cacerts-added/
e5c3944b.0

# 拷贝证书到目标文件夹
gracelte:/ # mv /data/misc/user/0/cacerts-added/e5c3944b.0 /system/etc/security/cacerts/

# Thunderbolt シミュレーター、設定でディスク書き込み機能を直接開きます

上記を設定した後、エミュレータとフィドラーを再起動してパケットをキャプチャします 

 

他の:

質問: fiddler thunderbolt シミュレーターはパケットをキャプチャできず、データを取得できませんか?

回答: 私の手順に従っている人もいますが、それでもパケットをキャプチャできません。エミュレータのバージョンに問題があるはずです。adb ツールを使用して、プロキシをグローバルにプッシュしてください。

# adb.exe shell settings put global http_proxy 本机ip:fiddler端口
adb.exe shell settings put global http_proxy 192.168.0.102:8888

おすすめ

転載: blog.csdn.net/weixin_43391813/article/details/130850778