我正在开发一个应用程序(使用Eclipse + Android SDk/NDK),它使用Android手机上的micro-usb端口连接到外围设备。我试图通过WiFi(tcp端口5555)连接到手机上的ADB守护进程,这样我就可以在Eclipse中调试我的应用程序。但是,我就是不能让它工作。
我尝试的任何操作都不会导致电话上的ADB守护进程切换到TCPIP模式(从getprop
的输出看得出来),问题似乎是我无法在手机上设置相关的service.adb.tcp.port
属性,我使用的开发手机是LG GT 540,运行CyanogenMod 7.0.0(Android v2.3.3)。开发机器是运行OS X Lion的iMac。
以下是我尝试/确认/发现的一些相关信息:
- 手机已获得根目录(
ru.secure = 0
) - 通过USB连接ADB工作正常
- Mac上的adb服务以root(
adb root
)身份运行 adb shell
为我提供了一个具有超级用户访问权限的shell(# prompt、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
可在Mac和phone shell中运行(通过检查ADB守护进程是否停止以及getprop
是否为enable属性返回0来确认)setprop persist.service.adb.enable 1
在Mac和手机shell中运行良好(通过检查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不工作)
我是不是看得太仔细了,错过了一些明显的东西?互联网上有很多帖子和文章涉及到让亚行在TCP上工作的问题,但它们都涉及到电话生根问题。
有人能解释一下为什么我不能设置这个特定的属性,或者提出任何其他可能阻止ADB守护进程在TCPIP模式下运行的问题吗?
3条答案
按热度按时间ippsafx71#
您需要在电话上停止然后重新启动adbd,以使tcp port属性生效。
zlhcx6iw2#
对于任何设备(root或非root),它确实应该像这样简单:
1.连接到USB
1.运行
adb tcpip <port>
你会看到
restarting in TCP mode port: <port>
吐出终端,如果它工作。如果你什么也没看到,它没有。该属性由守护进程为您设置。告诉您设置属性并重新启动adbd的教程主要介绍需要在设备上执行的代码(即,如果您正在通过WiFi编写ADB应用程序)。
**然而,你提到你正在使用Cyanogenmod。**CM在开发者选项中没有“ADB over Network”设置(我发誓CM7中有)吗?我知道他们选择的端口是5555。如果你试图手动操作,可能会与该功能发生冲突。如果系统中有内置功能,最好使用该功能。
zte4gxcn3#
应用程序启动时添加1行。
这将在启动时重置adb!