Корень ADB не работает на эмуляторе (не может работать от имени root в производственных сборках)

Я только что обновил эмулятор 26.0.3, теперь я не могу запустить команду adb root для нового созданного эмулятора.

приведенная ниже ошибка:

adbd cannot run as root in production builds

Я убил и перезапустил adbd как:

adb kill-server
adb devices

Ничего не помогает, любые идеи?


Я не уверен, в чем разница и как выбрать другую сборку, но, если во время создания включены следующие настройки, тогда он имеет root. введите описание изображения здесь

Ответ 1

[Кредит принадлежит @Merk, но это должно быть опубликовано как ответ, а не комментарий.]

Чтобы включить root-доступ, используйте изображение эмулятора, например

API-интерфейс Google API Intel x86 Atom Image

не

Изображение системы Intel X86 Atom для Google Play

Чтобы протестировать его, запустите adb root. Он должен сказать:

перезапуск adbd как root

или же

adbd уже запущен как root

не

adbd не может работать как root в производственных сборках

Кроме того, чтобы протестировать его, запустите adb shell, и если приглашение закончится с $, запустите su. Вы должны получить приглашение #.

Шаги. Чтобы установить и использовать образ эмулятора, который может работать от имени пользователя root:

  1. В Android Studio воспользуйтесь командой меню " Инструменты" > " Диспетчер AVD".
  2. Нажмите кнопку +Create Virtual Device....
  3. Выберите виртуальное оборудование.
  4. Выберите системный образ. Выберите любой из них:

    Изображение системы Intel x86 Atom

    Системный образ Intel x86 Atom_64

    API-интерфейс Google API Intel x86 Atom Image

    Google API. Системный образ Intel x86 Atom_64.

    (НЕ выбирайте "Google Play... System Image". Это те, которые не могут выполняться как root.)

  5. Если необходимо, нажмите кнопку " Загрузить".
  6. Завершите создание нового AVD.
  7. Запустите новый AVD.

Ответ 2

Вы используете неправильное изображение эмулятора, если хотите получить доступ root. Как указано в сообщении об ошибке, root не допускается в производственных сборках, вместо этого используйте сборку userdebug.