Пересмотрев кучу сервисных мануалов и прошивок хочу теперь описать все причуды которые касаются анализа прошивок, и прошивания мобильных телефонов.
Разнообразие форматов прошивок и всевозможных псевдосервисных программ просто таки сбивает с толку человека, который даже просто решил начать анализ каких-нибудь телефонов другой фирмы. Буду рассматривать только современные телефоны и не беру в счет ODM модели.
Итак форматы прошивок, их всего два: Бинарники и S-Record.
Бинарники - это данные прошивки которые заливаются в телефон без каких либо изменений. То есть как мы их видим в бинарнике, так они и будут выглядеть после дампа прошивки. Этот формат применяется в тех случаях когда прошивка монолитная, т.е. ее заливают начиная с какого-то адреса сплошняком, от начала до конца файла. Расширения у файлов таких прошивок может быть какое угодно: bin, cla, arm, sw, bif, ogm и т.д.
S-Record - это формат в котором данные прошивки привязаны к определенным адресам. В прошивках S-record каждая строка содержит адрес куда нужно записать блок данных, его длину и сами данные. S-record это текстовый формат, т.е. в таких файлах прошивка записана в виде текста. Прошивки s-record как минимум в три раза больше чем те данные, которые они в себе несут. Описание формата S-record можно найти к примеру вот
http://www.amelek.gda.pl/avr/uisp/srecord.htm.
S-record бывает в формате Intel (Little Endian) и Motorola (BigEndian), причем определить Endian часто можно только после конвертации в бинарник

Endian в s-record никак не связан с Endian кода прошивки. Обычно прошивки идут в виде Intel S-record (Samsung поколение Agere, Motorola поколение P2k), но иногда встречаются и Motorola S-record (LG на процах Neptune).
Расширения файлов опять же радуют многообразием: s3, m0, shx, s0, s19, mot и т.д.
Некоторые производители делят прошивку на несколько бинарников, которые потом заливаются отдельно. Делается это для того чтобы отделить код, ресурсы, калибровочные данные, пользовательские данные, языковые ресурсы и файловая система. Особенно в таком дележе преуспели Nokia и Motorola. Есть еще такое понятие как Full Flash - это полный дамп флэш памяти (обычно только NOR).
Теперь пойдем по фирмам.
SamsungБудет первым, ибо для меня он был первым

У самсунга все просто на текущий момент существует два поколения: Agere и Sysol.
Agere - на процах Trident, Sysol - на процах фирмы Philips.
Прошивки для Agere монолитные, идут в формате s-record, обычное расширение s3 или s0.
Прошивки для Sysol состоят из 2-х бинарников: bin - код + данные + пользовательские данные + калибровочные данные, tfs - файловая система. Некоторые старые Sysol'ы состоят из 2-х бинарников с расширением ogm. Один из них - код, второй - ресурсы.
Все прошивки грузятся с адреса 0. Карта памяти зависит от модели. Но общие черты в том что при старте копируются блоки памяти с кодом ОС в SRAM. Поэтому приначальном анализе можно прогнать прошивку в Trace32 чтобы найти эти самые копирования. А так карта памяти проста сразу, по окончании NOR, начинаются адреса RAM, а за ними порты доступа к NAND. Флэшеры обычну идут вместе с прошивкой. Обычно называются: ИМЯ_МОДЕЛИ Downloader.
SiemensОфициальные прошивки идут в виде exe-файла флэшера в который встроена закриптованая прошивка. Как говорят зашифровано RSA. Формат в котором записана прошивка похож на s-record (т.е. записан адрес куда данный кусок надо записывать), но к сожалению прошивку расшифровывает сам телефон. Поэтому все пользуются фулфлэшами, т.е. бинарниками. Как ни странно, но цикл работы с прошивками такой: заливаешь официальную, дапишь фул флэш, патчишь и заливаешь фул флэш

Фулфлэши естественно монолитные, загружаются на адрес A0000000.
NokiaПрошивки поколений DCT-4, DCTL и WD2 состоят из 4-х частей:
1) MCU - бинарник с кодом. опять же зашифровано.
2) PMM - языковые ресурсы
3) CNT - Content Pack т.е. графика + мелодии. Я так догадываюсь что это файловая система.
4) PM - Permanent memory - бывший EEPROM. Тут лежат пользовательские настройки, телефонная книга, календарь и т.д. у DCTL оно называется WUG.
Официальные прошивки идут только для программы Nokia Phoenix. Обычно содержат бинраник прошивки и кучу вариантов PMM и CNT. После инсталяции файлы ложатся в каталог C:\Program Files\Nokia\Phoenix\Products\Имя_модели. Для 3510i это будет вот так:
C:\Program Files\Nokia\Phoenix\Products\rh-9\. Файл кода(т.е. MCU) можно найти только размеру, он самый большой среди всех. Имена у файлов абсолютно ничего не говорят кроме номера версии. Так что стоит позаглядывать во внутрь чтобы понять что это. Файлы CNT содержат
уникодовую строку "Content Package pc". В PMM есть в начале строка "PPM.V ".
Что лежит по каким адресам неизвестно.
Sony EricssonЭриксонов у нас два поколения: старые, которые на процессоре Martha3D и новые - на DB201x. У старых прошивки состоят из трех бинарников:
1) bih - прошивка ARM процессора, ее почему-то называют modem.
2) bis - прошивка AVR процессора. Называют ее MCU. Видать AVR проц больше работы делает чем ARM, раз прошивка AVR считается MCU
3) big - файловая система. Называется GDFS.
А у новых эриксонов делится на два бинарника: SW - бинарник с кодом, ресурсами, языковыми ресурсами и т.д. и LFS - файловая система.
Официальный флэшер: неизвестен, в мануалах пишут какую-то EMMA 2.
LGТоже два поколения: на процессорах AD652x (aka Samson, Hercules, Hermes)от Analog devices и мотороловских Hercrom (aka Calypso). В мобилах на Calypso прошивки идут в формате
Motorola S-record, так что не удивляйтесь если получите билиберду при конвертации в бинарни, надо потом еще развернуть данные по-word'но. Расширения обычно m0 или mot.
В поколении AD652x прошивки состоят из двух .mot файлов(s-record). Один - код прошивки, второй - данные. А для Hercrom'ов монолитные, там один файл с расширением .m0
Официальные флэшеры: FLUID и Floader.
MotorolaПрошивки к P2K идут в формате Intel S-record. Обычное расширение shx. Но эти shx весьма интересно сделаны. shx состоят из какого-то заловка "P2K Superfile", а дальше в нем идут слепленые подряд 7 файлов S-record. Создается впечатление что умельцы в мотороле либо не догадываются о том, что файлы можно скрепить в один, либо у них все части разрабатываются отдельно и им влом мержировать. То есть сначала надо убрать заголовок, а потом выдрать оттуда все 7 файлов и затем конвертировать их в бинарники по-отдельности.
Карта памяти для p2k примерно вот такая:
3FD0000 - Boot Loader.
10D00000 - Графика
10080000 - Код прошивки
11140000 - Файловая система
Для чего нужны остальные три части по адресам: 10040000, 10F40000, 11FE0000 - не знаю.
Официальный флэшер: Motorola PST.
ОстальныеУ Philips все также как у Samsung(хотя поидее надо писать наоборот). У Pantech, Panasonic и Sharp так же как у LG. Enol делают на процах Skyworks, поэтому тут все также как в Samsung C100, к тому же карта памяти у них прям в сервисных мануалах прописана.
Как люди зарабатывают деньгиПрограммы для прошивкиОсобенно приуспела в этом программа Motorola service software (MSSW) aka Victor. Они переделывают shx в свой формат vfl и дают прошивки только тем кто купил их программу. Разлочку мобилы делают перепрошиванием, очень оригинально... Еще и прогу свою ключем защищают (кажись HASP). Для эриксонов такой программой является DIV, которую каждый раз ломает товарищ laser
БоксыПо всему инету продают кучу боксов для прошивания/восстановления/разлочки телефонов: Delock, UFS, Red Box, Terminator, Unibox, Griffin, Twister и т.д. Обычно в комплекте идет эдакая коробочка, которая подключается на USB или LPT, набор кабелей и софт. Стоит обычно примерно 250$. Как тут и что в реальности: коробочка в себе просто содержит переходник USB -> COM или LPT -> COM и ничего более, ну иногда еще в нее USB разветвитель добавляют(UFS Tornado) и JTAG (MultiBox). Люди которые делают такие боксы обычно напрямую связаны с сервисными центрами, т.е. они просто берут сниферят сервисные программы и объединяют все в одну программу, которая работает через их бокс.