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

Изменения

PDS

5704 байта добавлено, 17:23, 25 февраля 2009
Нет описания правки
== Что такое PDS ==
PDS - Persistent data storage - постоянное хранилище данных. Содержит, в основном, следующие сведения:
* IMEI телефона
* Серийный номер платы, версия аппаратной части и т. п.
* Калибровки
* Данные о блокировке телефона для использования с конкретным оператором
* Данные защиты
PDS является постоянным хранилищем в плане того, что обычная перепрошивка телефона не изменяет PDS. В PDS хранятся сведения, относящиеся к конкретному телефонному аппарату.

== Жизненный цикл PDS ==
На заводе телефон прошивают специальной прошивкой - RFDI, которая по сравнению с обычной полной прошивкой содержит бутлоадер и заготовку PDS. При первом запуске телефона прошивка проверяет наличие IMEI и, если его нет, заполняет заготовку PDS следующими данными:
* Серийные номера - считанные с оборудования
* Данные о блокировке - разрешено использовать любые SIM-карты
* Данные защиты - в соответствии с версией прошивки
Копия PDS с этими данными уже привязана к конкретному аппарату, и на другом аппарате прошивка с этим же PDS не запустится. Это связано с тем, что данные о блокировке и данные защиты хранятся в PDS в шифрованном виде. Шифрование обеспечивает контроллер безопасности, находящийся внутри микросхемы Neptune. Используется шифрование по алгоритму 3DES с помощью ключа, индивидуального для каждого экземпляра Neptune.

== Структура PDS ==
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 используется большинством прошивок. Каждая запись в ней состоит из следующих полей:
# Номер SEEM
# Атрибут
# Длина данных SEEM

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

== Расположение ==
PDS существует на всех моделях телефонов на базе Neptune ULS/LTE/LTE2. Её размер и адрес фиксированы и равны:
* Адрес - 0x1000C000, длина - 0x4000 байт (16 КБ) - для моделей на Neptune ULS
* Адрес - 0x10010000, длина - 0x10000 байт (64 КБ) - для моделей на Neptune LTE/LTE2
27
правок