Автор Тема: Прошивка Android в Linux  (Прочитано 8505 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Olej

  • Новичок
  • **
  • Автор темы
  • Сообщений: 88
Прошивка Android в Linux
« : Февраль 25, 2017, 13:00:29 »
Как?
Большинство (99%) описаний по прошивке образов Android в смартфон/планшет через USB описывают процесс этот в Windows. Не интересно.
Как это сделать в Linux?
Есть (в составе Android SDK и отдельно в репозиториях) такой:
[olej@dell IMGs]$ fastboot --version
fastboot version 3761365735de

Утвержается, что ним это и делается.
Есть ли у кого опыт или соображения?

Онлайн sfs

  • Местный
  • *****
  • Сообщений: 723
    • PuppyRus-Arch
Re: Прошивка Android в Linux
« Ответ #1 : Февраль 26, 2017, 09:09:57 »
Делал по
https://www.youtube.com/watch?v=sdziNeFnNbk&feature=youtu.be
https://www.youtube.com/watch?v=sdziNeFnNbk&feature=youtu.be
Получилось
Если знаний мало и нужен результат 1 раз - лучше не экспериментировать. Делать по инструкции
Борьба за чистоту идей и ОС может закончиться "кирпичом"

Оффлайн Olej

  • Новичок
  • **
  • Автор темы
  • Сообщений: 88
Re: Прошивка Android в Linux
« Ответ #2 : Февраль 26, 2017, 12:53:14 »
Делал по
https://www.youtube.com/watch?v=sdziNeFnNbk&feature=youtu.be
https://www.youtube.com/watch?v=sdziNeFnNbk&feature=youtu.be
Получилось
Это совершенно не то, по 2-м (дублирующимся) ссылкам - инструкция root-ирования какого-то одного конкретного аппарата.
А я спрашивал о технике записи прошивки в аппарат (любой), которая (технология) везде одинаковая, отличаются тоько прошивки.
Если знаний мало и нужен результат 1 раз - лучше не экспериментировать.
Знаний более чем достаточно :D. Но есть какие-то непонятки в поведении программ, этой и других. Которые хотелось бы сверить с теми, кто это делал.


Оффлайн ludoed

  • Местный
  • *****
  • Сообщений: 860
  • ludoed1970@jabber.ru
Re: Прошивка Android в Linux
« Ответ #3 : Сентябрь 26, 2017, 18:33:32 »
Как раз недавно прошивал смартфон из-под Linux, поделюсь опытом, может, кому понадобится.
И прошивка Recovery с последующим получением root, и заливка новой прошивки целиком производятся в принципе одинаково, командами adb и fastboot в консоли
Подготовка каждого конкретного смартфона к прошивке имеет свои особенности, поэтому сначала очень внимательно читаем тему своего смартфона/планшета на 4pda.ru/forum и делаем подготовку тушки в точности, как там указано.
Опишу на примере MTK-смартфона Highscreen Power Ice Max:

Что потребуется:
1. Linux-система, я делал на пользовательской сборке Ubuntu 16.04, в других системах устанавливаемые пакеты могут отличаться именами
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-adb
sudo 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, что нужно. Далее:
[b]sudo fastboot flash recovery recovery.img[/b]
В терминале видим:
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 или "кирпич" - всё равно понадобится ставить винду, дрова, и шить в выключенном состоянии виндовым прошивальщиком.
« Последнее редактирование: Сентябрь 26, 2017, 18:38:32 от ludoed »
все юниксы очень дружелюбны.. они просто очень разборчивы в друзьях ;)

Настоящее труЪ: самописное ядро, выращенные на кухне кристаллы и программирование перемычками :)