LINUX.ORG.RU

Загрузчик Android-телефонов или прошивка?

 , , ,


0

0

Странно в этих телефонах устроены инициализация и загрузка...

По сути одна прошивка и инициализирует телефон и загружает ведроид, тогда как на ПК «биосы» (включая UEFI) просто инициализируют железо, а загрузку ОС передают загрузчику (efi, ntldr, grub и т.д.).

Почему на телефонах не сделали также? Не смогли или не хотели?

Удобно для вендор-локинга?

Deleted

Последнее исправление: Deleted (всего исправлений: 1)

Прошивка процессора по фиксированным адресам читает код с флеша и пинает его на выполнение. u-boot там фактически выполняет роль BIOS, только хранится на eMMC/SD, а не на SPI-флешке.

Radjah ★★★★★
()
Последнее исправление: Radjah (всего исправлений: 1)
Ответ на: комментарий от Deleted

Можно получить кирпич.

Аналогично тому как можно получить кирпич просто обновив этот твой bios/uefi на пэка. Примеры были неоднократно.

init_6 ★★★★★
()
Ответ на: комментарий от init_6

В случае с bios/uefi у меня всё немного иначе. Прошивать нечего, мать 2012 года и уже прошита новой версией (до меня).

Deleted
()
Ответ на: комментарий от Deleted

Прошивать нечего, мать 2012 года и уже прошита новой версией (до меня).

Хорошая попытка. В андроиде если что тоже убить весь аппарат до невозможности восстановления из fastboot это еще нужно либо ооооочень сильно постараться либо это несчастливая лотерея с выигрышем в виде изначально бракованного железа.

init_6 ★★★★★
()
Ответ на: комментарий от Deleted

Да ладно :) Залить в SBL1 нули и всё, кирпич без какого-нибудь октопуса (или что сейчас модно)

Да а если бабушке член то будет дедушка…

init_6 ★★★★★
()
Ответ на: комментарий от init_6

Аналогично тому как можно получить кирпич просто обновив этот твой bios/uefi на пэка. Примеры были неоднократно.

Уже лет 5 там дуалбиосы, если залить нерабочий то мать самостоятельно его восстановит. Сталкивался с этим когда шил патченные uefi.

KillTheCat ★★★★★
()

биос заливать на флеш pcie быстрее прост

why
()

Потому что архитектурно всё совершенно иначе. Причём как именно иначе, зависит от производителя чипсета, а не от злого гугеля или ARM-консорциума в целом.

Расмотрим пример Qualcomm.

  1. Есть PBL — Primary Boot Loader, зашитый в сам чипсет намертво. Его никак нельзя оттуда выковырять или заменить. Ещё есть TrustZone - область взаимодействия с такими интересными вещами, как QFUSE/EFUSE, например. PBL запускается первым делом после включения аппарата. Можно, если очень упрощённо рассматривать, считать его аналогом BIOS.
  2. Есть SBL/XBL — Secondary/eXtended Boot Loader, который уже находится во флэш-памяти, то бишь прошивке, и запускается после PBL. Отвечает в числе прочего за вываливание девайса в DL-режим при повреждении загрузчика.
  3. Далее идёт Aboot, аналог граба этого вашего. В самых современных аппаратах вместо него стоит ABL, который уже можно и считать полноценнм аналогом UEFI. Все эти запуски рекавери, фастбутов и прочего ложатся на его плечи. В штатном же режиме он уже смотрит параметры загрузки ядра и передаёт управление оному.

А теперь внимание, что произойдёт, если память совершенно пуста и ни SBL/XBL, ни Aboot/ABL не наблюдается? Правильно, PBL, не обнаружив SBL/XBL, запускает Emergency Download Mode (EDL), из которого всем этим можно вполне себе рулить при наличии подписанного firehose-загрузчика (по сути, подменяющего собой SBL). Так что насчёт «одна прошивка и инициализирует телефон и загружает ведроид» ты неправ, по крайней мере с квалкоммами. Инициализация происходит задолго до того, как прошивка вообще получает управление.

rebforce
()
Ответ на: комментарий от Deleted

Какой к лешему октопус? qdl, firehose-бинарник и разметочный xml-файл в руки и вперёд.

rebforce
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.