miércoles, agosto 29, 2007

Gestión y desbloqueo de mapas en Garmin

Al fabricante de receptores GPS Garmin le cuestan mucho dinero las licencias de la cartografía que usa, y además se trata de una importante fuente de beneficios ante el siempre maltrecho margen del hardware, sujeto a continuas rebajas. Y eso que el mercado se estima en 22.000 millones de dólares anuales...

Por eso, a nadie le sorprende que Garmin ponga mucho cuidado, demasiado, según algunos, en evitar la piratería en la distribución de sus mapas electrónicos. No sea que compremos un único mapa, lo copiemos y luego carguemos las copias en un montón de receptores Garmin, o lo que es peor, ¡de la competencia!

Para ello, Garmin emplea un mecanismo de desbloqueo de mapas que consiste, básicamente, en vincular cada mapa con una única unidad GPS Garmin, de forma que no sea posible utilizar la misma copia en varias unidades.

Los mapas vectoriales para los GPS Garmin tienen un formato específico con extensión IMG, como la de los mapas para TOMTOM, aunque no se trata del mismo formato.

Cada receptor viene con un mapa base pre-cargado, llamado gmapprom.img. Sin embargo, mediante el software MapSource para Windows, distribuido y actualizado gratuitamente por Garmin, y cuya versión base acompaña con frecuencia los propios mapas, es posible desbloquear y gestionar mapas, y descargar las secciones deseadas al receptor en un mapa suplementario, llamado gmappsupp.img.

Hay que tener en cuenta que el receptor sólo soporta un mapa suplementario, por lo que los nuevos archivos gmappsupp.img borrarán al anterior sin previo aviso durante el proceso de transferencia. Sin embargo, podemos convertir el mapa suplementario en mapa base cambiando simplemente el nombre del archivo.

NATURALEZA DEL CÓDIGO DE BLOQUEO
El código de desbloqueo (unlock code) de 25 dígitos se genera a partir de cuatro factores:

1) El ID de la unidad GPS de 10 dígitos. No corresponde al número de serie impreso en el exterior de la unidad, sino que debe obtenerse mediante el menú de utilidades de MapSource. Garmin podría haber otorgado el mismo ID a un lote de unidades GPS por motivos comerciales.
2) El ID de la familia de software MapSource. Si no sabéis localizarlo, podéis utilizar GmapTool, un sencillo programa capaz de trabajar con archivos img. Descargad el programa en Pliki do pobrania.

Copiad los mapas al ordenador, y haced una copia de seguridad. Gmaptool mostrará algunos detalles del archivo:

>gmaptool -i gmapprom.img

Encontrareis el id de producto y de familia en las últimas líneas:
F: PID 1, FID 197, City Navigator Europe NT v9

FID 197 en hexadecimal es 00C5. Debéis poner este número de dos bytes en la posición 2Fh-30h, byte más bajo primero, de forma que queda C5 00. Utilizad algún editor hexadecimal para ello.

Por ejemplo, con un ID de unidad 3357492024 y un ID de mapa 284 (correspondiente a City Navigator Europe v2008 NT, o versión 10), se obtienen códigos de desbloqueo como por ejemplo

YPP6NM6DPMAQ9V546U5K8HYZ9

Con GMapTool podeís hacer más cosas, como extraer una sección de un mapa mayor.

Normalmente, haríais eso utilizando MapSource antes de transferir el mapa a vuestro GPS, pero con GMapTool podéis acceder a las 'entrañas' de los archivos gmapprom.img y gmappsupp.img.

Para hacerlo, podéis consultar Cómo extraer una sección de un mapa Garmin.

Además, puede ser necesario:

3) La fecha de expiración del código de desbloqueo. La mayoría de estas fechas son perpetuas, pero podrían tener una fecha de expiración. Por ejemplo, a efectos de 'pruebe antes de comprar'.
4) Una relación con las secciones de los mapas que se desbloqueen. Muchos mapas se desbloquean por completo, pero en algunos casos sólo lo son por secciones para facilitar la rentabilización de los soportes físicos.

Cuando se desbloquea un mapa en el ordenador personal, no se requiere el ID de la unidad GPS. Por ese motivo, es posible descargar un mapa a través de un sistema P2P e instalarlo en tantos ordenadores como se desee mediante MapSource utilizando un único código de desbloqueo, que suele venir con la descarga P2P.

Sin embargo, la unidad GPS sí utiliza su propio ID para calcular el código de desbloqueo válido al tratar de descargar en ella a través de MapSource el mapa o secciones del mapa previamente instalado en el ordenador personal. Por ese motivo, el código de desbloqueo que sirvió en la instalación en el ordenador personal no servirá para la instalación en la unidad GPS.

OPCIONES DE DESBLOQUEO
Para obtener este código de desbloqueo de un producto cartográfico cualquiera, Garmin solicita además del número de serie de la unidad GPS y el número de pieza del software, una prueba de compra (Coupon) de 8 dígitos que figura en el embalaje del software, y que equivale a la activación del producto para evitar que Garmin acabe calculando miles de códigos de desbloqueo para una única copia adquirida. Este cupón sólo puede utilizarse un número limitado de veces (una o dos). Éste es el único método legal que existe.

Evidentemente, si se dispone de un generador de códigos de desbloqueo a partir de los ID de unidad y mapa (un keygen como, por ejemplo JetMouse) no será necesario registrar ni activar nada en Garmin.

Pero recuerda entonces que sólo podrás utilizar hasta la versión 6.15.7 de MapSource porque JetMouse no es compatible con versiones posteriores. No es nada grave porque MapSource sirve para poco más que para desbloquear y enviar al dispositivo las secciones de interés de los mapas que hayamos guardado en el disco duro.


Además, si pretendes utilizar un keygen de los que se pueden encontrar en la red, ten mucho cuidado con los virus troyanos que suelen infestarlos.













También hay por ahí (alt.satellite.gps.garmin) gente que se ofrece a calcularlos por un precio módico, e incluso ofrecen claves de desbloqueo por tiempo limitado de forma gratuita a modo de 'pruebe antes de comprar'.

Ni pensar en usar la fuerza bruta para encontrar un código de desbloqueo aceptable por la unidad GPS... hablamos de un algoritmo de firma digital muy fuerte, que genera algo así como 35 elevado a 25 combinaciones de números y letras...

ALMACENAMIENTO DEL CÓDIGO DE DESBLOQUEO
Los códigos de desbloqueo correspondientes a los productos que deseemos instalar en el receptor se incrustan dentro de los archivos *.img mediante el asistente para desbloqueo de mapas de MapSource. Éste es el camino recomendado.

Sin embargo, es posible almacenarlos en un archivo de texto plano llamado gmapprom.unl, con una única línea de 27 caracteres para cada código. Los 25 primeros corresponden al código de desbloqueo, sin guiones. Además, hay otros dos caracteres especiales justo a continuación: hex 0D y hex 0A, que equivalen al retorno de carro y nueva línea.

Este archivo puede generarse manualmente para su descarga en la carpeta Garmin del receptor GPS escribiendo el código de desbloqueo(sin guiones) en un editor de texto sencillo (no MS Word), y pulsando al final Retorno de Carro.

Sin embargo, tenemos que considerar que si hemos utilizado un código de amplia difusión (muy probablemente obtenido a partir de una descarga P2P) para la instalación del mapa en el ordenador personal, todos los mapas que pretendamos descargar al receptor llevarán incrustado también ese código de desbloqueo que, normalmente, no será válido porque no ha sido calculado a partir del ID del receptor.

Y, si pretendemos arreglar esto copiando al receptor un archivo gmapprom.unl con un código específico para el desbloqueo para el receptor que hayamos obtenido posteriormente por otros métodos, no lo conseguiremos por tener prioridad el codigo de desbloqueo que se encuentra embebido en el archivo *.img., y que es ese código de amplia difusión que proviene de la instalación en el ordenador personal.

El proceso correcto será, entonces, la reinstalación del mapa en MapSource con este nuevo código de desbloqueo 'total' mediante el asistente de desbloqueo, y el envio del archivo *.img con este código incrustado al receptor, sin necesidad de editar el archivo gmapprom.unl.

Si queréis saber más, incluyendo unas instrucciones más precisas sobre cómo obtener y desbloquear mapas para vuestra unidad Garmin, echad un vistazo a Garmin Maps (MapSource Version). Está en inglés, pero es un magnifico compendio.