Android ADB始终为unautorized的解决

现象

启动后连接ADB,始终无法连接,adb devices显示为没有授权,但是Android端又始终没有出现Debug权限确认的Dialog,让人疑惑不解,尝试了将Android端的Debug 认证记录取消,依然没有解决。

<span style="font-size:18px;">$ adb devices
List of devices attached
16F7C5DE	unauthorized</span>


如果使用adb shell查看,那么也是说需要在Android端的对话框中确定接受:

$ adb shell
error: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try '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:

<span style="font-size:18px;">$ 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.
0x2717
0x18d1</span>
同时可以看到这个目录中有key相关的东西,原来前面提示的unautorized需要Android端确认,可是确认之前,PC端得生成一个key,并将public key发给Android端,Android设备才会弹出询问是否接受和保存debug PC key的对话框。
<span style="font-size:18px;">ls ~/.android/
adbkey  adbkey.pub  adb_usb.ini</span>

查看adbkey和adbkey.pub的内容可以了解到,其实这个和.ssh里面的key内容类似,一个public,一个private的非对称加密key。




评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值