Android ADB始终为unautorized的解决
16lz
2021-01-23
现象
启动后连接ADB,始终无法连接,adb devices显示为没有授权,但是Android端又始终没有出现Debug权限确认的Dialog,让人疑惑不解,尝试了将Android端的Debug 认证记录取消,依然没有解决。
$ adb devicesList of devices attached16F7C5DEunauthorized
如果使用adb shell查看,那么也是说需要在Android端的对话框中确定接受:
$ adb shellerror: device unauthorized.This adb server's $ADB_VENDOR_KEYS is not setTry 'adb kill-server' if that seems wrong.Otherwise check for a confirmation dialog on your device.
但是实际上,从来就没有出现过询问是否接受PC key和调试的窗口。从后来的解决看,这个提示就是一个坑,让人走到了不正确的方向上。
再三确认了udev rules里面有对应的VID和PID,也确认了Android端的Debug开关因素。在XDA与google上面找了许久也没解决。
解决方案
最后发现是PC端的ADB配置问题,ADB需要在~/.android中配置一把,这里面有key,最为重要的是,需要将VID放入到这个文件中,例如下面的18d1就是Nexus(ASUS)的设备VID:
$ cat ~/.android/adb_usb.ini # ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.# USE 'android update adb' TO GENERATE.# 1 USB VENDOR ID PER LINE.0x27170x18d1
同时可以看到这个目录中有key相关的东西,原来前面提示的unautorized需要Android端确认,可是确认之前,PC端得生成一个key,并将public key发给Android端,Android设备才会弹出询问是否接受和保存debug PC key的对话框。 ls ~/.android/adbkey adbkey.pub adb_usb.ini
查看adbkey和adbkey.pub的内容可以了解到,其实这个和.ssh里面的key内容类似,一个public,一个private的非对称加密key。
更多相关文章
- 【Android Developers Training】 74. 序言:通过无线连接设备
- python获取android设备的GPS信息脚本分享
- adb 发送文件到Android设备和从Android手机复制文件
- Android获得所有存储设备位置最佳方式
- android输入子设备类型
- android之内容提供者解析
- 【Android Developers Training】 10. 序言:支持不同设备
- Android导入一个工程时提示 Invalid project description
- Android系统移植与调试之------->如何修改Android设备添加重启、