AndroidフォンのマイクロUSBポートを使用して周辺機器に接続するアプリケーション(Eclipse + Android SDK/NDKを使用)を開発しています。Eclipse でアプリケーションをデバッグできるように、WiFi (tcp ポート 5555) 経由で電話の ADB デーモンに接続しようとしています。しかし、私はこれを機能させることができません。
電話のADBデーモンが実際にTCPIPモードに切り替わることはありません(の出力を見てわかる限りgetprop
)。service.adb.tcp.port
問題は、電話で関連するプロパティを設定できないことです。私が使用している開発用電話は、CyanogenMod 7.0.0 (Android v2.3.3) を実行している LG GT540 です。開発マシンは OS X Lion の iMac です。
私が試した/確認した/発見したことに関するいくつかの関連情報は次のとおりです。
- 電話はルート化されています (
ru.secure = 0
) - USB経由でADBに接続すると正常に動作します
- Mac 上の adb サービスは root として実行されています (
adb root
) adb shell
スーパーユーザーアクセス(#プロンプト、su、システムファイルを編集する機能など)を持つシェルを提供しますadb tcpip 5555
Mac のターミナル ウィンドウから実行した場合、不平を言ったりエラーをスローしたりしませんがservice.adb.tcp.port
、電話でプロパティを設定しません。setprop service.adb.tcp.port 5555
電話の端末ウィンドウの # プロンプトで入力しても、エラーが発生したりスローされたりすることはありませんが、service.adb.tcp.port
プロパティは設定されませんsetprop persist.service.adb.enable 0
getprop
Mac と電話シェルの両方から動作します (ADB デーモンが停止し、enable プロパティに対して 0 が返されることを確認することで確認されます)。setprop persist.service.adb.enable 1
Mac と電話シェルの両方から正常に動作します (ADB デーモンの開始を確認しgetprop
、enable プロパティに対して 1 を返すことで確認されます)。- 電話の ADB に関連する電話の唯一のプロパティは
persist.service.adb.enable
、init.svc.adbd
(ADB が実行されている場合)(getprop | grep adb
電話で確認) - Wifi 用に ADB を「自動的に」構成することを目的とした市販のアプリ ( WiFi ADBなど) も機能しません (
tcp.port
プロパティが設定されておらず、ADB over TCP は機能しません) 。
私はここで一生懸命探しすぎて、明らかな何かを見落としていますか? インターネット上には、ADB を TCP 経由で動作させる際の問題に関する投稿や記事が多数ありますが、それらはすべて電話のルート化に関する問題に関連しています。
この特定のプロパティを設定できないように見える理由や、ADBデーモンがTCPIPモードで実行されないようにしている可能性のある他の問題を提案できない理由を明らかにできる人はいますか?