Android setprop不';t设置根安卓手机上的属性

Android setprop不';t设置根安卓手机上的属性,android,Android,我正在开发一个应用程序(使用Eclipse+Android SDk/NDK),它使用Android手机上的micro usb端口连接到外围设备。我正在尝试通过WiFi(tcp端口5555)连接到手机上的ADB守护进程,以便在Eclipse中调试我的应用程序。然而,我就是不能让它工作 我尝试的任何操作实际上都不会导致手机上的ADB守护进程切换到TCPIP模式(通过查看getprop的输出可以看出)。问题似乎是我无法在手机上设置相关的service.adb.tcp.port属性。我使用的开发手机是运

我正在开发一个应用程序(使用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(#提示符、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和手机外壳上工作(通过检查adb守护进程停止和
    getprop
    为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的应用程序(如)也不起作用(
    tcp.port
    属性未设置,且ADB over tcp不起作用)
我是不是看得太仔细了,错过了一些明显的东西?互联网上有许多帖子和文章都与亚洲开发银行通过TCP工作的问题有关,但它们都与电话寻根问题有关


有人能解释为什么我不能设置这个特定属性,或者提出任何其他可能阻止ADB守护进程在TCPIP模式下运行的问题吗

您需要停止并重新启动手机上的adbd,tcp端口属性才能生效

  • setprop service.adb.tcp.port 5555
  • 停止adbd
  • 启动adbd
对于任何设备(根设备或非根设备),都应该简单到:

  • 连接到USB
  • 运行
    adb tcpip
  • 您将看到
    在TCP模式下重新启动端口:
    如果终端工作正常,请吐出终端。如果你什么也没看到,它就没有

    该属性由守护进程为您设置。指导您设置属性并重新启动adbd的教程主要关注需要在设备上执行的代码(即,如果您正在编写通过WiFi的ADB应用程序)


    但是,您提到您正在使用Cyanogenmod。CM在开发者选项中没有“ADB over Network”设置吗(我发誓它在CM7中有)?我知道他们选择的港口是5555。您可能在尝试手动执行时与该功能发生冲突。如果系统中有内置内容,最好使用它。

    1行在应用程序开始时添加

    setprop service.adb.tcp.port 5555 && stop adbd && start adbd
    
    这将在启动时重置adb