Ошибка «Failure: not installed for 0» появляется в терминале при попытке установить приложение через adb install или pm install и означает, что пакетный менеджер Android отклонил установку для пользователя с идентификатором 0 — то есть для основного профиля владельца устройства. Само сообщение не содержит кода причины, поэтому диагностику приходится вести по косвенным признакам: состоянию пакета, настройкам установки из неизвестных источников и ограничениям текущего пользователя.
Чаще всего сбой встречается при установке split APK (наборов .apks, .xapk, .apkm), при попытке поставить приложение, которое уже есть в системе с другой подписью, либо когда в прошивке заблокирована установка из ADB. Ниже — безопасный порядок проверки, который не требует root-доступа и не затрагивает системные разделы.
Что означает сообщение «not installed for 0»
Цифра 0 в тексте ошибки — это идентификатор пользователя Android. В многопользовательской модели системы основной владелец всегда имеет ID 0, дополнительные профили и рабочие профили получают номера 10, 11 и далее. Команда pm install по умолчанию пытается установить пакет именно для пользователя 0, и если установка невозможна, менеджер пакетов возвращает именно такую формулировку.
Важно понимать: это не отдельный код ошибки, а обобщённый ответ. Полный текст в терминале обычно длиннее и содержит уточнение в квадратных скобках, например Failure [INSTALL_FAILED_USER_RESTRICTED] или Failure [INSTALL_FAILED_INVALID_APK]. Именно уточнение в скобках указывает настоящую причину, поэтому первым делом перечитайте весь вывод команды, а не только последнюю строку.
- 🔍 INSTALL_FAILED_USER_RESTRICTED — установка через ADB запрещена настройками прошивки или профиля.
- 📦 INSTALL_FAILED_INVALID_APK — файл повреждён, неполный или это не базовый APK из набора.
- 🔐 INSTALL_FAILED_UPDATE_INCOMPATIBLE — приложение уже установлено с другой цифровой подписью.
- 👤 INSTALL_FAILED_MISSING_SHARED_LIBRARY и подобные — не хватает системных компонентов для этого пакета.
Быстрая диагностика: с чего начать проверку
Прежде чем менять настройки, выполните три коротких проверки. Во-первых, убедитесь, что устройство видно в ADB: команда adb devices должна показать серийный номер со статусом device, а не unauthorized или пустой список. Во-вторых, проверьте, не установлено ли приложение уже: adb shell pm list packages с фильтром по имени пакета покажет его наличие.
В-третьих, посмотрите полный лог установки. Команда adb logcat во время попытки установки часто выводит строку с тегом PackageManager, где причина указана подробнее, чем в консоли. Это особенно полезно, когда терминал выдаёт усечённое сообщение.
adb devices
adb shell pm list packages | findstr имя_пакета
adb install -r -d путь_к_файлу.apk
Флаг -r разрешает переустановку поверх существующей версии, а -d — понижение версии, если прошивка это допускает. Если и с этими флагами приходит отказ, значит, дело не в конфликте версий, и нужно копать глубже.
Причина 1: установка из ADB заблокирована настройками
На ряде прошивок — прежде всего MIUI и HyperOS от Xiaomi — установка приложений через USB по умолчанию ограничена. В настройках для разработчиков присутствует отдельный переключатель, который часто называется «Установка через USB» (Install via USB). Пока он выключен, любая команда adb install завершится отказом с ограничением для пользователя 0.
Необходимо открыть Настройки → Для разработчиков и активировать этот переключатель. На некоторых прошивках система потребует вход в аккаунт производителя и подтверждение по SMS — это ограничение самой прошивки, обойти его штатными средствами нельзя. Точное название и расположение пункта зависят от версии оболочки, поэтому сверяйтесь с документацией своей модели.
⚠️ Внимание: не включайте одновременно опции вроде «USB debugging (Security settings)» без понимания последствий — они расширяют права ADB вплоть до имитации нажатий, что снижает защиту устройства при подключении к чужому компьютеру.
Причина 2: конфликт подписей и уже установленная версия
Android отказывается обновлять приложение, если новый APK подписан другим сертификатом, чем установленный. Типичный сценарий: на устройстве стоит версия из Google Play, а вы пытаетесь поставить сборку с другого источника или модифицированный вариант. Пакетный менеджер трактует это как потенциальную подмену и блокирует установку.
Проверить конфликт можно, удалив текущую версию командой adb uninstall имя.пакета и повторив установку. Учтите: удаление сотрёт данные приложения. Если удалять нельзя, единственный легальный путь — ставить сборку, подписанную тем же ключом, то есть из того же источника, что и установленная версия.
| Ситуация | Признак в выводе | Что делать |
|---|---|---|
| Запрет установки через USB | USER_RESTRICTED | Включить «Установку через USB» в настройках разработчика |
| Конфликт подписей | UPDATE_INCOMPATIBLE / SIGNATURES_DO_NOT_MATCH | Удалить старую версию или ставить сборку с той же подписью |
| Split APK вместо одиночного | INVALID_APK / неполный набор | Устанавливать весь набор частей одной командой |
| Повреждённый файл | INVALID_APK / PARSE ошибка | Скачать APK заново, проверить целостность |
| Нет места или защита системы | INSUFFICIENT_STORAGE и др. | Освободить память, проверить свободное место |
Причина 3: split APK и неполный набор файлов
Современные приложения нередко распространяются не одним файлом, а набором: базовый base.apk плюс модули под конкретную архитектуру, язык и плотность экрана. Если вы извлекли из набора .apkm или .xapk только один файл и пытаетесь поставить его командой adb install, система отвечает отказом — базового пакета недостаточно или, наоборот, выбранный файл не является базовым.
Для наборов используется установка всех частей одной командой. Сначала распакуйте архив (файлы .xapk и .apks — это по сути ZIP-контейнеры), затем передайте все APK сразу:
adb install-multiple base.apk config.arm64_v8a.apk config.ru.apk config.xxhdpi.apk
Альтернатива — сессионная установка через pm install-create, pm install-write и pm install-commit, но для разовой задачи install-multiple проще. Если вы не уверены, какие части нужны, ставьте все извлечённые APK — лишние модули система проигнорирует или сообщит о несовместимости отдельно.
☑️ Проверка перед повторной установкой APK
Причина 4: ограничения пользователя и профиля
Если на устройстве активен рабочий профиль (например, корпоративный, через Android Enterprise) или включён второй пользователь, политика администратора может запрещать установку приложений для основного профиля. В этом случае отказ для пользователя 0 — следствие внешней политики, а не неисправности.
Проверьте список пользователей командой adb shell pm list users. Если кроме владельца есть другие профили, попробуйте явно указать целевого пользователя: adb install --user 0 файл.apk. Когда запрет задан корпоративной политикой, обойти его без прав администратора профиля нельзя — это осознанное ограничение безопасности.
⚠️ Внимание: советы встречающиеся в сети про удаление системных приложений-установщиков или правку системных настроек через
settings put globalмогут нарушить работу механизма обновлений прошивки. Применяйте их только с пониманием рисков и после резервной копии данных.
Почему на Xiaomi ошибка появляется чаще
В прошивках MIUI и HyperOS установка через USB привязана к аккаунту Xiaomi и требует подтверждения. Дополнительно системный «Установщик пакетов» может показывать диалог подтверждения на экране устройства — если его не нажать вовремя, ADB получает отказ. Следите за экраном телефона во время выполнения команды.
Что делать, если ничего не помогло
Когда все проверки пройдены, а отказ сохраняется, действуйте по нарастающей. Сначала перезагрузите и устройство, и ADB-сервер: adb kill-server, затем adb start-server. Затем попробуйте установить тот же APK штатно — скопируйте файл в память телефона и откройте через файловый менеджер. Если и штатная установка отклоняется, проблема в самом пакете или в политике прошивки, а не в ADB.
Далее имеет смысл проверить другой APK — заведомо рабочий, например свежую версию известного приложения из официального источника. Устанавливается он, а нужный файл — нет: значит, дело в конкретном пакете (подпись, манифест, требуемая версия Android). Не устанавливается ничего: проблема на уровне системы, и здесь разумный предел самостоятельной диагностики — сброс настроек приложений или обращение к документации производителя.
Частые вопросы
Что значит цифра 0 в ошибке «not installed for 0»?
Это идентификатор основного пользователя Android (владельца устройства). Сообщение означает, что пакет не удалось установить для этого профиля; сама по себе цифра не указывает причину сбоя.
Можно ли исправить ошибку без root-прав?
Да, в подавляющем большинстве случаев достаточно включить установку через USB в настройках разработчика, удалить конфликтующую версию приложения или корректно установить весь набор split APK. Root для этого не требуется.
Почему adb install не работает, а установка через файловый менеджер — работает?
Значит, ограничение касается именно канала ADB: выключен переключатель «Установка через USB» или действует политика профиля. Сам пакет при этом исправен.
Опасно ли включать «Установку через USB»?
При подключении только к собственному компьютеру риск минимален. Не подключайте устройство с активной отладкой к чужим ПК и публичным зарядным станциям с портом данных.
Что делать, если в выводе нет уточнения в квадратных скобках?
Запустите adb logcat и повторите установку — строки с тегом PackageManager обычно содержат полную причину отказа, которую консольная команда сокращает.