Tópico apenas para desenvolvedores.
Este é um tópico de rascunho, onde vou escrever coisas que eu for descobrindo sobre o firmware do DVP5980.
Extraí o firmware pelo menos uma vez com cada versão do mtktool que tenho: 1.29, 1.31, 2.35 e 2.42-12
1.29 e 1.31 dão resultados idênticos de checksum interno e os arquivos resultantes também são idênticos, mas com apenas 1MB e obviamente corrompidos
2.35 e 2.42.12 dão resultados de checksum interno diferentes, mas os firmwares extraídos tem 2MB e são byte por byte idênticos. Nenhum dos programas reconhece a flash usada, mas mesmo assim o firmware passa no teste do mtkRemaker, sem nem mesmo reclamar de checksum.
Log da 2.35LOG: Start to backup
LOG: Init Rs232 ...
LOG: Flash Type - Unknown Flash Type
LOG: Reading ...
LOG: Finished!(2182)
Log da 2.42.12LOG: Start to backup
LOG: Init Rs232 ...
Log: --------------------------Method 1
Log: result ---ManuId: 02, DevId: 10, DevId2: 02
Log: result ---ManuId: 02, DevId: 10, DevId2: 02
Log: result ---ManuId: 02, DevId: 10, DevId2: 02
Log: result ---ManuId: 8C, DevId: 8C, DevId2: 49
Log: --------------------------Method 2
Log: result ---ManuId: 8C, DevId: 8C
Log: result ---ManuId: 8C, DevId: 8C
Log: --------------------------Method 3
Log: result ---ManuId: 8C, DevId2: 49
Log: result ---ManuId: 8C, DevId2: 49
Log: --------------------------Method 4
Log: result ---ManuId: 8C, DevId: 8C
Log: result ---ManuId: 8C, DevId: 8C
LOG: Flash Type - Unknown Flash Type
LOG: Begin : Sun Feb 17 00:38:40 2008
LOG: Reading ...
LOG: Finished!(2A78)
LOG: end : Sun Feb 17 00:41:43 2008
Curiosamente, o checksum indicado pela 2.35 (2182) é o que confere com o que está escrito na etiqueta colada no chip. É possível que exista uma falha na rotina de checksum da versão 2.42 que eu não notara até agora.
O 1MB extraído pelas versões inferiores do mtkTool corresponde byte por byte ao primeiro megabyte real do firmware. Não há corrupção dos dados: o mtkTool apenas acha que a flash só tem 1MB.
Comparação preliminar com o firmware extraído por RafaLibrenz (usando mtkExtract e Treediff):
- Todos os três ARM Codes são diferentes
- Todas as seções 8032 são diferentes
- Seções DATA e DSP idênticas