wifiデバッグの件(2)

前回までのwifiデバッグの件

端末はT-01Cです。

default.propを編集したが、adb devicesで列挙されない。
ブリッジされるemulator-5554て、どんな契機で立ち上がっているの?
adb tcpip 5555
adb connect xxx.xxx.xxx.xxx:xxxx
をusb経由で仕込んでおくと繋がる。

--

解決しました。

adb tcpip 5555打っておくと、adb start-serverでemulatorが立ち上がる(もしくは内部接続される)ぽいので、
事前にbuild.propservice.adb.tcp.port=5555を追記しておく。
そうすることで、adb tcpip 5555などの事前有線(USB)仕込みが不要になりました。

build.prop追記後、再起動して検証。

>SET ADBHOST={IPアドレス}
>adb kill-server
>adb start-server
>adb devices

List of devices attached
emulator-5554   device

てな具合です。後は、adb shellなどブリッジは問題なく動作。
接続状態は以下の通り

#netstat
Proto Recv-Q Send-Q Local Address          Foreign Address        State
tcp        0      0 127.0.0.1:5037         0.0.0.0:*              LISTEN
tcp        0      0 0.0.0.0:5555           0.0.0.0:*              LISTEN
tcp        0      0 XXX.XXX.XXX:5555      XXX.XXX.XXX.XXXX:XXXX      ESTABLISHED

もちろん、wifiで繋げているので、sleep時にwifi切断する設定にしているとwifiデバッグ運用に支障をきたします。
設定->ワイヤレス設定->Wi-Fi設定->menu->詳細設定->画面消灯時のWi-Fi設定にて「画面消灯時にWi-Fiを切断する」を「画面消灯時にWi-Fiを切断しない」に変更しておきます。
あと、この設定では、逆にUSBデバッグが出来なくなります(USBデバッグではなくWifiデバッグしたいという設定なので問題はありませんけど)。
あと、もう不要かと、USBデバッグをOFFにしましたが、デバイス列挙されなくなります。設定画面ではUSBデバッグと明示してありますが、どうもデバッグ全般に効くみたいです。WifiデバッグでもUSBデバッグはONにしておく必要があります。
コードを読んでいないので、かなり黒箱的な観察記になってしまいましたが、外枠攻めとしてはこんなものかな。

後は、adbが使用している5037と5555の違いを学習して終わりかな。
adb kill-serverやadb start-server、adb devicesとかは5037に接続しているに違いないし、adb shellやらブリッジ先のサーバと通信する場合は5555に接続しているのは、よく分かりました。
emulator-5554の5554て、ポート番号ですよね。あの表記て、如何にも5554で待ちうけているみたいな印象を与えられるから混乱します。adb start-serverした時も、"starting it now on port 5037"てメッセージを吐くので、5037に接続するものと思い込み、5554とか5555の話が出てくると「え?5037はどこいった?」てなります。
すべては、浅はかな己が悪いのですが。
ここに全て記載されていました(笑
ブリッジ先のデバイスエミュレータは、emulator/device instancesと表現していますね。あれ、何と表現すればと思っていました。

そんな訳で、A500にもservice.adb.tcp.portを追記してあげたところ、無事にwifiブリッジ接続出来ました。結局のところ、ro.secureなどはadbdがroot権限起動するか否かなどに関与するだけという結果になり、default.propは弄らなくても別に良い感じです。
あの苦労を返して欲しいです。揮発でなければ、どんなに合理的に作業出来たか。

これで、USBを使わなくて良い環境になりました。
お疲れ様でした。