Значит наверно начну со структуры ПДС.
Тут все просто, сначала идет PDS_х0хх - это просто название и версия, может быть 2006,4001,4002 и т. д
затем сразу после этого идет метка FFFx(0 или 9), если 9 - активный ПДС, если 0 - не активный.
Дальше сами симы пошли....
название сима 4 байта, затем метка FFFх(9,0 или A). 9 -активный сим, 0 - не активный (не рабочий) или А - это сим активный не менялся ни разу.
После метки идет размер сима (4 байта) (во 2 версии ПДС нет размера, там приходиться ориентироваться на FFFx)....ну а потом сам сим длинной в размер. Потом следующий сим....
Симов много, всех их не рассказать. Есть таблица взятая из Радиокома
Код: Выделить всё
| IsFactor|Encrypte|Locked| Description
003A| | | | SEEM_GSM_CHECKSUM
003C| | | | SEEM_BATTERY_CHECKSUM
005F| | + | | SEEM_SUBSIDY_LOCK_GSM_HLR_TABLE
0079| + | + | | SEEM_ESN
0136| + | + | | SEEM_SUBSIDY_LOCK
0139| + | + | | SEEM_DFLT_SUBSIDY_LOCK
0145| | | | SEEM_SBCM_BATT_DATA_DFLTS
015B| | + | | SEEM_SUBSIDY_LOCK_GSM_HPLMN_LIST
015C| | + | + | SEEM_SUBSIDY_LOCK_GSM_SSCP
015D| | + | + | SEEM_SUBSIDY_LOCK_GSM_NWSCP
015E| + | + | | SEEM_SUBSIDY_LOCK_GSM_VALID_PLMN_LIST
0161| | + | + | SEEM_SUBSIDY_LOCK_GSM_SIM_SP_CODE
0162| + | + | | SEEM_OTA_SUBSIDY_LOCK_CODE
0163| + | + | | SEEM_DFLT_OTA_SUBSIDY_LOCK_CODE
017B| + | + | | SEEM_SUBSIDY_LOCK_OTKSL_PASSWORD
0181| | | | SEEM_DFLT_DISPLAY_SETTINGS
0184| + | + | | SEEM_INTIAL_PHONE_LOCK_CODE
0185| + | + | | SEEM_SUBSIDY_LOCK_SOC_TABLE
0186| + | + | | SEEM_SUBSIDY_LOCK_BIT_AND_CLR_SSD_BIT
0189| | + | + | SEEM_SUBSIDY_LOCK_SECONDARY_SP_CODE
01BB| | + | + | SEEM_SERVICE_PASSWORD
01C1| + | | | SEEM_IN_FACTORY
01C3| | + | | SEEM_GLOBAL_FEATURE_PROTECTED_STATE_NVM
01C4| | + | | SEEM_GLOBAL_FEATURE_PROTECTED_STATE_DEFAULT_NVM
01C5| | + | | SEEM_GLOBAL_FEATURE_PROTECTED_VALUE_NVM
01C6| | + | | SEEM_GLOBAL_FEATURE_PROTECTED_VALUE_DEFAULT_NVM
01C7| | + | | SEEM_GLOBAL_PROTECTED_FLEX_TABLE
01F8| + | + | | SEEM_AIRTEL_LOCK_CODES
01F9| + | + | | SEEM_AIRTEL_UNLOCK_CODES
01FA| + | + | | SEEM_SUBSIDY_LOCK_3RD_SP_CODE
0279| | | | SEEM_ALL_EXT_DATA_SESS_TIME
028B| + | | | SEEM_FACTORY_HW_INFO
02D2| | | | SEEM_BOOT_SW_VER
02D3| | | | SEEM_BOOT_FLEX_MODEL
02DB| + | | | SEEM_DESENSE_MFN_DELTA
02DC| + | | | SEEM_DESENSE_CHANNEL_LIST
02E7| | + | + | SEEM_PRODUCT_SECURITY_VERSION
02F1| | | | SEEM_RSSI_OFFSET
02F4| + | | | SEEM_RXLEV_REPORT_ENHANCEMENTS
02FB| + | | | SEEM_KEYPAD_MAX_ARRAY
02FC| + | | | SEEM_KEYPAD_MULTIKEY_MAX_COMMON_ROWS
02FD| + | | | SEEM_KEYPAD_ROW4_ARRAY
02FE| + | | | SEEM_KEYPAD_ROW4_FLAG
Encrypted - зашифрованные (3DES)
Locked - золоченые (не считываются P2kSeem-ом)
Во второй версии ПДС есть еще два шифрованных сима (015F И 0160), они тоже зашифрованы. Но они не используются в 4 версии ПДС. И наоборот когда конвертишь и ПДС с 4 во 2 просто убираешь эти симы. Да, еще когда конвертишь ПДС с 4 во 2 надо убрать у всех симов "размер", этим ПДС и отличается
после каждого изменения в конец ПДС (после измененного сима) дописывается еще сим 29E - это чексум всех активных симов - считается вычитанием из FFFF содержимого всех активных симов "повордно".
например есть сим 00 0A FF F9 00 04 02 06 98 92
его рабочее значение - 02 06 98 92
тогда чексум будет равен FFFFh- 0206h - 9892h = 6567h
6567h - это чексум для этого числа, из него уже вычитаем содержимое следующего сима и т.п.
Вот собственно и все наверно...все просто.
Даю пример на всякий случай....
(PDS_4001)-5044 535F 3430 3031 (метка)-FFF9 (название сима)-029E (метка)-FFF0 (размер)-0002
(сам сим)-CA62 (название сима)-003A (метка)-FFF9 (размер)-0002 (сам сим)-208E (название сима)-0000 (метка)-FFF9 (размер)-0004
(сам сим)-0F00 0002
0001 FFFA 0002 01FF
0006 FFF9 (очень большой сим)-0204 0149 0018 0018 0018 0019 0019 0019
0090 0098 0078 0002 0003 0002 0003 FFFE
1F55 1F95 2000 2038 2092 012D 012D 012D
012D 012D 012D 00F9 00C5 008E 0062 011D
00C8 0085 0051 0028 00F4 00A4 0083 0066
004C 0018 0022 005C 009A 0807 0A0F 3333
3333 3333 3434 3434 4545 4545 5566 6666
6666 C040 403B 6255 0D09 0500 0000 7C80
7C78 7801 4900 0800 0800 0800 0900 0900
0900 6800 8000 9000 00FF FF00 00FF FEFF
FF20 3820 4420 0020 0D1F 8701 A901 5D01
1E00 D800 A101 B701 4800 F300 B000 7D00
5400 3500 8300 6200 4500 2B00 2B00 2B00
2B00 2B00 1800 1F00 4700 AC08 0205 0C44
4444 4444 5656 5555 5555 5566 6666 6666
6666 66C0 4040 2834 730D 0804 0000 0044
4844 4040 0149 0008 0008 0008 0009 0009
0009 0070 0080 0068 0001 0001 FFFE 0000
0000 1F8F 1FC5 2000 1F8E 1F85 01A6 0158
0118 00D3 009C 018C 0121 00CD 008B 0057
0132 00D1 0083 0063 0046 002C 002C 002C
002C 002C 0018 001F 0038 00CC 0F02 050A
5555 5555 5566 6666 6666 7777 7777 7777
7777 7777 C040 402A 5873 0C08 0300 0000
3C3C 4044 4401 4900 1800 2800 0800 1900
2900 0900 8800 9800 7800 0400 05FF FF00
0100 031F 1F1F 7820 001F EB20 0E01 1301
1301 1301 1301 1301 1300 E200 B300 8000
5801 0300 B600 7900 4A00 2400 DF00 9600
7800 5D00 4600 1800 2000 5D00 AC0F 070A
0F33 3333 3333 3334 3434 3445 4545 4545
6666 6666 66C0 4040 3759 4C0D 0905 0000
00AC B0A0 9494
Вот И все.
Прикладываю гениальную программу от InDesign, которая умеет разбирать на симы и собирать из них ПДС заданной версии. PDSTool
Программа для "пересборки" зоны безопасности PDS, которая необходима для взлома плеера iTunes на прошивках 42R и старше.