No último dia 18 um indiano, dizendo trabalhar para um fabricante de DVD players, deixou uma mensagem no grupo MT13x9 dizendo possuir o código fonte da CPU MT1369 e solicitando o código fonte da MT1389. Essa declaração dele, claro, foi recebida com desdém pela maioria e com desconfiança por uns poucos outros, porque jamais alguém havia posto os olhos no código fonte da Mediatek (até onde sei, de fabricante nenhum).
Isso deve ter atiçado silenciosamente a curiosidade de alguém porque hoje, para surpresa geral, um outro hacker da MT13x9 publicou o endereço de um site de onde poderia ser baixado o código fonte MT1389. Para minha surpresa, no mesmo site também podem ser baixados códigos-fonte de CPUs Zoran e Sunplus!
Eu dei uma olhada nas listagens, em C, e parecem genuínas. Um hacker do MT13x9 confirma que os programas MT1389 parecem legítimos.
[08/06] São legítimos. Isso já foi verificado pelos hackers do MT13x9.
Qual a importância disso? Toda!
Com a análise das listagens de código, o trabalho dos hackers do grupo OpenMTK pode ser muito acelerado e outros programadores que não conseguem entender assembly mas são bons em C podem entrar no jogo. Além disso, abre-se uma possibilidade agora para que surjam os primeiros hacks de Zoran e Sunplus do mundo.
Os arquivos:
mt1389d.rar - MT1389 - Contém o código fonte da seção 8032, alguns executáveis que podem ser parte do processo de montagem do arquivo de firmware e vários arquivos .bat que dão dicas de como o firmware é montado. Eu entendo muito pouco de microcontroladeres 8051, mas me parece que o compilador usado é um compilador comercialmente disponível, como o Keil . Se isso for verdade, os hackers poderão deixar de editar firmwares "na munheca" para construir firmwares do jeito que quiserem.
[08/06] Isso ainda não é possível, mas a leitura dos fontes está ajudando os hackers a fazer progresso em outras atividades.
sunplus-DVD.rar - Uma parte do código fonte em C da Sunplus.
zr882.rar - Parece ser o código fonte do Zoran 882. O arquivo está corrompido mas ainda é possível ver muita coisa.
8202ap-sh-ep-ba5954-0.rar - Arquivo .DSN (OrCAD) com o diagrama de um DVD player baseado em Sunplus 8200a.
8202S-16-SY-216-0-B.rar - Arquivo .DSN (OrCAD) com o diagrama de um DVD player baseado em Sunplus 8200s.
dc0_sch_v20.rar - Arquivo .DSN (OrCAD) com o diagrama de um DVD player baseado em Zoran 996.
8202s.rar - Código fonte de um firmware da CPU Sunplus 8202s (9.7MB)
8202a.rar - Código fonte de um firmware da CPU Sunplus 8202a (15MB).
[15/02] Os diagramas realmente são do OrCAD. Abri todos com a versão 9.
Eu não entendo nada de microcontroladores.
ResponderExcluirMas mesmo assim resolvi me arriscar e baixei o keil, e conseguir compilar o código, as únicas alterações que foi necessário fazer foi no makefile, já que o nmake da microsoft, não reconhecia a diretiva !elif, sendo necessário substituir por !elseif
Colo abaixo o final da compilação...
-----
Program Size: data=160.5 xdata=573 code=165139
LINK/LOCATE RUN COMPLETE. 35 WARNING(S), 0 ERROR(S)
WARNING ONLY
EVERY THING OK!!
------
Fiz uma pesquisa na pasta para verifcar as datas de alterações e havia dois arquivos.bin com a data de hj.
São eles o mlogo0.bin e o user4m.bin
Fernando,
ResponderExcluirEu não entendo nada de C, nem instalei o Keil ainda para fuçar, mas pelo que eu pude ver no arquivo "mg79.bat", deveria ter sido criado um arquivo "target.bin" em algum lugar.
Talvez você tenha feito a compilação, mas falte rodar o .bat certo para juntar todos os arquivos compilados em um firmware. Isso é feito com "merge.exe".
Realmente faltou executar o mg79.bat,
ResponderExcluirDepois disso foi gerado target.bin
Como eu não sou doido pra testar isso no meu dvp5100 deixo o link pra baixa-lo no rapidshare, caso alguem queira se arriscar a deixo o link para baixa-lo
http://rapidshare.com/files/14934393/target.bin.html
Agora só não sei dizer se este firmware gerado é de algum player especifico, se algo mais generico que é entregue pras fabricantes de dvd.
As chances de que funcione no DVp5100 são mínimas.
ResponderExcluirSe você olhar o conteúdo de DO.BAT, DO_C.BAT e DO2.BAT, verá que é preciso chamar o NUI*.BAT com o parâmetro correspondente ao tipo de servo (loader) usado no seu player.
Nem DO*.BAT nem NUI*.BAT parecem ser chamados de outros lugares, por isso parece ser necessário que o programador rode DO*.BAT nanualmente com o parâmetro correspondente ao loader *antes* de rodar MG79.BAT.
Os parâmetros estão listados nos NUI*.BAT então não há segredo (temos Mitsumi, Hitachi, Sony, etc.). O problema é que não sabemos ainda qual o servo usado no DVP5100. Isso vai ter que sair por tentativa e erro.
Esse é UM dos problemas. Um dos outros é inserir a tabela Philips de controle remoto e do display.
Como você vê, a descoberta do código-fonte permite que até um programador amador como eu crie um firmware, mas para criar o firmware certo ainda é preciso descobrir outras coisas.
Se você olhar no final de cada um NUI*.BAT, verá uma chamada
ResponderExcluirrem call mg79.bat
Então, "DO" vem antes de "MG" no processo de criação.
E ainda é preciso ver o conteúdo dos 35 "Warnings" que o KEIL deu a você.
ResponderExcluirFernando,
ResponderExcluirO firmware que você criou é pequeno demais para um DivX player. Certamente faltou inserir alguma coisa.
O firmware do DVP5100 tem 1.3MB e o que você criou tem 0.5M.
O ponto positivo é: o checksum está correto, então o procedimento está certo.
Fernando,
ResponderExcluirSe você não tiver o arquivo:
.\custom\demo\userdata\user4m.bin
Faltou fazer uma compilação. Eu acho que você precisa compilar
.\custom\demo\makefile
Lembre-se: não entendo nada de C. Isso são palpites meus baseados na análise dos arquivos.
Aparentemente, ainda não é o KEIL o compilador usado por quem criou o "pacote".
ResponderExcluirCLEAN.BAT faz uma referência a "MAKE"
DL.BAT faz uma referência a "FLASHDL.EXE"
Nenhum dos dois existe no KEIL C51
O HI-TECH 8051 é uma alternativa que vou investigar.
Ignore o que falei sobre o USER4M.BIN duas mensagens atrás. logo na sua primeira mensagem você disse que o arquivo foi criado.
ResponderExcluirFernando,
ResponderExcluirEu estou usando o NMAKE 1.50 da MS e modifiquei o MAKEFILE como você disse. O KEIL foi instalado em C:\C51 e eu criei uma variável de sistema C51PATH apontando para lá. Mas ao rodar NMAKE eu recebo a seguinte saída:
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.
O sistema não pode encontrar o caminho especificado.
O sistema não pode encontrar o caminho especificado.
NMAKE : fatal error U1073: don't know how to make 'config.h'
Stop.
Se eu usar NMAKE /D tenho:
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.
servo_lib target does not exist
O sistema não pode encontrar o caminho especificado.
O sistema não pode encontrar o caminho especificado.
adac.c Mon Aug 09 17:37:50 2004
version.h Mon Aug 09 17:41:42 2004
general.h Mon Aug 09 17:37:54 2004
typedef.h Mon Aug 09 17:37:58 2004
config.h target does not exist
NMAKE : fatal error U1073: don't know how to make 'config.h'
Stop.
E eu não estou entendo esse erro. Parece ser algo que ocorre na seção SERVO_LIB do makefile, mas isso é só suposição.
Acabo de constatar que o HITECH 8051 8.0 também não tem os arquivos MAKE e FLASHDL.EXE
ResponderExcluirOK. Descobri que quem cria config.h são os NUI*.BAT, mas agora dá erro reclamando de mt1369.h, mas o sistema não deveria estar passando por essa linha do makefile, porque qeremos compilar para MT1389!
ResponderExcluirO make é utilitario, para fazer todo o trabalho de compilação automaticamente...
ResponderExcluirhttp://pt.wikipedia.org/wiki/Make
ops...esqueci tem que corrigir o makefile do \custom\demo\makefile
outra coisa se der erro executa o clean.bat para limpar os .obj
eu compilei executando do_c.bat
outra coisa o flashdl.exe pode ser um utilitário, que não faz parte do keil.
Outra coisa, eu mudei o nome do nmake para make, e coloquei ele no diretorio do c51/bin
ResponderExcluirConsegui compilar. Obrigado!
ResponderExcluirEu havia cometido um erro besta: criei a variável SETPATH apontando para C:\C51 quando deveria apontar para C:\C51\C51
Eu vou transferir toda a informação que está aqui e mais algumas coisas para o meu fórum, porque lá fica muito mais fácil organizar e formatar. Você não precisa se cadastrar lá, porque eu vou continuar acompanhando aqui também.
Depois eu dou o endereço do tópico. Obrigado novamente!