android - 是否可以通过终端使用 adb 将 Android 设备 USB 系绳?

标签 android bash ubuntu adb tethering

我正在设置一些测试,它需要相当数量的手机进行 USB 连接和配置。一旦它们被绑定(bind),我已经成功地按照我想要的方式配置它们,但是每次(重新)启动我的计算机或移动测试库时,通过导航菜单来绑定(bind)手机会非常乏味.我目前使用的是运行 cyanogenmod v10.1.0 的 Nexus S 手机,但测试库可能是三星 Galaxy S4,可能与我手头的几部 Nexus S 手机混合使用。

我想以 bash 脚本的形式执行此操作,但我试图首先让它在命令行 (Ubuntu 13.04) 上运行,以消除可能来自脚本的问题。我应该能够自己处理将其制作成脚本,但如果以 bash 脚本的形式提供答案很简单,请这样做。我尝试对设备进行炮击 (adb -s $deviceID shell) 并运行:

setprop sys.usb.config rndis,adb

这会立即将我踢出设备外壳,并且无法再访问该设备。如果我运行 adb devices,我会看到手机显示“?????????? No Permissions”,此时我必须拔下 USB 数据线,然后重新插入,并使用 adb kill-server adb start-server 重新启动 adb 服务器。这将不起作用,因为我无法访问电话以进行我需要的配置更改。

我四处搜索,但一直找不到任何有用的东西。有什么建议吗?

最佳答案

必须有 root 权限才能使用 setprop 更改值,而且我使用的是没有 rndis 驱动程序的 Mac 操作系统,所以我无法测试您的 USB 网络共享方法。另一种方式,如果您有连接服务(adb shell 服务列表):

以下命令在 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 版本,将 34 替换为以下 setUsbTethering 每个 Android 版本的调用代码:

4.4.4: 34
5.1.0: 30
6.0.1: 30
7.0.0: 33

关于android - 是否可以通过终端使用 adb 将 Android 设备 USB 系绳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20226924/

相关文章:

java - 我在 listView 中有一个倒计时器,但工作不正常

bash - 为什么当我在 bash 中运行 ((a++)) && ((b++)) 时 b 并不总是改变它的值?

C 客户端服务器连接被拒绝

ubuntu - 如何检查 Elasticsearch 是否正在使用 CURL 运行?

linux - 使用 bash shell 脚本在 2 个字符串之间提取字符串

mysql - 如何在 MySQL 中插入 BLOB 和 CLOB 文件?

android - 持续在后台服务中获取位置更新

java - 为什么我的自定义 GridView 仅显示一列?

java - RecyclerView 从最后位置检索数据

bash - 循环两组文件