setprop不会在root用户手机上设置该属性

时间:2012-04-11 21:48:13

标签: android

我正在开发一个应用程序(使用Eclipse + Android SDk / NDK),它使用Android手机上的micro-usb端口连接到外围设备。我试图通过WiFi(tcp端口5555)连接到手机上的ADB守护程序,所以我可以在Eclipse中调试我的应用程序。但是,我无法让这个工作。

我没有尝试实际上导致手机上的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为我提供了一个具有超级用户访问权限的shell(#prompt,su,编辑系统文件的能力等)
  • 从li上的终端窗口运行时,
  • adb tcpip 5555不会抱怨或抛出错误,但未在手机上设置service.adb.tcp.port属性
  • 在电话终端窗口的#提示符处输入的
  • setprop service.adb.tcp.port 5555不会抱怨或抛出错误但未设置service.adb.tcp.port属性
  • setprop persist.service.adb.enable 0适用于Mac和手机外壳(通过检查ADB守护程序停止确认,getprop为启用属性返回0)
  • setprop persist.service.adb.enable 1可以在Mac和手机shell中正常工作(通过检查ADB守护程序启动确认,getprop为启用属性返回1)
  • 手机上与手机上ADB相关的唯一属性为persist.service.adb.enableinit.svc.adbd(如果ADB正在运行)(通过手机上的getprop | grep adb确认)
  • 市场上声称自动'的应用程序为Wifi配置ADB(例如WiFi ADB)也不起作用(未设置tcp.port属性且TCP上的ADB不起作用)

我在这里看起来太难了,错过了一些明显的东西吗?互联网上有许多帖子和文章与ADB通过TCP工作的问题有关,但它们都与电话生根问题有关。

是否有人能够阐明为什么我似乎无法设置此特定属性或建议可能阻止ADB守护程序在TCPIP模式下运行的任何其他问题?

3 个答案:

答案 0 :(得分:0)

您需要在手机上停止然后重新启动adbd才能使tcp端口属性生效。

  • setprop service.adb.tcp.port 5555
  • 停止adbd
  • 启动adbd

答案 1 :(得分:0)

对于任何设备(根或不是),它应该像下面这样简单:

  1. 连接USB
  2. 运行adb tcpip <port>
  3. 如果有效,您会看到restarting in TCP mode port: <port>吐出终端。如果你什么也看不见,那就没有了。

    该守护程序为您设置了该属性。告诉你设置propery并重新启动adbd的教程主要关注需要在设备上执行的代码(例如,如果你是通过WiFi应用程序编写ADB)。

    但是,你提到你正在使用Cyanogenmod。 CM没有在开发者选项中设置“ADB over Network”(我发誓它在CM7中)?我知道他们选择的端口是5555.您可能会遇到与该功能的冲突,试图手动执行此操作。可能最好使用系统中内置的内容。

答案 2 :(得分:0)

在申请开始时添加1行。

setprop service.adb.tcp.port 5555 && stop adbd && start adbd

这会在开始时重置adb!