Proibida a reprodução total ou parcial deste artigo sem a minha autorização.

Neste post vou explicar como são criados os firmwares de cura para os GPSs Garmin. É direcionado para quem tem intimidade com editores hexadecimais e já tem um know-how em informática.

Procurei fazer o procedimento o mais simples possível, e que seja funcional. Existe uma outra forma mais correta que é editando o fw_all.bin, corrigindo o checksum do mesmo (para que ele mostre “Pass” na tela de diagnósticos) e depois juntando de volta no RGN, mas para simplificar, mostro aqui como se editar diretamente o arquivo em formato RGN. Funciona do mesmo jeito, uma vez que essa cura só serve para acessar o GPS em modo USB e não para uso normal.

Antigamente pra se fazer as curas era bem mais trabalhoso, a gente tinha que usar ferramentas baseadas em linha de comando, tinha que saber as regiões a serem extraidas dos firmwares e depois tinha que editar e juntar tudo de volta. Mas com as novas ferramentas que temos disponíveis, é beeeeem mais simples. (aqui vai meu obrigado para o Turboccc, que desenvolveu uma maravilhosa ferramenta chamada de RGN_Tool)

Para iniciar, baixamos a ferramenta RGN_Tool AQUI

Depois, precisamos do firmware propriamente dito, que a gente vai pegar no site da própria Garmin. Para facilitar o serviço, eu compilei uma lista com os links das páginas da maioria dos modelos existentes. (veja a lista no post anterior)

Uma vez que estamos na página do modelo desejado, o “truque” é mandar exibir o código fonte da página, pois nele tem o link direto pro arquivo que precisaremos. (geralmente é um arquivo do tipo GCD)

Página dos modelos 2x5W de exemplo

2x5W Update page

Copie o link e baixe o arquivo em questão. (veja exemplo abaixo)

Depois de baixar o arquivo de atualização (que é o próprio firmware), vamos abrir o programa RGN_Tool e abrir o arquivo no mesmo. Para tanto, clique na pastinha amarela ou simplesmente de um CTRL-O no teclado, e na janela que abrir, selecione o arquivo .GCD baixado.

Teremos então esta tela:

Salve então o arquivo no formato RGN. (é o ícone do meio, o disquetinho escrito rgn)

Aqui tem um detalhe importante também. Na hora de salvar, para colocar o nome do arquivo devemos seguir este padrão:

XXXX01000YYY onde:

XXXX = HWID do firmware em questão (que é a identificação de hardware, que nesse exemplo é 0827)

YYY = SWV do firmware em questão (que é a versão de software, que nesse exemplo é 7.10)

Então o arquivo final do nosso exemplo ficaria 082701000710.rgn

Isso é importante porque o programa Updater.exe se baseia nesse padrão. Depois disso, pode-se fechar a ferramenta RGN_Tool.

Agora chegou a hora mais importante, que deve ser feita com bastante atenção, Vamos editar o arquivo RGN criado usando um editor Hexadecimal. No meu exemplo, usarei o maravilhoso editor HxD. (que encontramos AQUI ). Uso no meu exemplo a versão “portable” dele, em português do Brasil, encontrada na página de downloads do mesmo.

Abram o HxD e carreguem o arquivo criado.

Teremos a seguinte tela:

Depois de carregar o RGN no editor, o que temos que fazer agora é modificar algumas extensões de arquivos que o firmware carrega quando o GPS se inicializa. Assim, com as modificações que fizermos, ele não vai achar os arquivos e consequentemente não vai tentar carregar nenhum arquivo corrompido, dando assim acesso USB no GPS.

Vamos iniciar procurando os arquivos de mapas, que tem extensão .img

Para fazer a busca, vá no menu Localizar e escolha Localizar. Ou simplesmente digite CTRL-F no teclado.

Vai abrir a seguinte tela:

Nestas opções do localizar, devemos ajustar Tipo de Dados para Texto e também selecionar Texto Unicode

No campo Procurar por: deveremos colocar nossa extensão .img como no exemplo acima. depois dar um OK

Cairemos nesse ponto:

Agora devemos ir na coluna da direita (onde temos as strings em ASCII) e modificar o .img para .xmg (o importante aqui é trocar a extensão do nome arquivo, que nesse caso ficaria gmapsupp.xmg após esta modificação)

Depois de ter trocado este primeiro .img devemos localizar todos os demais .img (aperte a tecla F3 que ele vai para o próximo) e ir mudando de .img para .xmg (os img no caso são as chamadas para os mapas)

E assim sucessivamente até o programa não encontrar mais nenhum .img

Depois deveremos fazer o mesmo com os outros tipos de arquivos que o GPS carrega, que são: .GCD, .gpx, .gpi, .zip e .vpm (pode-se trocar somente as primeiras letras para x, por exemplo)

Depois de tudo trocado, vamos simplesmente salvar nosso arquivo RGN com um nome parecido, mas não igual para não se perder o original. Se o original do exemplo chama-se 082701000710.rgn podemos salvar como 082701000710_cure.rgn (use a opção Salvar Como sempre respeitando o padrão que citei acima)

E pronto! Está feita a cura.

Não explicarei aqui como essas curas devem ser usadas porque este artigo foi feito com foco somente no procedimento de criação das curas.

Lembrando que para simplificar o artigo, não expliquei aqui como corrigir checksum de firmwares pois na prática, o checksum correto não importa para as curas. Já no caso de firmwares modificados precisa ser corrigido. Mas isso fica pra um próximo artigo…

Espero que tenha sido útil. Qualquer dúvida entrem em contato comigo.

Um abraço a todos,

Alexandre C. Leite