 Jefferson,  18 de setembro de 2015, DSL2740e, PorDentro 

CPU: RTL8676S
ADSL: RTL8271B
Wi-Fi: RTL8192ER
Flash: MXIC 25L3206E 32Mbit (4MB)
Note que não existem chips visíveis de RAM. Esta deve estar incluída no interior do RTL8676S. Na parte de baixo da placa só existe o botão de reset.
Apesar do chip de flash ser de 4MB, é possível que o modem só possa fazer uso de 2MB. Veja comentários sobre o comando “show version” neste texto.
A flash é SPI 3.3V. Deve ser possível ler/gravar em qualquer gravador que possa ser configurado para SPI 3.3V 4MB
A porta serial do DSL2740e já tem header soldado. Parâmetros 115200 8N1.
O uso desta porta serial é discutido neste outro post.
Texto recebido pela serial em roteadores com firmware corrompido:
|
|
--------------------------------- Start to decompress! Booting Press 'ESC' to enter BOOT console... Ext. phy is not found. Boot from NOR/SPI flash support multicast tool time out ...... Decompress file... uncompress fail try secondfailed! (c)Copyright Realtek, Inc. 2012 Project RTL8676S LOADER (LZMA) Version 00.01.02a-rc (Apr 24 2014 13:41:19) <RTL867X> ----------------------------------- |
O texto sugere que o firmware está corrompido. Como espantosamente não existe firmware disponível online para esse aparelho, eu vou tentar transplantar o firmware usando um “doador sadio”. Isso eu já comecei a discutir em outro post.
Comandos da porta serial
Resultado do comando Info:
|
|
<RTL867X>info (c)Copyright Realtek, Inc. 2012 Project RTL8676S LOADER (LZMA) Version 00.01.02a-rc (Apr 24 2014 13:41:19) <RTL867X>BootLine: file MAC Address [0]: 00:23:79:11:22:33 Entry Point: 0x80000000 Load Address: 0x80000000 Application Address: 0x9FC10000 Flash Size: 16M Memory Configuration: ROW:4K COL:512 Bank:4Banks MII Selection: 0 (0: Int. PHY 1: Ext. PHY) UART is enabled <RTL867X> |
Note que o roteador afirma que o tamanho da flash é “16M”. Isso seriam 16Mb ou 16MB? Isso é respondido pelo comando “show version” do shell.
Para entrar no “shell”.
Espere o roteador terminar o boot. Tecle ENTER e o prompt responderá com “username:”
OBS.: A cada x segundos o roteador pode interromper você com informações de status, ignore e continue digitando como se nada tivesse acontecido.
Você vai digitar as mesmas credenciais usadas para entrar na administração do modem. Por exemplo, no caso do modem GVT:
ENTER
admin [ENTER]
gvt12345 [ENTER]
O prompt mudará para
$
Neste ponto você já pode dar um monte de comandos para o modem. Mas para entrar no “shell” digite
sh [ENTER]
O prompt mudará para (o texto exato pode mudar de acordo com o firmware instalado):
ADSL#
Neste ponto você está no shell e diversos outros comandos estão disponíveis, incluindo “show version”
|
|
ADSL#show version Application Version: DSL_2740E_1.00_BG_20150228 Build Date: Feb 28 2015 10:15:46 SDK Version: SDK V1.1.1 Build Date: Hardware Version: 8671x MAC Address: EC:22:80:XX:XX:XX SysUpTime: 0 0:2:20 Serial Number: QX4S1EBXXXXXX ManufacturerOUI: 001195 Manufacturer: D-Link ModelName: DSL-2740E Description: ADSL SoHo Router ProductClass: DSL-2740E CPU Speed: 448.92 Mhz Flash Memory: 2M RAM Memory: 16M ADSL# |
Note duas coisas importantes:
16MB de RAM – Não faz sentido ser 16Mbit porque 2MB de RAM é muito pouco, então eu assumo que “show version” se refere a BYTES. Como a RAM desse modem é embutida no SOC, esse parece ser o único modo de descobrir quanta RAM tem o modem.
2MB de flash – Ora… mas o chip não é de 16Mbit (4MB)? Se pegarmos a saída do comando info, que menciona “16M”, o único modo são de interpretar a bagunça parece ser que o comando “info” se refere a megabit, o comando “show version” a megabyte e o DSL2740e está artificialmente restrito a usar apenas 2MB de flash. Isso confere com o fato de que os firmwares do DSL2740e, incluindo os compatíveis como Netis e TotoLink, tem sempre menos de 2MB.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  18 de setembro de 2015, PorDentro Eu precisei desmontar o tablet para trocar a touch screen (digitalizador) e aproveitei para documentar.
A abertura é fácil. Não há parafusos e basta desencaixar com um cartão de crédito. Remover o vidro quebrado deu mais trabalho por causa da cola, que também prende a moldura do LCD ao vidro, mas com o cartão de crédito e paciência ele saiu.

 A bateria é supostamente de 2500mAh.
 MID771-MK está gravado no frame à direita da bateria.

À direita vemos impresso na mainboard o texto TPC7115-KG055-MAINBOARD-V2.0.0.
- CPU AllWinner A23
- Chip Wi-Fi é o Realtek RTL8188ETV.
- O gerenciamento de energia é feito pelo chip AXP223.
- O controlador da touch screen é o Silead GSL1680.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  18 de setembro de 2015, Isso não é nenhuma novidade, mas como eu publiquei um post sobre como montar um GPS bluetooth, é natural que eu escreva sobre isto para completar a explicação.
Desde versões bem antigas todo aparelho Android tem a capacidade de usar “mock locations”, que é uma “falsificação” das coordenadas de localização.
O fato é que qualquer app também pode pegar coordenadas “reais” via bluetooth e disponibilizar como se fosse um GPS interno do aparelho.
Você precisa apenas de duas coisas:
- Habilitar Mock Locations no Android – A opção sempre está sob “Developer Options” mas a maneira exata de chegar a esse menu depende da versão do Android. Versões mais antigas deixavam isso bem à vista do usuário, mas nas versões recentes esse menu pode estar oculto e será necessário um certo ritual para evocá-lo. Verifique como se chega às “Opções de Desenvolvedor” na sua versão;
- Instalar uma app que crie um GPS Provider via Bluetooth – Eu estou usando uma com o nome espantosamente original “Bluetooth GPS“, porque foi a que mais me agradou, mas existem outras.
 Em versões recentes do Android Developer Options é um menu secreto que pode ser habilitado tocando várias vezes seguidas em “build number”.

Com o GPS bluetooth em operação eu posso até desligar o acesso aos serviços de localização do Android, que apps com o Waze continuam funcionando.
 Mesmo com “Location” desabilitado, os “mock providers” continuam funcionando.
Não encontrei em lugar algum a informação de que o uso de mock locations desativa automaticamente o GPS interno então, para me certificar de que não estou gastando bateria sem necessidade com um GPS que não funciona mesmo, eu desativo os serviços de localização ao entrar no carro e habilitar o GPS bluetooth. [18/09/2016] Se você usa o serviço de localização para rastrear onde seu celular (você) esteve e em que horários, não faça isso. A localização não aceita as coordenadas vindas de “mock locations”.
 A app “Bluetooth GPS” enquanto ainda não está recebendo as strings NMEA do GPS.
Uma reclamação
Uma coisa que me incomoda há anos é a inexistência de uma app GPS Wi-Fi. Eu estou sempre com o Wi-Fi habilitado e sempre com o bluetooth desligado, mas agora sempre que entro no carro tenho que habilitar o BT e lembrar de desabilitá-lo ao sair (BT costuma consumir muita bateria). Além disso, bluetooth só permite uma conexão por vez. Um “Wi-Fi GPS provider” resolveria todos esses problemas. Eu ainda estou engatinhando na programação para Android mas esse é um dos projetos que vou atacar assim que tiver o conhecimento suficiente.
O mais próximo que cheguei de encontrar uma app pronta com essa funcionalidade é a dupla GPS Tether Server e GPS Tether Client, mas o cliente é feito para conversar com o server do mesmo desenvolvedor apenas.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  18 de setembro de 2015, Eu fui obrigado a montar um desses para mim por causa do GPS lixo do Samsung Galaxy E5.
A coisa é espantosamente simples quando você tem as peças. Você precisa basicamente de:
- Um módulo GPS com interface serial TTL;
- Um módulo bluetooth com interface serial TTL;
Outra forma de especificar é que os dois sejam “compatíveis com Arduino”, já que muito vendedor não sabe o que é “serial TTL”.
Como eletricamente os dois são compatíveis e geralmente essas duas classes de módulo vem programadas de fábrica com os parâmetros 9600,8N1, basta ligar a saída do GPS à entrada do módulo bluetooth para ter um módulo bluetooth GPS. Na foto abaixo, a gambiarra que fiz para colocar no porta objetos do meu UNO:

Parece ter muito fio aí mas na verdade não. O módulo GPS tem dois fios que não são necessários e você não precisa realmente usar o RX do GPS, que só é usado para reconfigurar o módulo. A coisa então se resume a alimentar os dois módulos com 5V e conectar o fio TX do GPS ao RX do BT. Mais nada além disso.
No meu carro eu já tenho vários jacks de 5V padrão USB prontos para esse tipo de coisa. Somente o módulo GPS precisa ficar visível pois precisa “ver” o céu. Esse da v.kel não precisa sempre disso pois consigo o fix mesmo antes de sair da garagem (como todo bom GPS ele consegue captar “reflexões”), mas é melhor não complicar sem necessidade. Eu gosto de ter o módulo bluetooth visível porque o LED azul dele me mostra quando a conexão com o celular está funcionando (fica aceso, sem piscar), mas não é realmente necessário.
Isso é compatível com qualquer aparelho Android que tenha bluetooth. Você recebe as coordenadas GPS habilitando “Mock Locations” e instalando uma app qualquer que repasse as coordenadas recebidas via bluetooth para o formato esperado pelo Android.
O módulo GPS
O utilizado na foto é um V.KEL VK16U6

Mas pode ser outro, como o Skylab SKM53 (eu tenho ambos).

O módulo bluetooth
Sobre esse eu já falei aqui um outro dia. O usado no meu projeto é uma versão mais simples que só tem 4 pinos, mas funcionalmente dá no mesmo. Você vai usar o modelo slave, que por sorte também é o mais comum e barato.

Como um módulo bluetooth slave só pode se conectar com um master de cada vez, se você quiser que as coordenadas GPS fiquem disponíveis para mais de um aparelho ao mesmo tempo precisa adicionar mais módulos bluetooth. Todos eles com o RX ligado ao mesmo TX do GPS. Eu não testei essa configuração, mas não deve dar problema algum.
Nessa situação você vai querer mudar o nome com que os módulos se apresentam para poder diferenciá-los. O procedimento exato para isso depende do módulo mas é sempre programado via interface serial TTL com comandos AT.
Este post está em rascunho. Se tiverem alguma dúvida razoável (se esforcem antes), falem, que esclarecerei melhor. Mas o tema “como isso funciona no Android” já foi explicado em outro post.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  10 de setembro de 2015, Então o Windows do seu cliente é a versão Jack Sparrow Edition e você precisa por qualquer razão atualizar o Windows Media Player (eu prefiro o kmPlayer)? É tão simples que espanta.
Resumo:
- Descompacte o pacote de instalação da MS em um diretório;
- Execute wmfdist11.exe;
- Execute wmp11.exe.
A explicação um pouco mais longa:
O instalador do Windows Media Player 11 geralmente se apresenta como um executável com um nome do tipo “wmp11-windowsxp-x86-pt-br.exe”. Esse executável é na verdade um ZIP auto-extraível e se você tiver um programa como o WinRar instalado ao clicar com o botão direito sobre o EXE verá no menu a opção de extrair o conteúdo.

Quando o instalador é executado, o conteúdo é extraído para um diretório temporário e um programa pré-definido é executado, mas esse programa é apenas um acréscimo ao real pacote do Windows Media Player e pode ser contornado.

Consegui a dica no Tech Recipes.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  28 de agosto de 2015, Ou quase isso.
Eu já devo ter comentado aqui que uma das coisas que me incomoda no Android é a impossibilidade de reverter uma atualização de app se você não tiver um backup da versão anterior. Por conta disso, como eu não gosto de surpresas desagradáveis, eu deixava para fazer atualizações apenas quando eu tinha saco para fazer o backup manual.
Pois bem… eu não sei eu simplesmente não notara ou se minha app preferida para isso, App Backup & Restore, incluiu essas facilidades em uma atualização e eu não vi, mas o fato é que a app tem duas funcionalidades que (quase) me permitem deixar o aparelho em atualização automática:
- Faz o backup automático de toda app instalada;
- Preserva todas as versões no backup (não sobrescreve).
As duas funcionalidades acima precisam ser explicitamente habilitadas no menu da app.
Só falta explicar por que eu disse “quase” duas vezes. O problema é que graças à incompetência da OI eu ainda estou preso a um acesso à internet de 800 kbps. Atualizações automáticas, seja do que for, é um luxo que não posso ter. Eu ainda preciso escolher uma hora favorável para autorizar as atualizações.
Ainda se as atualizações fossem de apenas uns poucos KB… Mas parece que toda app android tem que ser atualizada baixando a versão nova inteira. Só a atualização do Kodi que fiz hoje tinha 57MB (12 minutos travando toda minha banda). Some isso ao fato de que certos desenvolvedores parecem atualizar toda semana (como a Google) e haja banda para dar conta, principalmente se você tiver vários dispositivos android na casa.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  24 de agosto de 2015, Os rumores sobre o perturbador comportamento de dedo-duro do Windows 10 podem ou não ter fundamento, mas quem tem juízo não dá chance ao azar. Torrentfreak reporta que alguns trackers já decidiram que se você quiser usar os trackers precisa pelo menos usar outra versão do Windows.
Isso pode não parar por aí, porque também especula-se que certos updates do Windows 7 tornam esse SO suspeito também.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  23 de agosto de 2015, Firefox, WTF
- Tudo começou com o sistema de releases freqüentes e sem sentido;
- Depois a interface mudou de tal forma que muitas vezes eu sou incapaz de dizer só de olhar se o browser aberto na minha frente é o Chrome ou o Firefox (a Mozilla jogou fora a identidade do FF);
- Agora a Mozilla anuncia que o FF vai começar a suportar extensões do Chrome e o suporte a extensões próprias eventualmente será abandonado.
Mozilla: uma empresa que já foi líder e hoje faz tudo ao seu alcance para se tornar irrelevante!
Ainda bem que ainda temos o Pale Moon, porque eu não consigo agüentar o Chrome.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  23 de agosto de 2015, Minha configuração:
- Gigabyte GA-B75-M-D3H com processador Intel Core I3;
- Receiver (home theater) Philips LX-600;
- Windows XP SP3;
- FFDSHOW tryouts rev4382 (03/2012);
- Potplayer 1.5.40688;
- Kmplayer 3.0.0.1440
Eu vou partir da premissa de que você já use o ffdshow e já tenha conseguido fazer o passthrough do áudio DTS e AC3 para o receiver usando-o.
O problema e a solução não são restritos a AAC. O modo mais “simples” de passar qualquer tipo de áudio não suportado pelo seu receiver via SPDIF é converter para um tipo suportado. Dos suportados, geralmente o mais fácil é converter para AC3. Em um computador moderno como um Core i3 essa conversão pode ser feita em tempo real de forma imperceptível mas não sei se funcionará bem com máquinas mais modestas.
Usando o ffdshow fazer a conversão em tempo real para AC3 é absurdamente simples:

No meu computador marcar e desmarcar a opção chaveia imediatamente o áudio já em execução, sem precisar fechar o player.
É importante notar que isso converterá qualquer stream “já decodificado” para AC3 e, se assim estiver configurado, o transmitirá via SPDIF para o seu receiver. Isso significa que muita coisa que você estava acostumado a ouvir pelos alto-falantes do PC vai exigir que o seu receiver esteja ligado enquanto esta opção estiver marcada.
O problema com áudio de 44kHz
Depois que fiz essa configuração fiquei muito empolgado com o resultado até tentar ouvir os videoclipes que baixei do youtube em MP4 com audio AAC.
- No kmplayer o ffdshow sequer era ativado. O próprio kmplayer reproduzia o som, pelas caixas acústicas do PC;
- No potplayer o ffdshow era ativado, mas o som ficava ruim, com estalos o tempo todo.
Depois de mexer em muitas configurações e comparar muitas amostras de vídeos que funcionavam com os que não funcionavam percebi que comum a todos os clipes que não funcionavam era o áudio não ser de 48khz (o padrão DVD). Então eu habilitei o resample no ffdshow:

A configuração desta opção só vai funcionar direito a partir do próximo arquivo ouvido.
Isso resolveu o problema. Avicii, Kelly Clarkson, Calvin Harris, Shakira, Miranda Lambert, Kelly Rowland, Fall Out Boy, Katy Perry, One Direction, Maroon 5, Meghan Trainor, Lea Michelle e Ellie Goulding (entre outros) agora soam muito melhor no meu receiver.
É muito importante você ter em mente que, assim como a anterior, esta configuração vai afetar todo o áudio processado pelo ffdshow. Se você for como eu e preferir que o áudio seja sempre “original” a menos que seja realmente necessário mexer, lembre-se de desligar o resample quando não estiver precisando dele.
(Prefira clicar em "Responder" se estiver comentando um comentário)
 Jefferson,  20 de agosto de 2015, A Microsoft reportou a existência de uma vulnerabilidade crítica em quase todas as versões do IE que permite ao atacante ter total controle da sua máquina bastando você visitar um site malicioso. O que pode acontecer até indiretamente por uma propaganda instalada em um site que você confia.
O problema para quem usa o XP: A MS só liberou patches para o Windows Vista em diante. O que me faz pensar que o problema não é exatamente no IE, já que existe um patch diferente para cada versão do Windows.
(Prefira clicar em "Responder" se estiver comentando um comentário)
|
|
Ótimo post! Esse modelo é da operadora ou foi comprado no varejo? Esse roteador é usado pela GVT e também é vendido no varejo mas a D-Link não fornece o firmware em seu site. A versão V1 parece ser uma coisa exclusiva do nosso Brasil-il-il. No site do Irã e Emirados existe um modelo 2740 “U” que até possui a versão V1 mas não creio que o firmware seja compatível com a versão tupiniquim. Se essa sua versão for retail seria bacana disponibilizar o firmware para testar no modelo capado da GVT!
No link abaixo (fórum) tem o firmware alternativo da TOTOLink para esse modem.
http://adrenaline.uol.com.br/forum/threads/atualizando-firmware-do-modem-dsl-2740e-desbloqueio.577958/
Você consegui subir o FW com o comando tftp do bootloader.
Eu não tentei ainda o tftp porque o modem não dá qualquer sinal de que as portas LAN estejam funcionando. Testei todas as quatro. Entretanto eu posso ativar um servidor tftp e tentar “às cegas”, supondo que o roteador no estado que está seja capaz de enxergar um endereço na faixa 192.168.0.x
Se você digitar “help” após o vai aparecer as opções de comando.
Ex. tftp [ip] [server ip] [file name]
A faixa de IP pode ser 192.168.x.x desde que o server e cliente estejam no mesmo subnet.
Essa parte eu já sabia. Só não sabia o que definir para [ip].
Mas eu consegui. Eu explico tudo aqui.
Já tentou extrair os arquivos do firmware do modem?
Utilizo o binwalk, mas no firmware desse modelo ele não mostra tudo o que tem, apenas o conteúdo de algumas paginas compactadas com LZMA e algumas imagens, nada de elf, firmware header, ou squashfs que é o que eu queria analisar. Acredito que as outras informações estejam com o cabeçalho faltando header, por isso o binwalk não as encontra…
E como não consegui extrair os ELF também não consegui nada com o IDA Pro.
Também não encontrei muita informação de como esse processador RTL8676S lê as informações do firmware, para saber como o arquivo é montado.
Já viu/fez algo nesse sentido?
E parabéns pelas informações que tem compartilhado.
Eu fiz uma tentativa, mas como meu conhecimento de *nix é limitado quando não deu certo eu deixei para lá. E minha habilidade com o IDA também é limitada. Eu só usei quando fazia firmware customizado para DivX player e ainda assim eu só mexia na parte 8051 do código. ARM ainda é um mistério para mim.
Amigo fiz a conexao pela porta com1 e no putty e no outros quando ligo o modem o prompt do putty fica com caracteres estranhos nao aparece como na sua descrição. A pergunta é
Liguei só o GND, TX E RX é obrigatorio ligar o 3.3v? E onde ligo na porta com1?
E a velocidade? Você configurou conforme está escrito no texto?
Eu li todo o texto só agora encontrei a velocidade. Assim que chegar em casa vou tentar outra vez. Muito obrigado. Sucesso..
Oi Jefferson, obrigado por compartilhar seus conhecimentos conosco, desculpa eu estar te perturbando aqui. É o seguinte, possuo um Modem TD5136v2 da Oi e a Technicolor (Thomson/Speedtouch) não disponibiliza nenhum firmware desse equipamento, mesmo solicitando diretamente a eles não consegui obter o arquivo sobre a alegação de que é fornecido em comodato e as operadoras são responsáveis por eles. Enfim possuo 2 e pretendo fazer um dump de um com firmware mais atual para outro, ele é assim por dentro:
http://i.imgur.com/mN3h84b.jpg
CPU: RTL8676
ADSL: RTL8271B
Wi-Fi: RTL8192CE
Flash: Macronix 25L12835F
Gostaria de contar com sua ajuda se possível, vou usar um cabo USB com chip Prolific que usei uma vez para recuperar um TPLINK, porém dessa vez quero ver se consigo fazer um backup e gerar um FW para ser usado no outro modem.
Lamento mas não posso ajudar nisso.
bom dia, Jefferson: essas ligacões na serial seriam = gnd com gnd, rx com rx ou tx com tx ou rx no tx e tx no rx como flash em alguns receptores de tv…pois não estou conseguindo acessar o modem…não desisto nunca vou tentando aqui…abraço obrigado pelo post…e conhecimento..
Salvo observação em contrário em qualquer um de meus posts, quando eu escrevo “TX” estou marcando de onde “saem” dados. E onde escrevo “RX” é onde “entram” os dados. Ou seja: o óbvio. E isso é tudo o que é preciso saber. Eu só poderia afirmar para você “ligue TX com TX” se eu conhecesse também o dispositivo que você está plugando no modem e soubesse se ele está com os terminais corretamente identificados. Como é impossível para mim ter essa informação, é impossível saber daqui como você deve ligar aí.
Bom dia, pesquisei a madrugada inteira sobre o aparelho procurando um modo de resolver meu problema ainda sem sucesso, porem ao que parece tive sorte em econtra-lo! ao que parece, vc é o mais versado no assunto!!! utilizo o dispositivo na casa de um cliente que vira e meche esta alterando a senha do wifi, porem o mesmo reseta para os padrões de fábrica toda vez, oque pra mim é ruim em diversos pontos. recentemente consegui setar algumas configurações como padrão de fabrica pelo telnet e quando o aparelho é resetado elas voltam como eu deixei, porem algumas configurações como por exemplo o usuário padrão do roteador ou mesmo algumas acls eu não consigo editar… poderia me dar uma luz??? outra coisa, pensei em criar uma pagina de configuração assim como a da ctbc que existe no aparelho e substitui-la com a da minha preferencia. pode me auxiliar a concluir deste projeto?
Bom Dia.
Você fala sobre a conexão via porta serial, e até aponta para um link que supostamente teria o esquema para montar esse cabo, no entanto não vi onde está esse esquema. Meu roteador liga, acende os leds de power (piscando) e wi-fi, porém não consigo conectar mesmo via lan. o Firware foi atualizado para o ND300. Estava funcionando perfeitamente até que resetei 2 vezes e não consigo mais acesso ao mesmo para reconfigurar. Como proceder?
Eu escrevi esse texto três anos atrás e pelo que pude apurar relendo algumas partes em nenhum momento eu sugeri dar o esquema para o cabo. O texto linkado explica como usar a porta mas presume que você tenha um adaptador serial TTL e saiba usá-lo. Hoje em dia é mais fácil e barato adquirir um pronto que montar um.