В кастомном recovery модуле запускаем adb sideload, чтоб загрузить в телефон файл с прошивкой. Этот режим специально придумали, чтоб можно было загружать прошивки прямо в recovery, без использования основной операционной системы, которая может быть сломана.
На компьютере запускаем ./adb sideload файл.zip
Получаем в лоб:
error: insufficient permissions for device
Как выяснилось, лечится это путём
./adb kill-server
./adb start-server
после чего adb sideload прекрасно загружает файл.
Но эту логику поведения adb я уразуметь не могу.
Оригинал этой записи в личном блоге.