USB3接口下adb shell权限问题探究

8次阅读
没有评论

解决方案:解决USB3接口下adb shell无法运行的问题

问题陈述

一个开发人员表示,他在尝试通过ADB连接一块RK30SDK板子时遇到了一些困难。当他使用USB3接口进行连接后,只能成功进入设备的引导状态(如fastboot oem version-get能正常工作),而执行ADB shell命令却抛出了“Operation not permitted”的错误。

背景信息

  • RK30SDK是Rockchip公司的一款低成本开发板。
  • 问题主要发生在USB3接口,而转到USB2接口后情况有所改善。

发生的时间与地点

  • 在一次特定的实验过程中,该开发人员于某年12月30日分别在不同时间尝试了两次不同的连接方式(即USB2和USB3)。
  • 事件发生的具体时间和电脑环境均涉及一个名为“icebox”的设备或系统。

具体问题与症状

  • 开发人员使用adb devices确认设备已经连接,但在执行任何关于shell的命令时遇到了问题:比如输出包括”Operation not permitted”在内的错误信息。
  • 分别在USB2和USB3上实验显示了不同的结果:USB2口可以正常通过adb shell进入shell环境。

技术排查过程

开发人员进行了以下几步操作:
1. 确认板子是否正确连接,是否能被电脑识别和被fastboot模式检测。
2. 检查与ADB命令相关的日志信息。
具体输出如下面示例显示:

# 此为在USB3接口时的log
Dec 30 20:37:49 icebox colord: Device added: sysfs-rockchip-rk30sdk
...
Dec 30 20:38:03 icebox kernel: ... (其他日志)
[1153.038284] usb 9-1.1: ...
...(省略更多细节)

解决措施及效果

经过多番尝试后,开发人员发现转到USB2接口后,使用adb shell能够正常工作。这一行为可以解释为:相较于标准未完全遵守的USB3端口的驱动程序表现更加宽容。

总结与建议

解决此问题的一个有效途径是将设备连接至支持USB 2.0规范较为严格的非3.0接口,或进行更深层次的驱动代码审查以改进对不合规设备的支持处理。这一方式已由其他使用相同硬件配置(如Mac笔记本)的研究人员证实为可行。


注意事项:以上信息均基于特定事件和情境产生,实际应用时可能需要根据具体情况调整方法和手段。

正文完