Иззат. Дневник всякой всячины. (oshpaz) wrote,
Иззат. Дневник всякой всячины.
oshpaz

Categories:

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

Удачи в прошиваниях девайсов!
Tags: android, samsung
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 6 comments