setprop不会在root Android手机上设置属性

798qvoo8  于 2023-01-15  发布在  Android
关注(0)|答案(3)|浏览(210)

我正在开发一个应用程序(使用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.enableinit.svc.adbd(如果ADB正在运行)(由电话上的getprop | grep adb确认)
  • 市场上声称“自动”为Wifi配置ADB的应用程序(如WiFi ADB)也不工作(tcp.port属性未设置,ADB over TCP不工作)

我是不是看得太仔细了,错过了一些明显的东西?互联网上有很多帖子和文章涉及到让亚行在TCP上工作的问题,但它们都涉及到电话生根问题。
有人能解释一下为什么我不能设置这个特定的属性,或者提出任何其他可能阻止ADB守护进程在TCPIP模式下运行的问题吗?

ippsafx7

ippsafx71#

您需要在电话上停止然后重新启动adbd,以使tcp port属性生效。

  • 设置属性服务。adb。tcp。端口5555
  • 停止广告
  • 开始广告
zlhcx6iw

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。如果你试图手动操作,可能会与该功能发生冲突。如果系统中有内置功能,最好使用该功能。

zte4gxcn

zte4gxcn3#

应用程序启动时添加1行。

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

这将在启动时重置adb!

相关问题