USBデバイスの偽のシリアル番号

USBデバイスの偽のシリアル番号

私の携帯電話はUSB経由でコンピュータに接続されています。

デバイス情報を表示するために使用する場合

sudo udevadm info --attribute-walk

製品とベンダーIDが正しく表示されますが、そうではありませんATTR{シリアル番号}。私が使用しているアプリ(Android adb)が正常に機能するためには、デバイスにシリアル番号を報告する必要があります。

たとえば、udevルールを使用してデバイスのシリアル番号を偽造する方法はありますか?

言う:問題はどうするかではありません。得るUSBデバイスのシリアル番号ですが、どのように置くシリアル番号。

USB経由でシリアル番号を報告しないAndroid携帯電話がありますが、adbツールはあまり好きではありません。まだ簡単な解決策はないようです。しかし、今では開発に適したAndroid携帯電話を購入するのは簡単です。

ベストアンサー1

まず、シリアル番号を報告しないデバイスが実際に問題であることを確認してください。adb devicesそのデバイスにアクセスする権限がない場合、シリアル番号は完全な疑問符で表示されます/dev/bus/usb/。また、adb はサーバーを起動するため、再調査するにはサーバーをシャットダウンする必要があるかもしれません。

さすがにデバイスの問題だと仮定して、すばやくadbのソースコードを確認してみました。デバイスからシリアル番号を直接読み取るregister_deviceと発生します。これを行うための呼び出し(libusbのソースコードの確認)は、sysfsまたはデバイスから直接取得されます。したがって、残念ながら、どのudevトリックも役に立ちません。core/adb/usb_linux.ccore/adb/usb_libusb.clibusb_get_device_descriptor

あなたのオプションは次のとおりです。

  • シリアル番号なしでadbを操作する方法を学びます。パッチされている可能性がありますadb(オープンソースです)。私はこれがStack Overflowに関する質問に近いと思います。
  • adbリクエストへの応答を偽にするためにカーネルusbfsドライバをパッチしました。これは私にパッチするよりはるかに難しいようです。
  • adbがlibusbを使用していると仮定し、syfsでシリアル番号の偽造を許可するようにカーネルをパッチしました。
  • 損傷したハードウェアを修理してください。

おすすめ記事