Решение проблемОпубликовано: 3 мин чтения

Отладка по USB на Xiaomi: настройки безопасности и установка

Как решить проблемы ADB на Xiaomi, Redmi и POCO: включить «Отладка по USB (Настройки безопасности)» и «Установка через USB», исправить INSTALL_FAILED_USER_RESTRICTED.

На телефонах Xiaomi, Redmi и POCO с MIUI или HyperOS кроме обычной «Отладки по USB» есть ещё два переключателя. Без них ADB подключается, но часть функций не работает: приложения не устанавливаются, а нажатия и ввод текста с компьютера ни к чему не приводят. В этой статье показано, где эти переключатели и что значит каждая ошибка.

Шаг 1. Включите раздел «Для разработчиков»

  1. Откройте «Настройки» › «О телефоне».
  2. Нажмите семь раз на «Версия ОС» (HyperOS) или «Версия MIUI», пока не увидите «Вы стали разработчиком».
  3. Перейдите в «Настройки» › «Расширенные настройки» › «Для разработчиков».

Шаг 2. Три переключателя

ПереключательЧто разрешаетДля чего нужен
«Отладка по USB»Базовый ADB: shell, logcat, передача файловДля всего
«Установка через USB»adb install и установка APK с компьютераУстановка приложений
«Отладка по USB (Настройки безопасности)»Отправка нажатий, свайпов и клавиш, выдача разрешенийУправление экраном, автоматизация, ввод текста

Последние два требуют войти в Mi аккаунт, а на многих моделях при включении в телефоне должна стоять SIM-карта. Это правило Xiaomi, а не требование ADB. После включения они обычно остаются включёнными.

Ошибка INSTALL_FAILED_USER_RESTRICTED

adb: failed to install app.apk: Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]

Две причины:

  1. Выключена «Установка через USB». Включите её, как описано выше.
  2. Вы не подтвердили установку на телефоне. Когда «Установка через USB» включена, телефон для каждого APK показывает окно установки с обратным отсчётом. Разблокируйте телефон и нажмите «Установить», пока время не вышло.

Ошибка: нажатия и ввод не работают

Если включена только «Отладка по USB», экран можно транслировать, но ввод с компьютера отклоняется. Программы могут показать ошибку вроде:

java.lang.SecurityException: Injecting to another application requires INJECT_EVENTS permission

Включите «Отладка по USB (Настройки безопасности)», затем отключите и снова подключите телефон. Это касается scrcpy, ADBKit, Appium и всего остального, что отправляет ввод.

Ошибка: переключатель серый или просит SIM-карту

  • Вставьте SIM-карту, дождитесь сигнала сети и попробуйте снова.
  • Войдите в Mi аккаунт в «Настройки» › «Mi аккаунт».
  • Включите мобильный интернет или Wi-Fi, чтобы проверка аккаунта прошла.

Ошибка: телефон вообще не определяется

Это не настройка Xiaomi. Проверьте кабель, режим USB и драйверы по статье adb не видит телефон. На Windows установите USB-драйвер Xiaomi или Google USB Driver.

Xiaomi и ADBKit

  1. Включите все три переключателя.
  2. Откройте ADBKit в Chrome или Edge и подключитесь по USB или по Wi-Fi через агент ADBKit.
  3. Разблокируйте телефон и нажмите «Разрешить» в окне «Разрешить отладку по USB?».

Подсказки ADBKit по подключению для телефонов Xiaomi упоминают «Отладка по USB (Настройки безопасности)», потому что без неё живой экран отображается, но не реагирует на клики и ввод. Установка APK из ADBKit вызывает на телефоне то же подтверждение, что и adb install, поэтому держите телефон разблокированным.

Выключите, когда закончите

Настройки безопасности позволяют компьютеру управлять телефоном. Когда закончите тестирование, снова выключите «Отладка по USB (Настройки безопасности)» и «Установка через USB» или полностью отключите раздел «Для разработчиков».

Другие ошибки установки разобраны в статье ошибки adb install. Про экран загрузчика читайте режим fastboot на Xiaomi.