如何在Android ADB主机设备中解决未经授权的ADB设备?

Kon*_*Ken 47 shell android adb

当我使用root用户设备作为ADB主机向三星S4发送adb命令"adb devices"时,我收到设备未经授权的错误消息.然而,当我尝试adb到三星Galaxy Nexus时,它工作正常.任何人都可以建议如何解决我的三星S4问题?

=========================================
# adb devices
List of devices attached
4d00f9169907301b        unauthorized
=========================================
Run Code Online (Sandbox Code Playgroud)

提前致谢.

编辑: 发现此问题仅发生在Android 4.2.2及更高版本上.以下链接解释了Google已实施一些使用adb的新安全功能.

http://nelenkov.blogspot.com/2013/02/secure-usb-debugging-in-android-422.html

感谢是否有人可以提供帮助.

ash*_*oke 51

  • 从客户端电话(adb主机)获取公钥

    cat /data/.android/adbkey.pub

  • 将上述公钥复制到目标手机的/data/misc/adb/adb_keys位置.(您可能需要先停止adb守护程序stop adbd)

    cat/data/misc/adb/adb_keys

验证两个cat输出是否匹配

尝试在目标上重新启动adb守护程序start adbd或重新启动它们.

如果您在上述步骤中读取或写入ADB KEYS时遇到问题,请尝试ADB_KEYS_PATH使用临时路径设置环境变量(例如:) /data/local/tmp.请参阅该链接,了解更多详情

    "On the host, the user public/private key pair is automatically generated,
    if it does not exist, when the adb daemon starts and is stored in
    $HOME/.android/adb_key(.pub) or in $ANDROID_SDK_HOME on windows. If needed,
    the ADB_KEYS_PATH env variable may be set to a :-separated (; under
    Windows) list of private keys, e.g. company-wide or vendor keys.

    On the device, vendors public keys are installed at build time in
    /adb_keys. User-installed keys are stored in /data/misc/adb/adb_keys"
Run Code Online (Sandbox Code Playgroud)

  • 1. 使用 ssh 将 `~/.android/adbkey.pub` 文件复制到 `/data/misc/adb/adb_keys`。2. 在设备上发出命令:`chmod 0640 /data/misc/adb/adb_keys`;`chown system:shell /data/misc/adb/adb_keys`, `chcon u:object_r:adb_keys_file:s0 /data/misc/adb/adb_keys`; `start adbd` 最后它在主机上使用默认的、未修改的 adb (4认同)

Pra*_*uis 36

选中并取消选中设备中的USB Debugging选项.如果这不起作用,请插拔USB并插入USB几次.

在某些时候,设备应显示一个消息框,要求您授权计算机.单击是,然后设备将被授权.

  • 我必须在我的计算机上执行“adb Kill-server”。然后拔掉 USB 线,等了 5 秒,插上,我的手机要求我*允许 USB 调试*。我检查了“确定”,然后它就起作用了(“未经授权”一词消失了)。 (3认同)
  • 这对我有所帮助,在插入设备的时候做了这个,我在手机上弹出一个弹出窗口,询问我是否想要信任PC,总是信任,现在我可以通过adb访问它 (2认同)

kir*_*tee 15

如果有人有类似的问题,手机屏幕破裂,需要访问adb:

  1. 根你的手机(我已经扎根了,所以至少我很幸运).

如果您忘记启用开发人员模式且您的adb未运行,请执行以下操作:

  1. 重新启动手机进入恢复状态.
  2. 用电缆连接手机.
  3. 打开终端.
  4. 如果键入adb devices,则应在列表中看到该设备.
  5. 如果是,请键入:

    adb shell mount /system
    abd shell
    
    echo "persist.service.adb.enable=1" >> default.prop 
    echo "persist.service.debuggable=1" >> default.prop
    echo "persist.sys.usb.config=mtp,adb" >> default.prop
    echo "persist.service.adb.enable=1" >> /system/build.prop 
    echo "persist.service.debuggable=1" >> /system/build.prop
    echo "persist.sys.usb.config=mtp,adb" >> /system/build.prop
    
    Run Code Online (Sandbox Code Playgroud)

现在,如果你要重新启动你的手机,机器人会告诉你"哦你的adb正在工作,但请点击这个OK按钮,这样我们就可以信任你的电脑".显然,如果我们无法点击手机保持在恢复模式并执行以下操作(假设您不在adb shell模式下,如果是第一种类型exit):

cd ~/.android
adb push adbkey.pub /data/misc/adb/adb_keys
Run Code Online (Sandbox Code Playgroud)
  1. 华友世纪,这一切都应该是笨拙的!只需重新启动手机,即可在手机运行时访问adb:

    adb shell reboot

PS正在使用OS X和Moto X Style,这是破碎的屏幕.


Tom*_*uba 8

你有没有尝试过

adb kill-server
adb shell
Run Code Online (Sandbox Code Playgroud)

有时adb卡住并首先杀死adb服务器,然后启动一些命令强制授权窗口弹出.

另外,请在手机上查看adb客户端版本.据我所知,这个功能是从adb 1.0.31支持的.


cwe*_*ske 7

不知道什么原因,我只拥有~/.android/adbkey,却没有~/.android/adbkey.pub

我猜想adb无法将公钥推送到设备,因此设备永远无法显示授权对话框。

杀死adb服务器,删除adbkey文件并adb重新启动后,手机上弹出授权对话框。


Mri*_*yay 6

尝试以下步骤:

  1. 拔掉设备插头
  2. adb 终止服务器
  3. adb 启动服务器
  4. 插头装置

弹出窗口时,您需要在设备中允许允许 USB 调试。


小智 5

体验:华硕ZENFONE

如果您根本遇到了Asus Zenfones缺少的驱动程序,请单击此链接(http://donandroid.com/how-to-install-adb-interface-drivers-windows-7-xp-vista-623

我尝试过

1)在adb cmd处终止并启动adb服务器。

2)打开和关闭USB调试并...

这就是我的工作。

步骤1:删除与设备的连接并关闭Eclipse

第2步:导航到C:/Users/User_name/.android/

步骤3:您将找到adb_key

步骤4:将其删除。

步骤5再次连接,系统会再次询问您。

步骤6。要求设备在提示时记住RSA密钥。我认为已经完成。

如果几天后您遇到相同的问题,只需禁用并启用USB调试