adb unauthorized device可能有用的解决方法

1.删除电脑中ADB生成的key file(adbkey&adbkey.pub),然后重启adb服务,自动重新生成这个文件

你的电脑中adbkey文件(无后缀名)和adbkey.pub(可能有可能没有)可能在C:\android或C:\Users\*username*\.android或C:\Windows\System32\config\systemprofile\.android这三个位置,我的文件在第二个位置,但可能因人而异。


首先你需要在这三个位置中的某一个里找到这两个文件然后删除。


然后打开adb.exe输入adb kill-server,完成后输入adb start-server,之后或许还需要输入adb shell,这时你的手机应该可以弹出一个授权框了,我的问题就是用这个方法解决的。


如果这个方法不成功,也可以试试点击手机上Revoke USB Debugging Authorizations(开发者选项内),移除所有usb调试权限后重新尝试。


2.电脑中没有adbkey或者adbkey.pub两个文件,修改环境变量或重装手机驱动

在电脑的用户环境变量中找到指向C:\Android的环境变量,删除它并重启电脑,尝试adb调试,此时你的手机应该能弹出授权框了。


若还不成功,可以尝试重装手机驱动。在设备管理器中找到你的手机(可能在便携设备中),右键属性,在属性窗口中你能找到驱动程序菜单,卸载驱动程序然后重启电脑,此时你的电脑应该在为你自动安装这一驱动,如果没有自动安装,也可以手动搜索安装。一切完成后尝试adb调试。


3.上面的方法一个都不成功,或者开发者选项中没有Revoke USB Debugging Authorizations,可以尝试在手机上手动建立adb_keys文件

这个方法来自上面第三个链接,要求你的手机有root权限并且刷入了自定义的recovery(如TWRP或TerminalEmulator)。我的手机没有root所以我没有尝试过这个方法,这一部分基本是原文的翻译,若有问题可以在原文论坛提问。


思路在于将手机授权调试时adb自动为你完成的事情(添加设备公钥)转为手动完成,因此也适用于授权虚拟设备。


当你的手机授权一台电脑adb调试权限的时候,安卓系统会将电脑上ADB提供的一个公钥写入手机上的一个叫做adb_keys的文件。这个文件位于/data/misc/adb/,格式是每一行一个key,这个key就是手机授权的电脑所提供的公钥。


因此,你可以选择手动创建一个adb_keys文件,或者如果你有另外一支授权了该电脑的安卓设备的话,也可以直接复制这个文件到你的手机中。


手动创建

首先你需要找到电脑上ADB公钥的位置,也就是上文所说的adbkey.pub文件,这个文件中只有一行编码。Windows一般在C:\Users\<my profile>\.android\adbkey.pub,Linux和OSX可能在~/.android/adbkey.pub。将adbkey.pub文件中仅有的一行编码复制并粘贴到手机上adb_keys文件的最后一行,如果没有这个文件就手动创建,最后设置文件权限chmod 0644并重启手机。


如果你想取消所有调试权限但手机上没有Revoke USB Debugging Authorizations这个选项,可以直接删除adb_keys文件。


复制另一台设备的adb_keys文件

很简单,在另一台已授权设备的/data/misc/adb/路径找到adb_keys并复制到要调试手机的相同位置即可。

————————————————

版权声明:本文为CSDN博主「Altair0110」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/Bathtub_Nicolas/article/details/105765729