gpt4 book ai didi

android - Azure DevOps (vsts) 自托管代理上的 ADB RSA key 指纹更改

转载 作者:行者123 更新时间:2023-11-29 00:59:20 25 4
gpt4 key购买 nike

我有一个 VSTS/Azure DevOps 自托管代理作为服务运行在一台机器上,该机器通过 USB 连接了 Android 设备,我想将其与 ADB 一起使用。

在构建期间,命令行任务会调用 ADB 命令。我遇到一个问题,当有人登录机器时,设备会未经授权。我观察到的是

  • 在没有人登录机器的情况下,我插入 Android 设备并得到允许 USB 调试的提示,选中始终允许框并单击确定
  • 构建正常运行且 ADB 命令有效
  • 一段时间后,有人登录到机器,设备对他们来说未获授权
  • 在发送 ADB 命令的下一次构建过程中,我再次收到带有不同 RSA key 指纹的提示

这似乎类似于 RSA fingerprint change every time a new build is started ,但他们的问题是针对 docker/gitlab-ci。

最佳答案

要解决此问题,您需要创建一个系统范围的 ADB key 并使用 ADB_VENDOR_KEYS 环境变量告诉 ADB 它在哪里。

ADB_VENDOR_KEYS 被描述为以冒号分隔的键(文件或目录)列表。您应该能够将它设置为一个目录,但我当时只能让它与一个文件一起工作。由于 ADB 在服务中运行,因此将其设置为系统环境变量而不是用户环境变量非常重要。

设置步骤是

  • 通过运行 adb start-server 创建一个 adbkey或 adb devices .他们的关键是位于C:\Users\<yourname>\.android .如果您已经在运行 adb(可能是这种情况),adb 服务器将已经启动并且已经创建了一个 key 。
  • 创建一个文件夹,例如 C:\adb_keys并将 key 复制到此文件夹
  • 添加名为 ADB_VENDOR_KEYS 的系统环境变量,其值为 C:\adb_keys\adbkey或者在上一步中放置 key 的位置。
  • 授权 USB 调试连接。下面的步骤可能有些矫枉过正,但应确保不会遇到障碍。
    • 关闭并重新打开命令提示符(或重新启动计算机)以便能够使用新的环境变量
    • 拔下设备
    • 关闭 ADB 服务器。 adb kill-server
    • 撤销设备上的 USB 调试授权。设置 > 开发者选项 > 撤销 USB 调试授权。
    • 在设备上禁用并重新启用 USB 调试
    • 插入设备
    • 启动 ADB 服务器。 adb start-serveradb devices
    • 接受“允许 USB 调试?”选中“始终允许来自这台计算机”复选框

重新启动计算机并排队使用 ADB 的新构建,一切都应该正常工作。

关于android - Azure DevOps (vsts) 自托管代理上的 ADB RSA key 指纹更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52294951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com