Azure DevOps (vsts) 自托管代理上的 ADB RSA 密钥指纹更改
ADB RSA key fingerprint changes on Azure DevOps (vsts) self hosted agent
我有一个 VSTS/Azure DevOps 自托管代理 运行ning 作为服务 在一台机器上 Android 设备通过 USB 连接我想与 ADB 一起使用。
在构建期间,命令行任务调用 ADB 命令。我遇到一个问题,当有人登录机器时,设备会未经授权。我观察到的是
- 在没有人登录机器的情况下,我插入 Android 设备并得到允许 USB 调试的提示并选中始终允许框并单击确定
- 正确构建 运行 并且 ADB 命令有效
- 一段时间后,有人登录了机器,设备对他们来说未获授权
- 在发送 ADB 命令时的下一个构建过程中,我再次收到带有不同 RSA 密钥指纹的提示
这似乎与 相似,但他们的问题是针对 docker/gitlab-ci。
要解决此问题,您需要创建一个系统范围的 ADB 密钥并告诉 ADB 它在哪里使用 ADB_VENDOR_KEYS 环境变量。
ADB_VENDOR_KEYS 被描述为以冒号分隔的键(文件或目录)列表。您应该能够将它设置为一个目录,但我当时只能让它与一个文件一起工作。由于 ADB 在服务中 运行,因此将其设置为 系统环境变量 而不是用户环境变量非常重要。
设置步骤为
- 通过运行宁
adb start-server
或adb devices
创建一个adbkey。他们的关键是
位于 C:\Users\<yourname>\.android
。如果您已经运行正在使用 adb(可能是这种情况),adb 服务器将已经启动并且已经创建了一个密钥。
- 创建文件夹如
C:\adb_keys
并将密钥复制到此文件夹
- 添加名为 ADB_VENDOR_KEYS 的系统环境变量,其值为
C:\adb_keys\adbkey
或在上一步中放置密钥的位置。
- 授权USB调试连接。下面的步骤可能有些矫枉过正,但应确保不会遇到障碍。
- 关闭并重新打开命令提示符(或重新启动计算机)才能使用新的环境变量
- 拔下设备
- 终止 ADB 服务器。
adb kill-server
- 撤销设备上的USB调试授权。设置 > 开发者选项 > 撤销 USB 调试授权。
- 在设备上禁用并重新启用 USB 调试
- 插入设备
- 启动亚行服务器。
adb start-server
或 adb devices
- 接受 "Allow USB debugging?" 并选中 "Always allow from this computer" 复选框
重新启动计算机并排队使用 ADB 的新构建,一切正常。
我有一个 VSTS/Azure DevOps 自托管代理 运行ning 作为服务 在一台机器上 Android 设备通过 USB 连接我想与 ADB 一起使用。
在构建期间,命令行任务调用 ADB 命令。我遇到一个问题,当有人登录机器时,设备会未经授权。我观察到的是
- 在没有人登录机器的情况下,我插入 Android 设备并得到允许 USB 调试的提示并选中始终允许框并单击确定
- 正确构建 运行 并且 ADB 命令有效
- 一段时间后,有人登录了机器,设备对他们来说未获授权
- 在发送 ADB 命令时的下一个构建过程中,我再次收到带有不同 RSA 密钥指纹的提示
这似乎与
要解决此问题,您需要创建一个系统范围的 ADB 密钥并告诉 ADB 它在哪里使用 ADB_VENDOR_KEYS 环境变量。
ADB_VENDOR_KEYS 被描述为以冒号分隔的键(文件或目录)列表。您应该能够将它设置为一个目录,但我当时只能让它与一个文件一起工作。由于 ADB 在服务中 运行,因此将其设置为 系统环境变量 而不是用户环境变量非常重要。
设置步骤为
- 通过运行宁
adb start-server
或adb devices
创建一个adbkey。他们的关键是 位于C:\Users\<yourname>\.android
。如果您已经运行正在使用 adb(可能是这种情况),adb 服务器将已经启动并且已经创建了一个密钥。 - 创建文件夹如
C:\adb_keys
并将密钥复制到此文件夹 - 添加名为 ADB_VENDOR_KEYS 的系统环境变量,其值为
C:\adb_keys\adbkey
或在上一步中放置密钥的位置。 - 授权USB调试连接。下面的步骤可能有些矫枉过正,但应确保不会遇到障碍。
- 关闭并重新打开命令提示符(或重新启动计算机)才能使用新的环境变量
- 拔下设备
- 终止 ADB 服务器。
adb kill-server
- 撤销设备上的USB调试授权。设置 > 开发者选项 > 撤销 USB 调试授权。
- 在设备上禁用并重新启用 USB 调试
- 插入设备
- 启动亚行服务器。
adb start-server
或adb devices
- 接受 "Allow USB debugging?" 并选中 "Always allow from this computer" 复选框
重新启动计算机并排队使用 ADB 的新构建,一切正常。