Сообщение 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 убедитесь, что в диспетчере устройств нет неопознанного устройства с жёлтым значком.
Типичные ошибки после Performing Streamed Install
Коды ошибок, которые возвращает менеджер пакетов, указывают на конкретную причину отказа. Ниже — те, что встречаются чаще всего. Точный набор кодов зависит от версии Android, поэтому ориентируйтесь на текст сообщения в вашей консоли.
| Код ошибки | Вероятная причина | Что проверить |
|---|---|---|
INSTALL_FAILED_INSUFFICIENT_STORAGE | Недостаточно свободной памяти | Освободить место во внутреннем хранилище |
INSTALL_FAILED_VERSION_DOWNGRADE | Устанавливаемая версия старше текущей | Удалить существующее приложение или собрать новую версию |
INSTALL_PARSE_FAILED_NO_CERTIFICATES | APK не подписан или подпись повреждена | Подписать пакет корректным ключом |
INSTALL_FAILED_UPDATE_INCOMPATIBLE | Подпись новой версии не совпадает с установленной | Удалить старую версию (данные будут потеряны) |
INSTALL_FAILED_USER_RESTRICTED | Установка запрещена настройками или профилем устройства | Разрешить установку через ADB в настройках разработчика |
Обратите внимание: на ряде прошивок, особенно у китайских производителей, установка через ADB блокируется до тех пор, пока в параметрах разработчика не включён отдельный пункт «Установка через USB». Название и наличие этого пункта зависят от оболочки — сверьтесь с документацией вашей модели.
⚠️ Внимание: удаление установленного приложения ради решения конфликта подписей приведёт к потере его локальных данных. Если данные важны, сначала сделайте резервную копию штатными средствами.
Пошаговое решение зависания установки
Если консоль «застыла» на строке Performing Streamed Install и не выдаёт ни Success, ни Failure, действуйте последовательно — от простых шагов к более глубоким.
☑️ Диагностика зависания streamed install
Сначала прервите зависшую команду сочетанием 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 из проверенных источников или собственные сборки.