Bootloader, pit файл и как сделать из телефона кирпич.

Dec 14, 2011 23:48

Сегодня был не самый лучший день для могих пользователей Samsung Galaxy S2. При попытке поставить на него утекшую прошивку с использованием утилиты Odin, у многих телефоны превратились в "кирпичи". Пользуясь случаем, хочу рассказать, как это все работает, и откуда появляется риск "окирпичивания" телефона.

Давайте воспользуемся привычной аналогией с компьютерным хард драйвом. Представим, что флэш память в телефоне - то же самое, что хард драйв в компьютере. И этот хард драйв разбит на несколько партиций:

C: бутлоадер, он же загрузчик.
D: ядро
E: recovery
F: система/платформа
G: кэш
H: данные пользователя
I: модем

Предназначения партиций D-H мы уже обсуждали. Давайте теперь поговорим про бутлоадер.


Как понятно из названия, загрузчик загружает ваш телефон. То есть телефон знает, что при включении надо считать какое-то количество байтов с определенного места на флеш паняти в оперативную память и начать эти байты исполнять. А дальше этй байты сами все подхватят и скажут, что надо делать дальше. Эти байты и есть загрузчик. Он загружается в память и оттуда исполняется, производя какие-то начальные операции инициализации, загружая в память ядро и передавая ему управление. А ядро уже дальше делает все само - инициализирует железо, монтирует нужные партиции, загружает платформу и т.п.

Но сейчас нам интересен бутлоадер. А умеет он больше, чем просто загружать ядро:

- Он умеет "общаться" с ядром через общую маленькую партицию. Таким образом, он может запускать телефон в разных режимах: нормальной работы, восстановления (recovery), загрузки прошивки (download) и т.п.

- Также он "понимает" определенные комбинации клавиш, чтобы загружать телефон в вышеупомянутых режимах.

- Он понимает структуру разбивки на партиции, то есть он знает, где какая партиция начинается и где она заканчивается.

- В режиме загрузки прошивки он умеет общаться с загрузочной программой. Засчет этого, он может принять образ партиции от загрузочной программы и записать его на флеш-память. Причем так как он работает будучи загруженным в память, он вполне может перезаписать и свою партицию.

- Более того, он может принять и новую таблицу партиций и в соответствии с ней переразбить хард драйв и записать на новые партиции новые образы прошивок.

- На некоторых телефонах он умеет "опозновать" свое ядро и загружать только его. (secure bootloader)

А вот теперь представим, что что-то пошло не так при заливке, и новый бутлоадер у вас не запислался. Понятно, что пока он загружен в память, что-то еще можно делать. А вот когда перезпустим телефон - получим кирпич. Телефон как положено, считает байты с того же адреса и начнет их запускать. А новые байты окажутся испорченными и бесполезными. Где ядро, они не знают, как общаться с загрузочной программой - тоже. То есть "режим заливки" пропадет, и прошивку мы уже никак не сможем загрузить - телефон просто в него больше не грузится. В таком случае восстановить телефон можно в сервис центре при помощи программатора JTAG. На плате телефона есть специальные контакты, позволяющие "прошить" те же образы прошивки в телефон, минуя загрузку и общение с загрузочной программой.

Еще один хороший способ испортить бутлоадер и брикнуть телефон - это запортить процесс перебивки хард драйва на новые партиции. Так как при этом информация на диске становится бесполезной (размеры партиций могут поменяться, и/или информация просто может оказаться недоступной после разбивки), при репартиции все надо прошивать заново, и любая ошибка при репартиции или последующей пршивке бутлоадера будет фатальной.

В самсунговских упаковках прошивок, бутлоадер (их там на самом деле три, и они разные) обычно включенв комплект, и я рекомедую его оттуда убирать перед прошивкой. И .pit файлом (файлом переразбивки прошивок) я рекомендую пользоваться в крайнем случае. Шанс того, что новые ядро и платформа уместятся в старые партиции, довольно высок. А если не уместятся - пока вы можете телефон загрузить в загрузочный режим, вы его сможете сами восстановить, бутлоадер же не тронут и прошьет что надо куда надо.

Удачи в прошиваниях девайсов!

samsung, android

Previous post Next post
Up