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

PDS: различия между версиями

(Атрибуты)
Строка 20:Строка 20:
 
=== Атрибуты ===
 
=== Атрибуты ===
 
Устройство PDS подчинено особенностям использования флеш-памяти - а именно, можно менять отдельные единичные биты на нулевые, обратная операция выполнима лишь для блоков относительно большого размера. Поэтому для копий PDS, а также для записей в пределах каждой копии, используются атрибуты, показывающие состояние данной записи или копии.
 
Устройство PDS подчинено особенностям использования флеш-памяти - а именно, можно менять отдельные единичные биты на нулевые, обратная операция выполнима лишь для блоков относительно большого размера. Поэтому для копий PDS, а также для записей в пределах каждой копии, используются атрибуты, показывающие состояние данной записи или копии.
Атрибут представляет собой последовательность из 2 байт, представляющую собой двухбайтовое слово в порядке байт Big Endian ("первый старший") и может принимать следующее значение:
+
Атрибут представляет собой последовательность из 2 байт, представляющую собой двухбайтовое слово в порядке байт [[Big Endian]] ("первый старший") и может принимать следующее значение:
 
* 0xFFFF - не используется; применительно к атрибуту записи означает конец данной копии PDS, применительно к копии PDS - отсутствие данной копии.
 
* 0xFFFF - не используется; применительно к атрибуту записи означает конец данной копии PDS, применительно к копии PDS - отсутствие данной копии.
 
* 0xFFFA - заводской (ни разу не изменялся)
 
* 0xFFFA - заводской (ни разу не изменялся)

Версия 18:16, 25 февраля 2009

Что такое PDS

PDS - Persistent data storage - постоянное хранилище данных. Содержит, в основном, следующие сведения:

  • IMEI телефона
  • Серийный номер платы, версия аппаратной части и т. п.
  • Калибровки
  • Данные о блокировке телефона для использования с конкретным оператором
  • Данные защиты

PDS является постоянным хранилищем в плане того, что обычная перепрошивка телефона не изменяет PDS. В PDS хранятся сведения, относящиеся к конкретному телефонному аппарату.

Жизненный цикл PDS

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

  • Серийные номера - считанные с оборудования
  • Данные о блокировке - разрешено использовать любые SIM-карты
  • Данные защиты - в соответствии с версией прошивки

Копия PDS с этими данными уже привязана к конкретному аппарату, и на другом аппарате прошивка с этим же PDS не запустится. Это связано с тем, что данные о блокировке и данные защиты хранятся в PDS в шифрованном виде. Шифрование обеспечивает контроллер безопасности, находящийся внутри микросхемы Neptune. Используется шифрование по алгоритму 3DES с помощью ключа, индивидуального для каждого экземпляра Neptune.

Структура PDS на P2k

PDS содержит в себе 2 копии - активную и пассивную. Обе копии имеют равный размер и одинаковую структуру. Она начинается с последовательности символов "PDS_" и четырёх цифр версии, после них - атрибут, показывающий, активной или пассивной является данная копия. Из четырёх цифр версии наибольший интерес представляет первая - она может быть "2" или "4", соответственно, в общем о PDS говорят как о PDS версии 2 или PDS версии 4.

Атрибуты

Устройство PDS подчинено особенностям использования флеш-памяти - а именно, можно менять отдельные единичные биты на нулевые, обратная операция выполнима лишь для блоков относительно большого размера. Поэтому для копий PDS, а также для записей в пределах каждой копии, используются атрибуты, показывающие состояние данной записи или копии. Атрибут представляет собой последовательность из 2 байт, представляющую собой двухбайтовое слово в порядке байт Big Endian ("первый старший") и может принимать следующее значение:

  • 0xFFFF - не используется; применительно к атрибуту записи означает конец данной копии PDS, применительно к копии PDS - отсутствие данной копии.
  • 0xFFFA - заводской (ни разу не изменялся)
  • 0xFFF9 - активный
  • 0xFFF0 - пассивный (больше не имеет значения)

Новые записи могут только добавляться в PDS. Существующие удаляться или изменяться не могут, за исключением полной перезаписи PDS при её прошивании.

PDS версии 4

PDS версии 4 используется большинством прошивок. Каждая запись в ней состоит из следующих полей:

  1. Номер SEEM
  2. Атрибут
  3. Длина данных SEEM

PDS версии 2

PDS версии 2 отличается от версии 4 отсутствием поля длины данных, что создаёт некоторые трудности при разборе PDS.

Расположение

PDS существует на всех моделях телефонов на базе Neptune ULS/LTE/LTE2. Её размер и адрес фиксированы и равны:

  • Адрес - 0x1000C000, длина - 0x4000 байт (16 КБ) - для моделей на Neptune ULS
  • Адрес - 0x10010000, длина - 0x10000 байт (64 КБ) - для моделей на Neptune LTE/LTE2

Структура PDS на MOTOMAGX

PDS представляет собой yaffs файловую систему, смонтированную как /etc/pds. Файлы аппаратно шифруются в BP, AP-часть прошивки отвечает лишь за чтение, запись и передачу файлов по запросу BP.

Расположение

Так как yaffs привязана к специфике NAND, просто считать или записать образ нельзя. Область данных находится в начале NAND. Адрес - 0x100, длина - 0x30000 байт для Z6 (необходимо уточнить для других моделей; узнать можно из файла /proc/mtd и /proc/cmdline).