Performing Streamed Install: что означает сообщение ADB и как устранить ошибки установки

Сообщение Performing Streamed Install появляется в консоли сразу после ввода команды adb install app.apk и означает, что ADB начал потоковую передачу APK-файла на Android-устройство. Если дальше не появляется строка Success, а процесс зависает или возвращает ошибку — проблема кроется в соединении, файле пакета или настройках самого устройства.

Эта статья разбирает, что происходит «под капотом» потоковой установки, какие ошибки встречаются чаще всего и как их диагностировать без риска для данных на смартфоне. Материал ориентирован на пользователей Windows, Linux и macOS, работающих с Android Debug Bridge.

Что происходит при потоковой установке

Команда adb install не копирует файл на устройство целиком, как при обычной передаче через adb push. Вместо этого ADB открывает сессию с системным менеджером пакетов (Package Manager) и передаёт содержимое APK потоком — небольшими порциями. Устройство на лету проверяет подпись, манифест и совместимость, а затем фиксирует установку.

Именно поэтому строка Performing Streamed Install — это нормальный этап, а не ошибка. Тревожным сигналом является только то, что следует после неё: длительное зависание, тайм-аут или сообщение вида Failure [INSTALL_...].

Предварительная диагностика: что проверить в первую очередь

Прежде чем менять настройки, убедитесь, что ADB вообще видит устройство и соединение стабильно. Быстрая проверка занимает меньше минуты.

adb devices

adb get-state

Первая команда должна показать серийный номер устройства со статусом device. Если виден статус unauthorized — на экране смартфона нужно подтвердить запрос на отладку по USB. Если список пуст, дело в кабеле, драйверах или отключённой отладке.

  • 🔌 Используйте кабель, поддерживающий передачу данных, а не только зарядку.
  • 🔄 Попробуйте другой USB-порт, желательно напрямую, без хаба.
  • 📱 Проверьте, что в параметрах разработчика включена «Отладка по USB».
  • 🖥️ На Windows убедитесь, что в диспетчере устройств нет неопознанного устройства с жёлтым значком.
📊 На каком этапе у вас возникает проблема с ADB?
Устройство не определяется в adb devices
Зависание на Performing Streamed Install
Ошибка Failure с кодом INSTALL_
Установка проходит, но приложение не работает

Типичные ошибки после Performing Streamed Install

Коды ошибок, которые возвращает менеджер пакетов, указывают на конкретную причину отказа. Ниже — те, что встречаются чаще всего. Точный набор кодов зависит от версии Android, поэтому ориентируйтесь на текст сообщения в вашей консоли.

Код ошибкиВероятная причинаЧто проверить
INSTALL_FAILED_INSUFFICIENT_STORAGEНедостаточно свободной памятиОсвободить место во внутреннем хранилище
INSTALL_FAILED_VERSION_DOWNGRADEУстанавливаемая версия старше текущейУдалить существующее приложение или собрать новую версию
INSTALL_PARSE_FAILED_NO_CERTIFICATESAPK не подписан или подпись поврежденаПодписать пакет корректным ключом
INSTALL_FAILED_UPDATE_INCOMPATIBLEПодпись новой версии не совпадает с установленнойУдалить старую версию (данные будут потеряны)
INSTALL_FAILED_USER_RESTRICTEDУстановка запрещена настройками или профилем устройстваРазрешить установку через ADB в настройках разработчика

Обратите внимание: на ряде прошивок, особенно у китайских производителей, установка через ADB блокируется до тех пор, пока в параметрах разработчика не включён отдельный пункт «Установка через USB». Название и наличие этого пункта зависят от оболочки — сверьтесь с документацией вашей модели.

⚠️ Внимание: удаление установленного приложения ради решения конфликта подписей приведёт к потере его локальных данных. Если данные важны, сначала сделайте резервную копию штатными средствами.

Пошаговое решение зависания установки

Если консоль «застыла» на строке Performing Streamed Install и не выдаёт ни Success, ни Failure, действуйте последовательно — от простых шагов к более глубоким.

☑️ Диагностика зависания streamed install

Выполнено: 0 / 5

Сначала прервите зависшую команду сочетанием Ctrl+C и перезапустите сервер ADB:

adb kill-server

adb start-server

adb install имя_файла.apk

Если зависание повторяется, проверьте сам файл. Повреждённый или недокачанный APK — частая причина молчаливого сбоя. Откройте архив любым архиватором: целый APK открывается без ошибок, так как по сути это ZIP-контейнер. Также попробуйте установить другой, заведомо рабочий пакет — это отделит проблему файла от проблемы устройства.

Особенности split APK и больших пакетов

Современные приложения нередко распространяются как набор из нескольких APK: базовый модуль плюс конфигурации под архитектуру процессора, плотность экрана и языки. Установить такой набор одной командой adb install нельзя — потоковая установка работает с одним файлом.

Для разделённых пакетов используется команда adb install-multiple с перечислением всех частей:

adb install-multiple base.apk config.arm64_v8a.apk config.ru.apk

Имена файлов у вас будут другими — ориентируйтесь на состав скачанного набора. Устанавливать нужно все части одновременно, иначе менеджер пакетов вернёт ошибку из-за отсутствия обязательных модулей.

Как узнать архитектуру устройства

Выполните команду adb shell getprop ro.product.cpu.abi — она покажет основной ABI устройства (например, arm64-v8a или armeabi-v7a). Выбирайте APK, соответствующий этой архитектуре, либо универсальную сборку, если она доступна.

Когда проблема на стороне устройства

Иногда ADB и файл в порядке, но установку блокирует сама система. Возможные причины: активный профиль работы или корпоративной политики, запрет установки из неизвестных источников, активная проверка приложений в Google Play (Play Protect) либо переполненный раздел данных.

Проверьте свободное место командой adb shell df /data — при почти полном разделе установка будет отклоняться даже для небольших пакетов. Также убедитесь, что на устройстве не активен гостевой или вторичный пользователь с ограниченными правами: установка через ADB выполняется в контексте текущего пользователя, и его права влияют на результат.

⚠️ Внимание: не отключайте Play Protect и системные проверки безопасности насовсем. Если требуется установить собственную сборку для тестирования, верните защитные механизмы в исходное состояние после завершения работы.

FAQ: частые вопросы

Почему появляется Performing Streamed Install, а не обычное копирование файла?

Так устроена команда adb install: пакет передаётся потоком напрямую менеджеру пакетов, без промежуточного сохранения в файловой системе устройства. Это быстрее и позволяет системе проверять пакет на лету.

Установка зависла надолго — это нормально?

Для очень больших APK передача может занять заметное время, особенно по USB 2.0. Но если прогресс не меняется несколько минут, прервите команду и проверьте соединение, целостность файла и свободное место на устройстве.

Можно ли установить APK без потоковой установки?

Да, как альтернативу можно скопировать файл через adb push в доступный каталог и запустить установку командой adb shell pm install с указанием пути. Этот способ иногда помогает при сбоях потоковой передачи.

Что делать, если adb devices показывает unauthorized?

Разблокируйте экран смартфона и подтвердите диалог «Разрешить отладку по USB». Если диалог не появляется, отключите и снова включите отладку по USB в параметрах разработчика, затем переподключите кабель.

Безопасно ли устанавливать APK через ADB?

Сам механизм безопасен — система проверяет подпись пакета так же, как при обычной установке. Риск связан только с источником файла: устанавливайте APK из проверенных источников или собственные сборки.