Автор Тема: Прошивка Android-смартфонов из-под Linux  (Прочитано 206 раз)

Оффлайн ludoed

  • Новичок
  • *
  • Сообщений: 31
Прошивка Android-смартфонов из-под Linux
« : 03 Октября 2017, 19:31:05 »
Как раз недавно прошивал смартфон из-под Linux, поделюсь опытом, может, кому понадобится.
Копирую свой пост с форума Runtu и 4pda, в основном - в популяризаторских целях, прежде всего - для тех, кто начал осваивать Linux недавно.
И прошивка Recovery с последующим получением root, и заливка новой прошивки целиком производятся в принципе одинаково, командами adb и fastboot в консоли
Подготовка каждого конкретного смартфона к прошивке имеет свои особенности, поэтому сначала очень внимательно читаем тему своего смартфона/планшета на 4pda.ru/forum и делаем подготовку тушки в точности, как там указано.
Опишу на примере MTK-смартфона Highscreen Power Ice Max:
Спойлер
Что потребуется:
1. Linux-система, я делал на Matuntu-X32-M114, в других системах устанавливаемые пакеты могут отличаться именами
2. Диск с Win 7, комплект драйверов и SPFlashTool для винды, на случай возникновения нештатной ситуации, как у меня было. :)
Пренебрегать "соломкой" не следует.
3. Лупа! Сообщения на экране смарта в режиме отладки очень мелкие.
Итак:
1. Ставим на комп adb и fastboot, для Ubuntu - по инструкции Прошивка Android в Ubuntu c помощью ADB/Fastboot http://4pda.ru/pages/go/?u=https%3A%2F%2Fandroidp1.ru%2Fproshivka-android-v-ubuntu-c-pomoshhyu-adb-fastboot%2F&e=65163871
Для этого нужно открыть терминал и ввести следующие команды:
sudo apt-get install android-tools-adbsudo apt-get install android-tools-fastbootили поставить пакеты через Synaptic, что проще для тех, кто недавно пришёл в Linux
2. ОБЯЗАТЕЛЬНО готовим смартфон, как указано в шапке темы вашего девайса - без этого не заработает.
3. ЗАРАНЕЕ кладём на карту памяти, а можно ещё и на внутреннюю память, в корень карты архив с рут-патчем. Я его на всякий случай переименовывал в update.zip, но подозреваю, что TWRP пофиг на имя архива.
4. В корень домашней папки на компе /home/{имя пользователя} кладём TWRP-recovery с именем recovery.img
5. Выключаем смарт, вынимаем симки чтобы не убить IMEI.
6. Включаем смарт, когда загрузится - подтыкаем по USB к компу. Тип USB 2.0 / 3.0 для adb без разницы, я шил через USB 3.0
7. Начинаем колдовство:
в терминале набираем:
sudo adb devicesСтартует демон, выскакивают сообщения, примерно такие - могут отличаться в зависимости от ситуации
Цитировать
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
ZSEUNFM7UVS4GYLN   unauthorized

ZSEUNFM7UVS4GYLN unauthorized - означает, что adb видит устройство, но на нём нужно включить отладку по USB. Даже если она была включена, её надо выключить и включить снова, а потом во всплывающем окне на смарте подтвердить разрешение. "Режим разработчика" должен быть включен обязательно!
перегружаемся в режим bootloader, чтобы fastboot увидел устройство:
sudo adb reboot bootloaderПроверяем, видит ли fastboot нашего подопытного:
sudo fastboot devicesДолжна выскочить строка вида: ZSEUNFM7UVS4GYLN fastboot

Если её нет - ищите, в чём ошибка.
Опять перегружаем смарт в режим bootloader, на этот раз - из fastboot
sudo fastboot reboot-bootloaderВ терминале видим:
Цитировать
rebooting into bootloader...
OKAY [ 0.003s]
finished. total time: 0.053s

Далее надо разблокировать загрузчик на смарте, иначе не даст записать recovery в память:
(Этот этап для каждого смартфона проходит по-своему, особенно заморочно на HTC - внимательно читаем в теме устройства).
Для "китайфонов" на MTK обычно прокатывает:
sudo fastboot oem unlockВ этот момент на смарте появляется предупреждение и просьба подтвердить разблокировку загрузчика, ЕМНИП, нажатием "Громкость вверх". Надписи на моём устройстве очень мелкие, нужна лупа.
Подтверждаем.
Теперь - прошивка recovery. Проверяем размер файла на компе, чтобы быть уверенными, что это именно то recovery, что нужно. Далее:
sudo fastboot flash recovery recovery.imgВ терминале видим:
Цитировать
target reported max download size of 134217728 bytes
sending 'recovery' (12786 KB)...
OKAY [ 0.614s]
writing 'recovery'...
OKAY [ 0.315s]
finished. total time: 0.929s
Если вместо этих надписей выскочило что-то вроде "Installation aborted" - значит, загрузчик не разблокировался.

Ровно аналогично записываются в память смартфона и остальные части прошивки - boot.img, data.img и т.п. Разница с виндой лишь в том, что каждый img записывается по отдельности, а программа-прошивальщик под виндой обычно загоняет всю прошивку за один присест.
Более подробно читаем на 4pda в теме Что такое ADB (Android Debug Bridge) http://4pda.ru/forum/index.php?showtopic=383300 - в шапке темы есть подробное описание команд adb и fastboot с примерами

Теперь самое важное.
С прошитым TWRP-recovery на моём смарте нельзя грузиться в систему, если на смарте не установлен root-патч - получим бесконечную перезагрузку.
В TWRP-recovery ничего лишнего не следует делать, если смарт присоединён к компу USB-кабелем, т.к. разделы памяти на смарте в этот момент смонтированы на комп. В первый раз я из-за этого получил bootloop. :)
Поэтому даём команду:
sudo fastboot rebootСмарт перезагружается, в этот момент выдёргиваем USB-кабель и тут же зажимаем громкость вверх и кнопку включения, для входа в TWRP-recovery.
Видим синий экран с красивой текстурой, на нём мелкое-мелкое предупреждение "Orange state..." - о том, что загрузчик разблокирован. У меня смарт перезагрузился дважды, потом я на "втором" синем экране отпустил кнопки, и попал в recovery.
Далее свайпом разрешаем внесение изменений, лезем в раздел "установка", выбираем там SD-карту, на ней находим zip-архив с root-патчем, устанавливаем.
По окончании установки перезагружаем смарт в обычном режиме. Первый запуск будет подольше обычного.
Теперь ставим любую программу, требующую root-доступа, я ставил SetCPU, и проверяем наличие root'а.

Преимущество прошивки из-под Linux - не нужно ставить драйверы, ядро видит девайс само, не нужен цирк с втыканием кабеля в девайс в течение 2-х секунд после нажатия кнопки, как оно на MTK-устройствах бывает :)
Недостаток - прошивка производится во включенном состоянии смарта, поэтому, если напортачили и получили bootloop или "кирпич" - всё равно понадобится ставить винду, дрова, и шить в выключенном состоянии виндовым прошивальщиком.
« Последнее редактирование: 18 Ноября 2017, 15:09:17 от vita »

Оффлайн Кулиш Евгений

  • Постоялец
  • ***
  • Сообщений: 197
    • ЖЖ
Re: Прошивка Android-смартфонов из-под Linux
« Ответ #1 : 16 Ноября 2017, 14:20:42 »
Вопрос, конечно, интересный, но из личной практики могу добавить: уж очень много различий в смартфонах - процессоры, организация загрузки, разделы памяти...
Прошивать из-под Линукс, уверен, можно любой аппарат, только надо знать как. Я мало знаю, потому не рискую, велик шанс угробить аппарат.

Оффлайн Кулиш Евгений

  • Постоялец
  • ***
  • Сообщений: 197
    • ЖЖ
Re: Прошивка Android-смартфонов из-под Linux
« Ответ #2 : 18 Ноября 2017, 12:48:04 »
Вот, напимер, вариант прошивки через Линукс моего Леново:

I'll add adb/fastboot instruction for those who don't use Windows:
Of course you have to enable developer options, adb debug, oem unlocking


UNLOCK:
> adb reboot bootloader
> fastboot oem device-info
> fastboot oem unlock-go
(and... yes you can lock it back with fastboot oem lock)

TWRP:
> fastboot flash recovery /path/to/your/twrp.img
> fastboot oem reboot-recovery

BOOT.IMG:
> fastboot flash boot /path/to/your/ro.secure=0/boot.img
> fastboot reboot

P.S. (to manipulate your boot.img and change the default.prop file under linux you can use abootimg)

Я готов попробовать, но не совсем понятна эта инструкция...