Как-то раз, столкнувшись с необходимостью решить некоторую проблему с Моторолой моей жены, полез я на соответствующий форум, aka motofan.ru. Убив полдня на лазание по разным тредам, чтение написанных сто лет тому назад ФАКов, разбросанных по разным разделам, просмотр воплей людей, убивших свой телефон из-за элементарного незнания, того, чем отличаются функционально и местоположением одни части ПО телефона от других, я пришёл к выводу, что бардак здесь царит полнейший. Как человек, стремящийся создать для себя максимально полную картину того, с чем я имею дело, перед тем, как лезть в свой телефон, я собрал для себя небольшое описание структуры ПО телефонов Motorola по материалам этого форума. С чем и хочу ознакомить общественность, ибо такого описания структуры ПО с объяснениями на форуме я не обнаружил. Этот FAQ, по мере поступления предложений и исправлений, естественно, будет модифицироваться. В настоящее время он отражает моё видение проблемы.
Как старый пользователь телефона Siemens, хочу сказать, что с ним было всё гораздо понятнее - в адресном пространстве есть с таких-то по такие-то адреса flash, с таких-то по такие-то EEPROM. Доступ к ним единообразный, но NVRAM делится на области. Если забекапить всё, получишь полный image со всеми настройками, которые только есть в телефоне, можешь его класть хоть под рентгеновскую установку - потом восстановишь.
Для Моторолы же никто не озаботился написать что-либо вменяемое... PDS, SEEM, прошивка, EEPROM, NVM... песец...
Итак, начинаем развеивать смятение в умах....
Начнем с базовых определений:
1. Flash - микросхема flash-памяти в телефоне.
2. EEPROM - перезаписываемая память сравнительно небольшого объема, обычно находящаяся внутри управляющего микроконтроллера (как в Motorola - не знаю), используемая для хранения некоторого набора настроек, отдельная и
независимая от flash. Её использование обычно - хранение данных, которые должны быть сохранены в любом случае, независимо от состояния микросхемы flash, или для часто модифицируемых данных, чтобы не расходовать ограниченный ресурс записи микросхемы flash.
3. Прошивка - определенная программа, по которой работает телефон, и данные к ней, зашитые во flash. Применительно к Motorola делится на две части - собственно управляющая программа(и все её атрибуты, такие как графика, некоторые станд. анимации и пр.) и область памяти, в которой хранятся настройки и данные пользователя (файловая система) - см. далее FLEX.
4. Reflash - Motorola-термин, определяющий, собственно, только часть прошивки с управляющей программой и её атрибутами, без FLEX.
5. NVM.
Отсюда было прочитано, что NVM и обсуждаемый в
исходной ветке файл psc.nvm, это, похоже, одно и тоже. Хранит в себе настройки батареи, радиотракта, подсветки и некоторые контрольные суммы. Его интересная особенность состоит в том, что он не входит в состав прошивки, и не хранится во flash (но в EEPROM!) и, естественно, поэтому
не бекапится FlashBackup!!!. То есть, файл psc.nvm, на самом деле, есть отображаемая в файловую систему EEPROM (она же NVRAM, отсюда и название). Этот файл необходимо сливать/заливать специальной программой (в частности, RadioComm), ибо другие с этой областью(типом) памяти общаться на запись не умеют. Насчет чтения напрямую этого файла через файловые менеджеры - не уверен, гуру поправят.
Далее...
6. FLEX - это просто область прошивки во flash, в которой хранятся настройки в виде SEEM(см. чуть далее) и файлы, организованные в файловую систему. Настройки во FLEX организованы в группы, называемые SEEM. Номер SEEM - это просто номер какой-либо из групп, начинающейся с определенного адреса во flash. Некоторые SEEM представляют из себя битовые карты(см. в конце поста), некоторые - хранят непосредственные значения.
- Какой именно номер SEEM имеет конкретная настройка и почему такой?
- По всей видимости, он определяется стандартным протоколом доступа (API) к этим настройкам (aka P2K Protocol). Напрямую во flash за ними лезть смысла не имеет (по крайней мере, никто не пытался), раз есть стандартный способ доступа. Заодно, это позволяет не искать в каждой новой прошивке адреса SEEMов заново.
7. PDS, она же "зона безопасности" - часть области SEEM'ов - в
этой теме есть описание. Представляет собой набор жизненно важных SEEM, сгруппированных в определенной зоне flash (естественно, относящейся к FLEX, адреса с 10010000 по 10020000), которые определяют конкретный экземпляр телефона. Хранит, в частности, залочки на оператора. Некоторые его SEEM шифрованы по алгоритму 3DES.
8. DRM - область прошивки(точнее, reflash'а, если строго), в которой хранится графическое оформление (стандартные картинки, анимации, цвета элементов и другое оформление).
9. Langpak - область reflash, хранящая все текстовые сообщения на различных языках. заменой оной можно менять имеющиеся в телефоне сообщения.
10. Bootloader. Это маленькая программа, которая хранится в самом микроконтроллере телефона (в EEPROM?) (но обычно, в самом контроллере, есть маленькая область, доступная по записи, которую он начинает выполнять сразу после включения). Она активируется в случае отсутствия чего-то похожего на прошивку(bootloader же и проверяет) во flash, либо при нажатии спец. комбинации клавиш при включении телефона и умеет заливать flash по внешнему интерфейсу.
P.S. Что такое "битовая карта". Битовая карта - понятие, обозначающее линейный массив бит. Применительно к Motorola - набор нескольких(1..N) байтов, каждый бит которых представляет какой-либо из параметров телефона и его значение (1 - вкл./0 - выкл.).
На данный момент - всё.
Надеюсь, кому-то это поможет.
Сообщение отредактировал Maximin - 3.4.2006, 12:08