Что нового

Область OTP в eMMC - можно ли с ней работать?

3/3/06
4 068
1 581
Новосибирск
QR Code
Меня никто не слышит? OTP сидит внутри ROM1 никаких волшебных комманд для секретного OTP в JEDEC нету.
Слышим прекрасно. К сожалению, это не вносит ясности, а лишь вызывает новые вопросы о ее определении.

1. Действительно, в считанном CM2MTK фулле нашлись нестираемые (читал фулл два раза, до формата тела флештулом и после) данные из OTP, в самом его конце (98%). Однако, при чтении OTP отдельно, я дал флештулу дал стартовый адрес 0x0. Как флештул (и модем аппарата) нашли эту зону? Ее адреса не могут быть стандартизированы, ибо во флешке бОльшего размера 98% от ее объема будут находиться по другому адресу. Или Flash Tool-таки работает с OTP спецкомандами, через процесссор или eMMC контроллер, который с завода "выделил" часть ROM1 под OTP и он один знает, где именно? Это объяснило бы крайне медленные чтение и запись (напомню, 1 мегабайт за три минуты!)
2. В чем отличие участка OTP от любого другого пространства ROM1, если оно вообще есть? Эта зона как-то специально выделена на заводе-производителе памяти, или я, как и телефоны, не использующие OTP, могут спокойно стирать-писать туда что угодно? Тогда кто и когда превращает ее в ONE Time Programmable?
3. Каков ее объем в разных флешках, кто и как его устанавливает?
4. И вообще, эта OTP - часть JEDEC или "произвол" процессоров MTK, которые берут и объявляют часть памяти Read Only? Если да, то на колодке я от такой "OTP" ни бита не оставлю.

На эти вопросы ответа по-прежнему нет. Пока что я мучал аппарат по USB, что не вполне корректно: на этом процессоре в считанном фулле присутствует не только ROM1. Там есть и ROM2 c прелоадером, и пустой ROM3. Завтра подкину флеш на колодку, считаю уж точно только ROM1 и проверю, есть ли там данные из OTP и будут ли они стираться при сервисных операциях.

p.s. на практику эта неопределенность не влияет, один аппарат я
купить чтобы получить доступ к скрытому контенту.
.
 
Последнее редактирование:
18/9/04
6 107
1 939
Milky Way, Sun, Earth
А вот и ответ о длинe OTP в данном аппарате.
Значения более чем 0x400000 флештулом не принимаются, см. фото. Итого OTP в этом аппарате 4 мегабайта.
Не факт, что 4 мегабайта. У меня такую ошибку флэштул выдавал при несоответствии размера считываемых блоков 512 байтам. Происходило это во вкладке ReadBack, и происходило потому, что флэштул читает из флэш блоками по 512 байт (0x200) на этой вкладке, не меньше. У Вас на фото стоит размер 0x400001, единичка в конце указывает на блок 1 байт. Попробуйте выставить размер 0x3FFFFF (на 1 байт в меньшую сторону), и если не считается, а выдаст ошибку, то это будет подтверждением моих слов. В этом случае, попробуйте "поиграться" с размером блоков, есть предположение, что этот размер на вкладке Parameter может быть значительно меньше, чем на вкладке ReadBack, вплоть до 4-х байт.
крайне медленные чтение и запись (напомню, 1 мегабайт за три минуты!)
Объяснением этому может служить предположение, что флэштул в этом режиме читает маленькими блоками, много меньшими, чем 512 байт в обычном режиме.
 
3/3/06
4 068
1 581
Новосибирск
QR Code
Изначально я и прибавлял кратные значения. Потом уменьшал разброс, чтобы найти "границу".
Единичка - просто для наглядности, длины больше 0x400000 на этом аппарате не принимаются никакие.

0x3FFFFF читается без ошибок.
 

NoName®

Z3x Team
.
23/5/06
853
429
Значит на вкладке Parameter минимальный размер блока для чтения - 1 байт. Это здОрово.
Потому и долго читается, думаю.

Из выложенного документа следует - размер OTP раздела HC_WP_GRP_SIZE*512K блоков. Ищется по мэджику OTP из выше указанных исходников.
 
3/3/06
4 068
1 581
Новосибирск
QR Code
Всегда после замены флеши на алкателях с otp imei 0/0 и "сеть" будет, при условии что модем в настройках отображается
IMEI будет неверным. Сети не будет.

В аттаче скриншоты с 6037Y до прописывания OTP и после. Кроме записи OTP никаких действий с аппаратом не производилось.
 

Вложения

Последнее редактирование:
3/3/06
4 068
1 581
Новосибирск
QR Code
Итак, я изнасиловал новый Alcatel 4033D.

eMMC KMN5X000ZM-B209, OTP прописана и залочена.
Форматирую тело через FT, снимаю флеш, ставлю на колодку, читаю образ ROM1 EasyJTAG'ом.
Код:
eMMC Device Information
EMMC CID : 1501004E35585A4D4201A2B9DE55916C
EMMC CSD : D02701320F5903FFF6DBFFEF8E40400C
EMMC Manufacturer ID: 0015 , OEM ID: 0100
EMMC Date: 09/2014 Rev.0x1
EMMC NAME: N5XZMB , S/N: 2730090069
EMMC NAME (HEX): 4E35585A4D4200 
EMMC ROM1 (Main User Data) Capacity: 3728 MB
EMMC ROM2 (Boot Partition 1) Capacity: 4096 kB
EMMC ROM3 (Boot Partition 2) Capacity: 4096 kB
EMMC RPMB (Replay Protected Memory Block) Capacity: 512 kB
EMMC Permanent Write Protection: No
EMMC Temporary Write Protection: No
Extended CSD rev 1.7 (MMC 5.0)
Boot configuration [PARTITION_CONFIG: 0x48] Boot from:ROM2 (Boot Partition 1)
Boot bus config [177]: 0x00 , width 1bit , Partition config [179]: 0x48.
H/W reset function [RST_N_FUNCTION]: 0x01
High-capacity W protect group size [HC_WP_GRP_SIZE: 0x00]
Partitioning Support [PARTITIONING_SUPPORT]: 0x07
Device support partitioning feature
Device can have enhanced tech.
Partitioning Setting [PARTITION_SETTING_COMPLETED]: 0x00
Backup saved: N5XZMB_2730090069_20161211_1550.extcsd
=============================================
Extended CSD rev 1.7 (MMC 5.0)
=============================================
Card Supported Command sets [S_CMD_SET: 0x01]
HPI Features [HPI_FEATURE: 0x01]: 
implementation based on CMD13
Background operations support [BKOPS_SUPPORT: 0x01]
Max Packet Read Cmd [MAX_PACKED_READS: 0x3f]
Max Packet Write Cmd [MAX_PACKED_WRITES: 0x3f]
Data TAG support [DATA_TAG_SUPPORT: 0x01]
Data TAG Unit Size [TAG_UNIT_SIZE: 0x04]
Tag Resources Size [TAG_RES_SIZE: 0x00]
Context Management Capabilities [CONTEXT_CAPABILITIES: 0x05]
Large Unit Size [LARGE_UNIT_SIZE_M1: 0x07]
Extended partition attribute support [EXT_SUPPORT: 0x03]
Generic CMD6 Timer [GENERIC_CMD6_TIME: 0x0a]
Power off notification [POWER_OFF_LONG_TIME: 0x3c]
Cache Size [CACHE_SIZE] is 65536 KiB
Background operations status [BKOPS_STATUS: 0x00]
1st Initialisation Time after programmed sector [INI_TIMEOUT_AP: 0x1e]
Power class for 52MHz, DDR at 3.6V [PWR_CL_DDR_52_360: 0x00]
Power class for 52MHz, DDR at 1.95V [PWR_CL_DDR_52_195: 0x00]
Power class for 200MHz at 3.6V [PWR_CL_200_360: 0x00]
Power class for 200MHz, at 1.95V [PWR_CL_200_195: 0x00]
Minimum Performance for 8bit at 52MHz in DDR mode:
[MIN_PERF_DDR_W_8_52: 0x00]
[MIN_PERF_DDR_R_8_52: 0x00]
TRIM Multiplier [TRIM_MULT: 0x02]
Secure Feature support [SEC_FEATURE_SUPPORT: 0x55]
Boot Information [BOOT_INFO: 0x07]
Device supports alternative boot method
Device supports dual data rate during boot
Device supports high speed timing during boot
Boot partition size [BOOT_SIZE_MULTI: 0x20]
Access size [ACC_SIZE: 0x06]
High-capacity erase unit size [HC_ERASE_GRP_SIZE: 0x01]
High-capacity erase timeout [ERASE_TIMEOUT_MULT: 0x01]
Reliable write sector count [REL_WR_SEC_C: 0x01]
High-capacity W protect group size [HC_WP_GRP_SIZE: 0x10]
Sleep current (VCC) [S_C_VCC: 0x07]
Sleep current (VCCQ) [S_C_VCCQ: 0x07]
Sleep/awake timeout [S_A_TIMEOUT: 0x11]
Sector Count [SEC_COUNT: 0x00748000]
Minimum Write Performance for 8bit:
[MIN_PERF_W_8_52: 0x00]
[MIN_PERF_R_8_52: 0x00]
[MIN_PERF_W_8_26_4_52: 0x00]
[MIN_PERF_R_8_26_4_52: 0x00]
Minimum Write Performance for 4bit:
[MIN_PERF_W_4_26: 0x00]
[MIN_PERF_R_4_26: 0x00]
Power classes registers:
[PWR_CL_26_360: 0x00]
[PWR_CL_52_360: 0x00]
[PWR_CL_26_195: 0x00]
[PWR_CL_52_195: 0x00]
Partition switching timing [PARTITION_SWITCH_TIME: 0x01]
Out-of-interrupt busy timing [OUT_OF_INTERRUPT_TIME: 0x05]
I/O Driver Strength [DRIVER_STRENGTH: 0x1f]
Card Type [CARD_TYPE: 0x57]
CSD structure version [CSD_STRUCTURE: 0x02]
Command set [CMD_SET: 0x00]
Command set revision [CMD_SET_REV: 0x00]
Power class [POWER_CLASS: 0x00]
High-speed interface timing [HS_TIMING: 0x00]
Erased memory content [ERASED_MEM_CONT: 0x00]
Boot configuration bytes [PARTITION_CONFIG: 0x48]
No access to boot partition
Boot config protection [BOOT_CONFIG_PROT: 0x00]
Boot bus Conditions [BOOT_BUS_CONDITIONS: 0x00]
High-density erase group definition [ERASE_GROUP_DEF: 0x00]
Boot write protection status registers [BOOT_WP_STATUS]: 0x00
Boot Area Write protection [BOOT_WP]: 0x00
Power ReadOnly locking: possible
Permanent ReadOnly locking: possible
Read Only lock status: not locked
User area write protection register [USER_WP]: 0x00
FW configuration [FW_CONFIG]: 0x00
RPMB Size [RPMB_SIZE_MULT]: 0x04
Write reliability setting register [WR_REL_SET]: 0x1f
Write reliability parameter register [WR_REL_PARAM]: 0x04
Enable background operations handshake [BKOPS_EN]: 0x00
H/W reset function [RST_N_FUNCTION]: 0x01
HPI management [HPI_MGMT]: 0x00
Partitioning Support [PARTITIONING_SUPPORT]: 0x07
Device support partitioning feature
Device can have enhanced tech.
Max Enhanced Area Size [MAX_ENH_SIZE_MULT]: 0x00009b
Partitions attribute [PARTITIONS_ATTRIBUTE]: 0x00
Partitioning Setting [PARTITION_SETTING_COMPLETED]: 0x00
General Purpose Partition Size [GP_SIZE_MULT_4]: 0x000000
[GP_SIZE_MULT_3]: 0x000000
[GP_SIZE_MULT_2]: 0x000000
[GP_SIZE_MULT_1]: 0x000000
Enhanced User Data Area Size [ENH_SIZE_MULT]: 0x000000
Enhanced User Data Start Address [ENH_START_ADDR]: 0x000000
Bad Block Management mode [SEC_BAD_BLK_MGMNT]: 0x00
Periodic Wake-up [PERIODIC_WAKEUP]: 0x00
Program CID/CSD in DDR mode support [PROGRAM_CID_CSD_DDR_SUPPORT]: 0x01
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[127]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[126]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[125]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[124]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[123]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[122]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[121]]: 0x21
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[120]]: 0x19
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[119]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[118]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[117]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[116]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[115]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[114]]: 0x01
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[113]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[112]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[111]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[110]]: 0xa0
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[109]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[108]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[107]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[106]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[105]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[104]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[103]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[102]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[101]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[100]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[99]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[98]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[97]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[96]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[95]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[94]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[93]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[92]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[91]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[90]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[89]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[88]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[87]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[86]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[85]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[84]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[83]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[82]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[81]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[80]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[79]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[78]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[77]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[76]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[75]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[74]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[73]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[72]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[71]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[70]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[69]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[68]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[67]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[66]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[65]]: 0x00
Vendor Specific Fields [VENDOR_SPECIFIC_FIELD[64]]: 0x0f
Native sector size [NATIVE_SECTOR_SIZE]: 0x00
Sector size emulation [USE_NATIVE_SECTOR]: 0x00
Sector size [DATA_SECTOR_SIZE]: 0x00
1st initialization after disabling sector size emulation [INI_TIMEOUT_EMU]: 0x00
Class 6 commands control [CLASS_6_CTRL]: 0x00
Number of addressed group to be released[DYNCAP_NEEDED]: 0x00
Exception events control [EXCEPTION_EVENTS_CTRL]: 0x0000
Exception events status[EXCEPTION_EVENTS_STATUS]: 0x0000
Extended Partitions Attribute [EXT_PARTITIONS_ATTRIBUTE]: 0x0000
Context configuration [CONTEXT_CONF[51]]: 0x00
Context configuration [CONTEXT_CONF[50]]: 0x00
Context configuration [CONTEXT_CONF[49]]: 0x00
Context configuration [CONTEXT_CONF[48]]: 0x00
Context configuration [CONTEXT_CONF[47]]: 0x00
Context configuration [CONTEXT_CONF[46]]: 0x00
Context configuration [CONTEXT_CONF[45]]: 0x00
Context configuration [CONTEXT_CONF[44]]: 0x00
Context configuration [CONTEXT_CONF[43]]: 0x00
Context configuration [CONTEXT_CONF[42]]: 0x00
Context configuration [CONTEXT_CONF[41]]: 0x00
Context configuration [CONTEXT_CONF[40]]: 0x00
Context configuration [CONTEXT_CONF[39]]: 0x00
Context configuration [CONTEXT_CONF[38]]: 0x00
Context configuration [CONTEXT_CONF[37]]: 0x00
Packed command status [PACKED_COMMAND_STATUS]: 0x00
Packed command failure index [PACKED_FAILURE_INDEX]: 0x00
Power Off Notification [POWER_OFF_NOTIFICATION]: 0x00
Control to turn the Cache ON/OFF [CACHE_CTRL]: 0x00
Searching for partition tables...
Partitioning not detected...
Никаких GP-разделов, как видим, на ней нет. Таблицы софтовых разделов MBR тоже нет, она стерта. А вот OTP-область действительно есть и находится внутри ROM1 по адресам 0x0E5000000 - 0x0E57FFFFF, (8 мегабайт), см. скриншоты 1-3. Там имеются IMEI платы и туда невозможно ничего стереть/записать - Block verify fail! За пределами этого участка все пишется-читается, см. скриншот 4.


Начинаю мучения:
1. Выполняю MoviNAND Format + Reset и читаю этот блок еще раз. Данные из OTP пропали! Кроме того, теперь этот блок стал прописываться тестовым файлом без ошибок: вся OTP-область исчезла как не бывало. Стало быть, с завода ее там не было, появилась позже.

2. Ставлю eMMC обратно на плату, вливаю фулл, считанный с нее до формата, читаю OTP через флештул - и вижу что IMEI на месте. Содержимое OTP влилось из фулла, а ее адреса флештул получил из scatter:
Код:
- partition_index: SYS21
  partition_name: OTP
  file_name: NONE
  is_download: false
  type: NORMAL_ROM
  linear_start_addr: 0xFFFF0200
  physical_start_addr: 0xFFFF0200
  partition_size: 0x2B00000
  region: EMMC_USER
  storage: HW_STORAGE_EMMC
  boundary_check: false
  is_reserved: true
  operation_type: RESERVED
  reserve: 0x00
...однако, этот 0xFFFF0200 мало того что не соответствует 0xE5000000 даже близко, так еще и находится за пределами 3728Мб, имеющихся в ROM1. Равно как и размер 0x2B00000 (43Mb) не совпадает с экспериментально найденным 8Mb. Эти адреса в скаттере явно не прямые. Кстати, OTP-область теперь не залочена и принимает файлы на запись.

3. Меняю этот адрес на 0xFFFF0100, выбираю в FT новый скаттер, пишу туда некий блок данных, читаю - совпадает. Кажись, я только что создал новую OTP-зону. "Старая" OTP при этом на месте и читается при выборе старого scatter.

4. Делаю Format Whole Flash - данные из обеих (незакрытых) OTP исчезли.

5. Повторяю пункты 3-4, но закрыв обе OTP после записи (закрывались они независимо друг от друга, то есть, после закрытия первой, вторая еще давала себя переписывать - похоже, создались две совершенно разные зоны). Теперь данные из обеих OTP остались.

6. Залил фулл, включил тело. IMEI на месте, то есть мусорные данные из "второй OTP" модемом игнорируются.

7. Проверяю эту ерунду с адресами. Снова снимаю eMMC и на колодку, посмотрим, где теперь окажутся обе OTP.
Первая - на прежнем месте и прежней длины. Вторая нашлась по адресам 0x0E7000000 - 0xE7800000 (снова 8 мегабайт). То есть, несмотря на то что я уменьшил адрес второй OTP в скаттере на 0x100, по факту она оказалась на 32 мегабайта дальше первой. Похоже, тамошний адрес еще и инвертированный, отсчитывается от конца ROM1.

8. Теперь посмотрим, не попадают ли эти зоны в какой-нибудь из логических разделов телефона. Адрес 0xE5000000 это 3664-й мегабайт, то есть самый конец ROM1, за 64 мегабайта до границы раздела. Последний раздел USERDATA по scatter имеет адрес 0x5D680000 и длину 0x88200000, то есть оканчивается на 0xE5880000. Однако, из этого числа нужно вычесть 8,5 мегабайт (0x880000) т.к. вначале идут ROM2(4Мб) + ROM3(4Мб) + RPMB(512к). 0xE5880000 - 0x880000 = 0xE500000. Получается, OTP-зоны начинаются байт-в-байт сразу за Userdata и расположены дальше, в небольшом "зазоре" между ней и границей ROM1.


Итого выяснено:
1. OTP-зона является частью стандарта JEDEC и создается/читается флештулом по спецадресам в scatter-файле прошивки. Новые eMMC такой зоны не имеют.
2 У OTP-зоны отсутствуют какие-либо сигнатуры: она начинается сразу с записанных в нее данных. До и после этих данных сплошные нули.
3. Под нее отводится самый хвост раздела ROM1; логические разделы прошивок намеренно обходят это место.
4. OTP-зона может быть определена только в scatter и не создаваться в виде отдельного логического раздела, то есть отсутствовать в MBR/EBR/GPT/PMT аппарата.
5. На одной eMMC можно создать несколько OTP-зон с независимыми состояниями. Модем аппарата ищeт нужную по вшитым в него адресам, совпадающим с адресами в scatter.
6. Закрытая OTP-зона может быть стерта форматом либо обновлением прошивки контроллера на eMMC Samsung. Недавно введенный Universal Format для флешек других производителей еще предстоит проверить.

Осталось выяснить:
1. Как адрес 0xFFFF0200 из scatter переводится в "отступить 64 мегабайта от границы ROM1"?
2. Каким образом определяется размер создаваемой OTP-зоны? Длина в scatter не соответствует фактически создаваемой, равно как и формулe HC_WP_GRP_SIZE * 512k. Пока что встречались значения 4Мб и 8Мб.
3. Как и какими средствами внутри eMMC прописываются границы OTP-зоны? Какими регистрами и где? Можно ли их сбросить?


P.S. NoName, eMMC Tool Suite льет прошивку на основе scatter НЕПРАВИЛЬНО! Она пихает прелоадер в ROM1. Бокс на букву М отрабатывает такой же скаттер корректно, надо и иксам исправить.
 

Вложения

Последнее редактирование:

tihiy_grom

Z3X-Team
.
P.S. NoName, eMMC Tool Suite льет прошивку на основе scatter НЕПРАВИЛЬНО! Она пихает прелоадер в ROM1. Бокс на букву М отрабатывает такой же скаттер корректно, надо и иксам исправить.
исправили уже
вы скорее всего юзаете старую версию с этим глюком
 
18/9/04
6 107
1 939
Milky Way, Sun, Earth
Radiotrance сказал(а):
Осталось выяснить:
1. Как адрес 0xFFFF0200 из scatter переводится в "отступить 64 мегабайта от границы ROM1"?
JayDi уже писал Вам про это:

Как угодно, например, на уровне загрузчика, на уровне флагов extcsd, либо еще как-нибудь.
 
3/3/06
4 068
1 581
Новосибирск
QR Code
исправили уже
вы скорее всего юзаете старую версию с этим глюком
Увы, не исправили. 1.0.0.40. Вижу что уже есть 42, но это все билды последней недели.
JayDi уже писал Вам про это:
Как угодно, например, на уровне загрузчика, на уровне флагов extcsd, либо еще как-нибудь.
Сделайте мне, пожалуйста, одолжение - прекратите отвечать, если вам нечего сказать.
 
Последнее редактирование:

tihiy_grom

Z3X-Team
.
Увы, не исправили. 1.0.0.40. Вижу что уже есть 42, но это все билды последней недели.
Код:
02.12.2016 (ver 1.0.0.40)
   Fix:   Bug with switching ROM
   Fix:   Bug with access to GP-partitions
   Fix:   Bug when searching for FRP
   Add:  Generic / Universal Factory Format (Toshiba, Hynix, etc.)
как раз в 40-й версии и исправили
 

Layder

Z3X-Team
.
27/8/06
2 262
619
Беларусь, Гомель
Раздел "OTP" лочится на запись через регистры extcsd, отсчитывается от КОНЦА ROM1
Код:
06.08.2016 12:41:35> Partition name: otp
06.08.2016 12:41:35> Address: 0001CE480000, size: 000002B00000
06.08.2016 12:41:35> eMMC switching to ROM1
06.08.2016 12:41:35> Reading partition...
06.08.2016 12:42:04> Cutting file...
06.08.2016 12:42:08> Done reading partition. Read speed: 1503,91 Kb/s
06.08.2016 12:42:08> Partition name: flashinfo
06.08.2016 12:42:08> Address: 0001D0F80000, size: 000001000000
06.08.2016 12:42:08> eMMC switching to ROM1
06.08.2016 12:42:09> Reading partition...
06.08.2016 12:42:18> Cutting file...
06.08.2016 12:42:20> Done reading partition. Read speed: 1800,05 Kb/s
 

Вложения

3/3/06
4 068
1 581
Новосибирск
QR Code
как раз в 40-й версии и исправили
По факту не исправлено даже в 1.0.0.42:
Код:
Operation: Write by vendor (MediaTek)

Partition name: PRELOADER
Filename: preloader_jrdhz72_we_jb3.bin , Offset: 000000000000 , filesize: 103304 bytes
[B]eMMC switching to ROM1[/B]
Erasing partition...
Writing partition...
Done writing partition. Write speed: 556,93 Kb/s
Кусок проблемной прошивки и получившегося дампа ROM1 с прелоадером в нем прикрепил в
купить чтобы получить доступ к скрытому контенту.
.


ghosj сказал(а):
Значит хреновое пиво предлагал или криво просил что еще могу сказать) Никто так просто свои знания за просто так не расскажет.
Все проще: точных ответов никто не знает. Разбираемся все вместе. Даже NoName говорил, что ранее с OTP не сталкивался.
Но периодически вылазят пассажиры, которых хлебом не корми, дай поговорить за жизнь в технической ветке. Еще и навязывают другим свое тупиковое мировоззрение по типу "не нужно делиться знаниями с другими".
Человечество достигло того что имеем не потому, что им правили люди типа вас. Про практическую работу с ОТР уже сказано достаточно для выполнения ремонтов. Будут ли ответы на оставшиеся вопросы - неважно, они для людей вроде меня, желающих понимать все до конца.
 
Последнее редактирование:

tihiy_grom

Z3X-Team
.
Возможно, но медуза шьет и такой, прелоадер оказывается в ROM2.
хорошо, добавим проверку на имя раздела.
если вдруг найдёте скаттер, в котором имя раздела будет "ЗАФИГАЧИМ_ЭТОТ_КУСМАН_В_РОМ2" и медуза будет его писать корректно - дайте знать, тоже добавим такие скаттеры в поддержку
 
3/3/06
4 068
1 581
Новосибирск
QR Code
Иронию оценил. :)
Scatter был создан CM2MTK, я напишу автору Infinity.

upd: его ответ
По поводу скаттера - в формате 1.0 именно такая разбивка и есть, уже сменилось их три, либо четыре - а ничего не поменялось, DA пишет все как надо, поэтому смысла чет менять - нет, пусть другие софты учитывают платформу и тип и все будет работать.
надеюсь мы придем к общему знаменателю в итоге
 
Последнее редактирование:

Layder

Z3X-Team
.
27/8/06
2 262
619
Беларусь, Гомель
Возможно, но медуза шьет и такой, прелоадер оказывается в ROM2.
Товарищ да Вы упоротый.... ;) проблемы CM2, который создал некорректный скатер должны решать медуза и z3x?
В три темы написали про этот дамп, который пишется в ROM1.
А люди репы чешут, чего считанные кем то дампы в формате Scat не поднимают тела.
Я приведу пример, есть такой аппарат нак Sony C4, там прелоадер лежит и в Boot1 и в Boot2.
При этом я встречал на этих аппаратх бут конфиги 0x48 и 0x50. Теперь надо всем поправки в софт писать, чтобы еще проверяло 48 там или 50, откуда загрузка идет и куда писать прелоадер?
 
Последнее редактирование:
27/10/15
122
6
Саратов
Вот и мне посчастливилось столкнуться с OTP. Пациент 6037y замена флеш... Прошивка ,восстановление разделов,но вот про OTP я не знал и его не забекапил.Есть первые 260 метров фулла,ромы 2,3 и все разделы которые видел emmc plus,окромя system,data и cache.Пробовал выправить бинарник от ув.TPS79 по алгоритму из этой ветки. Но увы не могу не залить,не считать OTP.Не разобрался с адресами это зоны. Помогите кто знает как поправить IMEI на место на этом аппарате. Флештул при попытке чтения или записи OTP выдаёт s_invalid_arguments (0x3ea).Флеш б/у с китая,но рабочая. На ней проиведено firmware upgrade easy jtag. заливка прошивки,прописывание разделов nvram,protect_f и protect_s ,pro info .А OTP не читается не пишется.Чего не так-то?
 
Последнее редактирование:
3/3/06
4 068
1 581
Новосибирск
QR Code
Пример OTP-зоны этого тела есть
купить чтобы получить доступ к скрытому контенту.
.

Версия флештула 5.1352.

Скаттер из прошивки не забыть подгрузить.

все должно работать
 
27/10/15
122
6
Саратов
Да вот в том-то и дело что не канает. Много флештулов перебрал. А из этого примера как раз и брал ,правил по алгоритму и пытался влить. Может extcsd восстановить от бывшей флеши или лучше не стоит? Ну типа и аттрибуз закрыто вольётся или не так? Ладно ,спасибо тебе друг,буду пробовать разные варианты

Я ещё хотел бы присоединится к вопросу:как через бокс залить эту зону.? Возможно-ли? У меня есть этот файлик с imei, хотелось бы через бокс его влить.
 
Последнее редактирование модератором:
А можно ли работать с RPMB и что такое TEE? И вообще связан с этим preloader?
 
Последнее редактирование:
3/3/06
4 068
1 581
Новосибирск
QR Code
Да вот в том-то и дело что не канает. Много флештулов перебрал.
Вот пришел P320X. Слил прошивку через CM2MTK, подставил в SP Flash Tool 5.1352, выбрал Window - Parameter Page, выставил настройки, нажал Update, прочитал OTP.

На всякий выложу папку с этим флештулом У меня на рабочем комьютере Win7 x32. Пробуй, должно работать.
 

Вложения

  • 76,3 КБ Просмотры: 231
  • 21,8 КБ Просмотры: 220
Доброго всем времени суток.ситуация такая.принесли 6037y после мастеров кирпичом.пытались прошить.восстановил телефон ,но не могу править imei.практически все делал ре помогает.разные мрошивки прошивал,через оф.прогу тоже.otp не могу лить выдает ошибку.pro info лил,нврам лил.прошу дать мне инструкцию и файлы.за ранее спасибо за помощь и за любой ответ
 

Кто читал эту тему (всего: 218) Детально

Верх Низ