我有一个VSTS / Azure DevOps自托管代理作为服务运行,该计算机在要通过ADB与USB连接的Android设备上通过USB连接。
在构建期间,命令行任务会调用ADB命令。我遇到一个问题,当有人登录到计算机时,设备会变得未经授权。我观察到的是
这似乎类似于RSA fingerprint change every time a new build is started,但他们的问题是针对docker / gitlab-ci的。
答案 0 :(得分:0)
要解决此问题,您将需要创建一个系统范围的ADB密钥,并使用ADB_VENDOR_KEYS环境变量告诉ADB它在哪里。
ADB_VENDOR_KEYS被描述为以冒号分隔的键(文件或目录)列表。您应该可以将其设置为目录,但是当时我只能使它与文件一起使用。由于ADB在服务中运行,因此将其设置为系统环境变量而不是用户环境变量确实很重要。
设置步骤是
adb start-server
或adb devices
创建adbkey。他们的关键是
位于C:\Users\<yourname>\.android
中。如果您已经在运行adb(可能是这种情况),那么adb服务器将已经启动,并且密钥已经创建。C:\adb_keys
并将密钥复制到该文件夹C:\adb_keys\adbkey
或上一步中放置密钥的位置。adb kill-server
adb start-server
或adb devices
重新启动计算机,并排队使用ADB的新版本,一切正常。