Изменения отпечатка ключа ADB RSA на агенте Azure DevOps (vsts), размещенном самостоятельно - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть собственный агент VSTS / Azure DevOps , работающий в качестве службы на компьютере с устройством Android, подключенным через USB, который я хотел бы использовать с ADB.

Во время построения задача командной строки вызывает команду ADB. У меня возникла проблема, когда устройство выходит из-под контроля, когда кто-то входит в систему. То, что я наблюдаю, происходит

  • Когда никто не вошел в компьютер, я подключаю устройство Android и получаю приглашение разрешить отладку по USB, отмечаю флажок всегда разрешать и нажимаю "ОК"
  • Сборки работают правильно, а команды ADB работают
  • Некоторое время спустя кто-то входит в систему, и устройство перестает быть им авторизованным
  • Во время следующей сборки, когда отправляется команда ADB, я снова получаю приглашение с другим отпечатком ключа RSA

Это похоже на Изменение отпечатка пальца RSA каждый раз, когда запускается новая сборка , но их вопрос для docker / gitlab-ci.

1 Ответ

0 голосов
/ 19 сентября 2018

Чтобы исправить это, вам нужно создать системный ключ ADB и сообщить ADB, где он использует переменную среды ADB_VENDOR_KEYS.

ADB_VENDOR_KEYS описывается как разделенный двоеточиями список ключей (файлов или каталогов). Вы должны иметь возможность установить его в каталог, но я смог только заставить его работать с файлом в то время. Поскольку ADB запускается в службе, очень важно установить ее как системную переменную среды , а не как переменную среды пользователя.

Установленные шаги:

  • Создайте adbkey, запустив adb start-server или adb devices. Ключ будет находится в 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. adb start-server или adb devices
    • Принять "Разрешить отладку по USB?" с установленным флажком «Всегда разрешать с этого компьютера»

Перезагрузите компьютер и поставьте в очередь новую сборку, использующую ADB, и все должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...