Usb

アンドロイドUSBポートスイッチ



Android Usb Port Switch



はじめに:認証に合格するためにrndisポートを呼び出す必要がある韓国のクライアントがいます。この機能はSamsungの携帯電話で表示できますが、一般的なAndroidデバイスではこの機能が開かないため、Samsungが追加したと推定されます。

言うまでもありませんが、USBポート機能はかなり前に作成されていますが、ドライバーはそれがサポートされているかどうかを分析してから、対応するスイッチをオンにする必要があります。実装はファイルinit.qcom.usb.rcにあり、必要な関数をインターセプトします。



on property:sys.usb.config=rndis,serial_smd,diag,adb stop adbd write /sys/class/android_usb/android0/enable 0 write /sys/class/android_usb/android0/idVendor 05C6 write /sys/class/android_usb/android0/idProduct 90B6 write /sys/class/android_usb/android0/f_diag/clients diag write /sys/class/android_usb/android0/f_serial/transports smd write /sys/class/android_usb/android0/functions rndis,serial,diag,adb write /sys/class/android_usb/android0/enable 1 start adbd setprop sys.usb.state rndis,adb

ご覧のとおり、属性sys.usb.configが設定されている限り、以下の各命令が再度実行されます。 05c6 / 90B6はおなじみですか?コンピューターをリンクして、デバイスマネージャーを介して対応するポートを確認できます。
ここに小さな穴があります。つまり、設定が完了した後、システムはsys.usb.stateとsys.usb.configが等しいかどうかを確認し、等しい場合にのみ設定します。そうでない場合は復元されます。
したがって、実際に設定するのは、この属性値rndis、serial_smd、diag、adbではなく、rndis、adbです。

on property:sys.usb.config=rndis,adb setprop sys.usb.config rndis,${persist.sys.usb.config.extra},adb

ここでは、別のプロパティpersist.sys.usb.config.extraを追加し、それに対応する値を追加する必要があります。一番上の値に対応できます。つまり、persist.sys.usb.config.extra = serial_smd、diag