PDS: различия между версиями
Строка 15: | Строка 15: | ||
Копия PDS с этими данными уже привязана к конкретному аппарату, и на другом аппарате прошивка с этим же PDS не запустится. Это связано с тем, что данные о блокировке и данные защиты хранятся в PDS в шифрованном виде. Шифрование обеспечивает контроллер безопасности, находящийся внутри микросхемы Neptune. Используется шифрование по алгоритму 3DES с помощью ключа, индивидуального для каждого экземпляра Neptune. | Копия PDS с этими данными уже привязана к конкретному аппарату, и на другом аппарате прошивка с этим же PDS не запустится. Это связано с тем, что данные о блокировке и данные защиты хранятся в PDS в шифрованном виде. Шифрование обеспечивает контроллер безопасности, находящийся внутри микросхемы Neptune. Используется шифрование по алгоритму 3DES с помощью ключа, индивидуального для каждого экземпляра Neptune. | ||
− | == Структура PDS на [[ | + | == Структура PDS на [[P2K]] и [[EZX]] == |
− | PDS содержит в себе 2 копии - активную и пассивную. Обе копии имеют равный размер и одинаковую структуру. Она начинается с последовательности символов "PDS_" и четырёх цифр версии, после них - атрибут, показывающий, активной или пассивной является данная копия. Из четырёх цифр версии наибольший интерес представляет первая - она может быть "2" или "4", соответственно, в общем о PDS говорят как о PDS версии 2 или PDS версии 4. | + | [[PDS]] содержит в себе 2 копии - активную и пассивную. Обе копии имеют равный размер и одинаковую структуру. Она начинается с последовательности символов "PDS_" и четырёх цифр версии, после них - атрибут, показывающий, активной или пассивной является данная копия. Из четырёх цифр версии наибольший интерес представляет первая - она может быть "2" или "4", соответственно, в общем о [[PDS]] говорят как о [[PDS]] версии 2 или [[PDS]] версии 4. |
=== Атрибуты === | === Атрибуты === | ||
− | Устройство PDS подчинено особенностям использования флеш-памяти - а именно, можно менять отдельные единичные биты на нулевые, обратная операция выполнима лишь для блоков относительно большого размера. Поэтому для копий PDS, а также для записей в пределах каждой копии, используются атрибуты, показывающие состояние данной записи или копии. | + | Устройство [[PDS]] подчинено особенностям использования флеш-памяти - а именно, можно менять отдельные единичные биты на нулевые, обратная операция выполнима лишь для блоков относительно большого размера. Поэтому для копий [[PDS]], а также для записей в пределах каждой копии, используются атрибуты, показывающие состояние данной записи или копии. |
Атрибут представляет собой последовательность из 2 байт, представляющую собой двухбайтовое слово в порядке байт [[Big Endian]] ("первый старший") и может принимать следующее значение: | Атрибут представляет собой последовательность из 2 байт, представляющую собой двухбайтовое слово в порядке байт [[Big Endian]] ("первый старший") и может принимать следующее значение: | ||
− | * 0xFFFF - не используется; применительно к атрибуту записи означает конец данной копии PDS, применительно к копии PDS - отсутствие данной копии. | + | * 0xFFFF - не используется; применительно к атрибуту записи означает конец данной копии [[PDS]], применительно к копии [[PDS]] - отсутствие данной копии. |
* 0xFFFA - заводской (ни разу не изменялся) | * 0xFFFA - заводской (ни разу не изменялся) | ||
* 0xFFF9 - активный | * 0xFFF9 - активный | ||
* 0xFFF0 - пассивный (больше не имеет значения) | * 0xFFF0 - пассивный (больше не имеет значения) | ||
− | Новые записи могут только добавляться в PDS. Существующие удаляться или изменяться не могут, за исключением полной перезаписи PDS при её прошивании. | + | Новые записи могут только добавляться в [[PDS]]. Существующие удаляться или изменяться не могут, за исключением полной перезаписи [[PDS]] при её прошивании. |
− | === PDS версии 4 === | + | === [[PDS]] версии 4 === |
− | PDS версии 4 используется большинством прошивок. Каждая запись в ней состоит из следующих полей: | + | [[PDS]] версии 4 используется большинством прошивок. Каждая запись в ней состоит из следующих полей: |
# Номер [[SEEM]] | # Номер [[SEEM]] | ||
# Атрибут | # Атрибут | ||
− | # Длина данных SEEM | + | # Длина данных [[SEEM]] |
=== PDS версии 2 === | === PDS версии 2 === | ||
− | PDS версии 2 отличается от версии 4 отсутствием поля длины данных, что создаёт некоторые трудности при разборе PDS. | + | [[PDS]] версии 2 отличается от версии 4 отсутствием поля длины данных, что создаёт некоторые трудности при разборе [[PDS]]. |
=== Расположение === | === Расположение === | ||
− | PDS существует на всех моделях телефонов на базе Neptune ULS/LTE/LTE2. Её размер и адрес фиксированы и равны: | + | [[PDS]] существует на всех моделях телефонов на базе [[Neptune]] [[ULS]]/[[LTE]]/[[LTE2]]. Её размер и адрес фиксированы и равны: |
− | + | {| border="1" | |
− | + | |- style="background:#bfbfbf; font-weight: bold" | |
+ | ! Модель [[Neptune]] | ||
+ | ! Диапазон [[Адресное пространство|адресов]] | ||
+ | ! Размер | ||
+ | |- | ||
+ | | [[ULS]] | ||
+ | | 0x1000C000-0x10010000 | ||
+ | | 0x4000 байт (16 КБ) | ||
+ | |- | ||
+ | | [[LTE]]/[[LTE2]] | ||
+ | | 0x10010000-0x10010000 | ||
+ | | 0x10000 байт (64 КБ) | ||
+ | |- | ||
+ | |} | ||
== Структура PDS на [[MOTOMAGX]] == | == Структура PDS на [[MOTOMAGX]] == |
Версия 19:27, 26 февраля 2009
Содержание
Что такое PDS
PDS - Persistent data storage - постоянное хранилище данных. Содержит, в основном, следующие сведения:
- Копию IMEI телефона
- Серийный номер платы, версия аппаратной части и т. п.
- Калибровки
- Данные о блокировке телефона для использования с конкретным оператором
- Данные защиты
PDS является постоянным хранилищем в плане того, что обычная перепрошивка телефона не изменяет PDS. В PDS хранятся сведения, относящиеся к конкретному телефонному аппарату.
Жизненный цикл PDS
На заводе телефон прошивают специальной прошивкой - RFDI, которая по сравнению с обычной полной прошивкой содержит бутлоадер и заготовку PDS. При первом запуске телефона прошивка проверяет наличие IMEI и, если его нет, заполняет заготовку PDS следующими данными:
- Серийные номера - считанные с оборудования
- Данные о блокировке - разрешено использовать любые SIM-карты
- Данные защиты - в соответствии с версией прошивки
Копия PDS с этими данными уже привязана к конкретному аппарату, и на другом аппарате прошивка с этим же PDS не запустится. Это связано с тем, что данные о блокировке и данные защиты хранятся в PDS в шифрованном виде. Шифрование обеспечивает контроллер безопасности, находящийся внутри микросхемы Neptune. Используется шифрование по алгоритму 3DES с помощью ключа, индивидуального для каждого экземпляра Neptune.
Структура PDS на P2K и EZX
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 используется большинством прошивок. Каждая запись в ней состоит из следующих полей:
PDS версии 2
PDS версии 2 отличается от версии 4 отсутствием поля длины данных, что создаёт некоторые трудности при разборе PDS.
Расположение
PDS существует на всех моделях телефонов на базе Neptune ULS/LTE/LTE2. Её размер и адрес фиксированы и равны:
Модель Neptune | Диапазон адресов | Размер |
---|---|---|
ULS | 0x1000C000-0x10010000 | 0x4000 байт (16 КБ) |
LTE/LTE2 | 0x10010000-0x10010000 | 0x10000 байт (64 КБ) |
Структура PDS на MOTOMAGX
PDS представляет собой yaffs файловую систему, смонтированную как /etc/pds. Файлы аппаратно шифруются в BP, AP-часть прошивки отвечает лишь за чтение, запись и передачу файлов по запросу BP.
Расположение
Так как yaffs привязана к специфике NAND, просто считать или записать образ нельзя. Область данных находится в начале NAND. Адрес - 0x100, длина - 0x30000 байт для Z6 (необходимо уточнить для других моделей; узнать можно из файла /proc/mtd и /proc/cmdline).