美文网首页
Android 设备 adb 授权过程

Android 设备 adb 授权过程

作者: sunrain_ | 来源:发表于2019-05-05 15:57 被阅读0次
    1. 在系统(Windows \ Ubuntu Linux)中运行 adb 服务。

      • Windows 需要为 ADB 安装 USB 驱动程序
      • Ubuntu Linux 则需要为想要在开发中使用的每一种设备类型添加一个包含 USB 配置的 udev 规则文件
      • 如果 adb 服务未运行,插入 Android 设备也不会弹出调试授权框。
    2. 首次启动 adb 服务时,会在本地生成一对密钥 adbkey(私钥)与 adbkey.pub(公钥)。当执行 adb shell 时,adb 服务会将当前 PC 的公钥(或公钥hash值)发送给 Android 设备。

      • 如果 android 上已经保存了这台 PC 的公钥,则匹配出对应的公钥进行认证,建立adb连接。
      • 如果 android 上没有保存这台 PC 的公钥,则会弹出调试授权框,点击了允许授权之后,android 就会保存这台 PC 的公钥。
      • 密钥保存在哪里?Windows 为例,首次启动 adb.exe 时,会在当前用户的目录下生成一个 .android 目录,其中adbkey 与 adbkey.pub 就在这里,adb.exe 会在启动时读取这两个文件,没有就重新生成。Android 设备上,PC 的公钥被保存在 /data/misc/adb/adb_keys 文件中。
    /system/core/adb/adb_auth_host.cpp 中可以看到相关代码
    1. 建立连接后,我们再执行 adb 命令,adb 服务会找出连接的设备发送数据,如果没有连接任何设备或模拟器,就会看到熟悉的error: no devices/emulators found提示了。
    /system/core/adb/transport.cpp

    参考链接:http://www.voidcn.com/article/p-bdqljcix-bkc.html

    相关文章

      网友评论

          本文标题:Android 设备 adb 授权过程

          本文链接:https://www.haomeiwen.com/subject/vcthoqtx.html