Прошиваємо файлову систему android за допомогою adb і fastboot

У третій за рахунком статті в нашому циклі по Android Debug Bridge ми розберемося з утилітою fastboot. Fastboot - це додаток для персонального комп'ютера, що працює через консоль. Дана утиліта використовується для прошивки файлової системи Android-девайсів.

За допомогою fastboot можна прошивати на Android-пристрій непідписані образи. Зазвичай ця функція відключена в мобільних апаратах «з коробки», тому як в засобі завантаження відключена підтримка USB. Тому для повноцінного використання всіх функцій fastboot необхідний інженерний SPL, або ж SPL з відключеною перевіркою безпеки (Security flag off, простіше - S-OFF).

SPL є другим програмним завантажувачем, і в поєднанні з IPL становить загальний завантажувач Android-девайса. Крім, власне, самій початковій завантаження операційної системи Android, завантажувач також виконує діагностику системи. Одна з діагностичних функцій полягає в управлінні даними, які знаходяться на внутрішньому флеш-накопичувачі пристрою. Залежно від встановленого SPL-завантажувач, користувач може самостійно прошити на девайс підписані NBH-файли, образи NAND флеш-пам'яті і так далі. SPL встановлений і працює, незалежно від операційної системи Android, яка встановлена ​​і працює поверх нього. IPL ж - це програма початкового завантаження пристрою, тобто первісної ініціалізації і завантаження всього устаткування «на борту», ​​приблизно як BIOS на персональних комп'ютерах.

Для того, щоб перевірити наявність певної режим fastboot, потрібно перезавантажити Android-пристрій через ADB командою adbrebootbootloader. У верхньому рядку повинно бути відображено «S-OFF», це означає, що «Перевірка безпеки виключена». Якщо ж відображається «S-ON», або ж фон з чотирма кольорами веселки, значить даний SPL не має підтримки fastboot. Доведеться встановити fastboot, який сумісний з SPL.

Важливо: при підключенні мобільного Android-апарату в режимі бутлоадер (bootloader) необхідно повторно встановити драйвера Android 1.0 (саме так, з якоїсь причини, йде відображення в «Диспетчері пристроїв»). Установка драйверів така ж, як зазвичай, тільки при установці самого драйвера потрібно вибрати рядок НЕ ADB, а FASTBOOT.

Тепер приступимо до розбору, власне, команд, які можна виконати в режимі fastboot.

Показує список усіх приєднаних в режимі fastboot пристроїв.

fastboot flash <раздел> <файл>

Завантажує обраний .img-файл в певний розділ Android-девайса з персонального комп'ютера, і проводить його установку. Для прикладу:

fastboot flash splash1 splash.img

Виробляє прошивку завантажувального Splash-екрану.

fastboot erase <раздел>

Повністю видаляє (стирає) зазначений розділ. Доступні розділи: boot, radio, recovery, userdata, system

fastboot update <файл.zip>

Виробляє прошивку підключеного Android-девайса із зазначеного .zip-файлу.

Виробляє прошивку розділів boot, recovery і system.

fastboot getvar <переменная>

Відображає значення зазначеної змінної bootloader. наприклад:

fastboot getvar version-bootloader

Буде відображена версія бутлоадер.

fastboot boot []

Виробляє стрибка і завантаження зазначеного Kernel.

fastboot flash: raw boot []

Виробляє створення bootimage і його прошивку.

Виробляє перезавантаження підключеного Android-пристрої.

Виробляє перезавантаження підключеного Android-пристрої в режимі завантажувача (bootloader).

Команди fastboot також підтримують такі ключі:

-w - видалення призначених для користувача даних і кеша.

-s <серийный номер> - установка серійного номера пристрою.

-p - установка назви підключеного девайса.

-c - перевизначення Kernel commandline.