Открыть главное меню

RAMDLD (англ. RAM Downloader; загрузчик, лоадер) — ключевой элемент в процессе прошивания телефона. Представляет собой программу, записываемую в оперативную память телефона в самом начале прошивания, и со стороны телефона обеспечивает сам процесс прошивания.

ФункцииПравить

RAMDLD предназначен для:

  1. Стирания флеш-памяти
  2. Записи данных в флеш-память
  3. Проверки целостности записанных данных
  4. Выключения или перезапуска телефона

Стирание флеш-памятиПравить

Стирание памяти заключается в том, что содержимое определённых блоков флеш-памяти заменяется на блоки, целиком состоящие из единичных битов. Это необходимо для прошивания, поскольку при записи данных можно изменить единичный бит на нулевой, но не наоборот.

Таблица адресов стиранияПравить

Диапазоны адресов, для которых выполняется стирание флеш-памяти, записаны в RAMDLD по смещениям 0xF8-0x268 в виде пар из 4-байтовых слов. Первое слово в паре означает адрес первого, а последнее — последнего байта из диапазона стирания. Реально стираются целиком все блоки, попадающие в каждый из диапазонов.

Запись данных в флеш-памятьПравить

Сводится к тому, что с компьютера поблочно приходят данные для прошивания. RAMDLD их записывает и отправляет ответ об успешности или неуспешности операции записи.

Проверка целостности записанных данныхПравить

Производится с помощью контрольных сумм. Контрольная сумма представляет собой арифметическую сумму байт проверяемого блока по модулю 0x10000.

РазновидностиПравить

Фирменные RAMDLD от Motorola имеют цифровую подпись (кроме нескольких RAMDLD для LTE и всех - для LCA и ULS моделей). Эта цифровая подпись проверяется бутлоадером. Помимо этого, существуют любительские загрузчики и способы их запуска. Фирменные RAMDLD различаются следующими параметрами:

  • Возможностью чтения данных
  • Диапазоном адресов, разрешённых к чтению
  • Диапазоном адресов, разрешённых к записи и прошиванию

Ярким примером любительского RAMDLD является загрузчик от Vilko.

ИсточникиПравить

В каждом файле прошивки, предназначенном для использования фирменных инструментов для прошивания, находится свой RAMDLD. В нём установлены адреса стирания, соответствующие адресам прошивания имеющихся в файле прошивки кодовых групп. В обычных прошивках, как правило, разрешён доступ на чтение и запись только к областям кодовых групп. В RFDI загрузчик должен иметь полный доступ. У некоторых любительских инструментов (например, F&B) есть свой комплект RAMDLD.