我正在设置一些testing,这将需要相当数量的手机被USB连接和configuration。 我已经成功地按照自己想要的方式configuration它们,但是通过浏览菜单来连接手机会非常繁琐,每次(重新)启动计算机或移动testing库。 我目前正在使用运行cyanogenmod v10.1.0的Nexus S手机,但testing银行可能是三星Galaxy S4的可能与我手上的less数Nexus S手机混合。
我想做一个bash脚本,但我试图让它在命令行(Ubuntu 13.04)第一次工作,以消除可能来自脚本的问题。 我应该可以自己处理成一个脚本,但如果提供一个答案作为bash脚本很简单,请做。 我尝试对设备进行adb -s $deviceID shell
( adb -s $deviceID shell
)并运行:
setprop sys.usb.config rndis,adb
这会立即将我踢出设备shell,并且设备不再可访问。 如果我运行一个adb devices
我把手机看作是“??????????没有权限”,在这一点上,我必须拿出USB电缆,然后重新插入,并重新启动adb服务器adb kill-server
adb start-server
。 这将无法正常工作,因为我无法访问电话以进行所需的configuration更改。
我一直在search,但一直没有find什么成果。 有什么build议么?
必须有根用setprop
改变值,而我是在一个没有rndis驱动程序的Mac OS上,所以我不能测试你的USB共享的方法。 另一种方法,如果你有连接服务( adb shell service list
):
以下命令在Android 4.3中调用ConnectivityManager.setUsbTethering(boolean enable)
:
adb shell su -c service call connectivity 34 i32 1
打开USB共享。
adb shell su -c service call connectivity 34 i32 0
关闭USB共享。
对于其他Android版本,请使用以下setUsbTethering
替代34
每个Android版本的拨打代码:
4.4.4: 34 5.1.0: 30 6.0.1: 30 7.0.0: 33
对于Android 5.0+(棒棒糖,棉花糖)使用:
adb shell su -c service call connectivity 30 i32 1
打开USB绑定
adb shell su -c service call connectivity 30 i32 0
关闭USB绑定
请记住,这需要根。
对于具有Fairphone Open OS的Fairphone 2(“没有Google的Android”版本,默认情况下未安装),您需要:
adb shell su -c "service call connectivity 31 i32 1"
adb shell su -c "service call connectivity 31 i32 0"