Announcement

Collapse
No announcement yet.

Garmin jnx file format hacking

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Garmin jnx file format hacking

    PROJECT OUTLINE

    Brief intro

    JNX files are used in Garmin devices to show the raster maps available via BirdsEye service subscription. In the devices, these files reside in Garmin\BirdsEye folder on the internal disk or the memory card.

    JNX is so called tile format, i.e. a large raster map is divided into smaller rectangular pieces (tiles) to speedup the map rendering.

    This format is supported by the following Garmin devices: Colorado 300/400, Dakota 10/20, Edge 800, GPSMAP 62/78, Oregon 200/300/400/450/550.

    In the same devices, you can also use raster maps in Google Earth format (KMZ) - "Custom Maps".
    Custom Maps is a tile format just like JNX, but there are several important differences between these two:

    As you may see, the most significant drawbacks of JNX format are locking to a device, and impossibility to make a JNX file from some existing raster map you have.

    Goal of the research

    BirdsEye provides rather poor-quality satellite imagery for the number of territories. So, it would be really great to use JNX tile format for the scanned versions of old paper maps in modern Garmin devices. This is already possible with KMZ files, but their limitations make them practically useless for the large maps.

    When the JNX format is fully discovered, it would be possible to make a map converter from OziExplorer, GeoTIFF and other raster map formats to JNX.

    Results

    Unfortunately, it's currently impossible to achieve all the above-listed goals, since an asymmetric encryption is used to lock the JNX files.

    A more detailed JNX discription can be found here


    JNX FIRMWARE PATCHER:-

    A firmware patcher to remove the limitation on number of displayed demo-maps, and their max area has been created.

    FIRMWARE PACTHER VERSION 2.9

    THANKS TO WHITER FOR THE FIRMWARE PATCHER


    THIS PAGE IS RESERVED FOR ALL FIRMWARE PATCH UPDATES AND FINDINGS
    Last edited by WHITEDRAG0N; 30th September 2011, 06:19. Reason: 2.7 patcher added

  • #2
    Re: Garmin jnx file format hacking

    JNX TOOLS

    Brief intro

    A list of all the tools you may require when generating custom JNX maps

    MAPC2MAPC

    MAPC2MAPC WEBSITE


    - Load map images and calibrate them
    - Load calibrations in many different formats and Datums
    - View the calibrated map
    - Crop and rescale maps whilst preserving the calibration
    - Reproject maps to 'Plate Carre' (Equirectangular)
    - Rotate maps to true North
    - Fit maps to other projections and polynomial fit
    - Read and Write Garmin Custom Maps (KMZ) and Write Trekbuddy Tiles and JNX files
    - Read MrSID .sid and .jp2 files, GeoTiff and ECW files
    - Merge, join or overlay maps regardless of the scale or projection
    - Draw tracks onto maps in a variety of styles (PLT, TXF, KML, GPX)
    - Write several calibration formats
    - Write Mobile Atlas tile sets for Andnav, Back Country Navigator, Maverick, Orux and OSMtracker


    Will read and write MAP (Ozi), JPR (Memory-map, Fugawi), GMI (GPSTuner), MCD (GPSMAPOS, GPSGO), CAL (Pathaway), TFW (Mapyx/Quo), IMP(CompeGPS), Google Earth overlays as KML, KMZ. Will also read GUX (GPSU) and OKM (OKmaps) . Will invoke MrSIDDecode to decode MrSID files, will invoke FWTools to read GeoTiff and ECW files. Will handle different input datums but writes WGS84.

    BUILD 468 ALLOWS JNX PRODUCT ID TO SET AS A PREFERENCE


    32 BIT VERSION BUILD 468

    64 BIT VERSION BUILD 457

    MOBAT2JNX

    MOBAT2JNX WEBSITE

    MOBAT2JNX is a command line program to create multi-level JNX files form Mobile Atlas sets created as OSMTRacker format.

    VERSION 1030 ALLOWS to use jpegs directly without re-enconding them

    MOBAT2JNX VER 1027

    Please note that the firmwares released in March 2011 (i.e. version 2.93 for GPSMAP 62/78, version 4.16 for Oregon, 4.45 for Oregon x50, and 4.01 for Dakota) are not compatible with the JNX maps made in MAPC2MAPC before version 444 or MOBAT2JNX version 1007, will most likely cause the device hang on boot. To make these maps compatible with latest firmware versions use the JNX fixer tool

    JNX FIXER

    JNX SCALE

    JNX SCALE is a simple program to allow the Scale Factor - which controls when the map is displayed - to be changed.

    NEW VERSION ALLOWS JNX PRODUCT ID TO SET

    JNX SCALE

    JNX2KMZ

    JNX2KMZ INFO

    JNX2KMZ converts a JNX file to as many KMZ files as there are levels in the JNX.

    JNX2KMZ

    JNXMERGE

    JNXMERGE allows multiple JNX's to be MERGED together

    JNXMERGE


    JNX PRODUCT ID

    JNX PRODUCT ID is a simple program to allow the PRODUCT ID - which controls how maps are grouped on the gps - to be changed.

    JNX PRODUCT ID

    JNX CUSTOMIZER

    New change, now the utility detect if the jnx is old, and apply the fix if necessary.

    Unifying the 3 utilites (JNX SCALE,JNX PRODUCT ID,JNX FIXER) in one, with the possibility
    to change the description group even if the jnx file is already fixed.

    JNX CUSTOMIZER V 1.0.24


    QLandkarte GT

    QLandkarte GT WEBSITE


    QLandkarte GT is the ultimate outdoor aficionado's tool. It supports GPS maps in GeoTiff format as well as Garmin's img vector map format and Garmin's JNX raster map format. Additionally, it is the PC-side front end to QLandkarte M, a moving map application for mobile devices.

    Of course, QLandkarte GT will also run fine on small computers, such as so-called «netbooks». Even with small screens you can actually use QLandkarte GT on a 1024x600 netbook screen. And if your netbook happen to have a GPRS or UMTS mobile broadband modem, then you may even check things while on the move. At least when you have signal, otherwise «game over».

    QLandkarte GT 1.1.1

    MAP2JNX

    MAP2JNX INFO

    MAP2JNX WEBSITE

    Converts georeferenced raster map, recognized by GDAL library (for example geotiff), to JNX map.
    GDAL should be installed. GDAL is part of FWTools, which are installed together with QLandkarte GT on Windows OS

    If map2jnx.exe is copied into QLandkarte GT directory, it is possible to use it from graphical environment of QLandkarte GT. It allows to export any rectangular area selection of loaded raster map in JNX format.


    MAP2JNX VER 0.2.4 LINUX

    MAP2JNX VER 0.2.4 WINDOWS

    OTTS2JNX

    Besides being portable, in C, with no external dependences and console based (all important to me), it doesn't recompress JPGs. Leaving it here in case anyone else finds it useful despite its rough edges

    OTTS2JNX

    OTTS2JNX STATIC

    THANKS TO ROGER47 FOR MAPC2MAPC, MOBAT2JNX AND JNX SCALE WHITER FOR JNX FIXER AND MAP2JNX WINDOWS AND KIOZEN FOR QLandkarte GT AND MAP2JNX LINUX JAGMAGANA for JNX CUSTOMIZER


    THIS PAGE IS RESERVED FOR ALL JNX TOOLS

    IF YOU HAVE ANY TOOLS YOU WISH TO BE ADDED PLEASE CONTACT ME
    Last edited by WHITEDRAG0N; 5th March 2012, 06:42. Reason: PAGE NOW RESERVED FOR TOOLS LIST

    Comment


    • #3
      Re: Garmin jnx file format hacking

      Originally posted by WHITEDRAG0N View Post
      Starting with what ties you birdseye images to your garmin well if you download a birdseye image it will insert a lock down code this code can be found at 58hex to 7bhex.

      If you have some one elese birdseye just remove there code and insert your own. When you load you GPS there image will now be allowed on your device.

      .

      Are you sure this is correct? The "lockdown code" that you refer too isnt always in that position, nor do i believe that it is a lockdown code. Each birdseye set that you download has a unique code there even if they are all for the same gps, and the offset isnt always at the same place. This code is also the name of the .jnx file if you look where they are stored.... (in xp it is at C:\Documents and Settings\username\Application Data\GARMIN\BaseCamp\JnxFiles)

      For example in my JnxFiles folder I have a file called e92151b5-bb68-456d-a3d6-18eed12a1e98.jnx ........at hex offset 58 to 7b I have this same data in ascii e92151b5-bb68-456d-a3d6-18eed12a1e98

      I have a different file called 91409979-58e8-47e3-87ba-b5ca4466e03a.jnx and it has this same data but in a slightly different ofset from 4c to 6f


      I do like the research you are doing, but I respectfully criticize your findings.

      Comment


      • #4
        Re: Garmin jnx file format hacking

        Hi Clutchy,

        I have attched a jnx file that was generated from my machine but i have removed the lock downcode.

        Please can you generate a jnx file on you machine and copy the lock down code from you generated file to my jnx file.

        Please then upload this your garmin and see if you get any errors.

        please report any findings
        Attached Files

        Comment


        • #5
          Re: Garmin jnx file format hacking

          Can you upload a larger attachment .jnx file for me to test with? Using your method of .jpg extraction, all I get is a 5 x 1 pixel band of various shades of green. Not sure that I'm doing it right.

          Comment


          • #6
            Re: Garmin jnx file format hacking

            Just taken a look at the file again and it appears that there are 3 images in the tryme.zip example.

            The first image is displayed upto 1.2mile the next image is displayed upto 800ft and the file image is dispalyed below 800ft.

            The image you have extracted is most likely the one displayed upto 1.2mile try extracting the other and see what you get.

            Please bear in mind the example is 1 map tile.

            i am struggling at the moment to work how each tile is georefernced within the jnx file

            Comment


            • #7
              Re: Garmin jnx file format hacking

              looks like some on in russia is carrying out the sam research.... I have translated the research from russian using google translate.

              JNX

              Briefly about the format
              Files in JNX used in Garmin maps to display maps service BirdsEye.
              The main pluses JNX compared with maps Custom Maps (KMZ):
              (Seemingly) unlimited number of fragments of maps;
              multiple levels of detail;
              high speed display device map.
              A significant drawback is its size JNX rigid adherence to the device.


              The purpose of picking
              Since BirdsEye services from satellite imagery in Russia can not tolerate any criticism, really want to somehow accommodate the tile format for displaying JNX genshtabovskih and other scanned maps on the new devices Garmin, not to be tied for the loss of the format KMZ.
              If it is possible to fully understand how to make your own JNX and make arbitrary garminovsky navigator (with support JNX, of course) to work with these JNX, it will be possible to make converter card format OziExplorer format JNX.


              Internal Structure
              The information below is still very imprecise and are the result of a preliminary study. It is likely that dropped from consideration any important files region JNX.
              File format JNX can be divided into 5 parts:
              title;
              table with a description of levels;
              Service information loader maps;
              table describing the tiles;
              a set of tiles.
              Now a closer look at each of these parts.
              Note 1: All two-and four-byte fields below, using "Intel's" byte order, ie the least significant byte first, and then the older ones.
              Note 2: In all tables below, except for the description of the title, the bias will be relative to the beginning of the file, unless otherwise stated.


              1. Title
              Offset from the beginning
              Header Field Type Description
              0x00 int32 Apparently, the signature. In all JNXah in this field is kept value 0x00000003.
              0x04 int32 ID device for which makes the card. In the demonstration maps, this field is zero.
              0x08 4 int32 coordinates, which draws a card. Description of the system of coordinates, see below.
              0x18 int32 Number of levels of detail.
              0x1S 5 int32 Apparently, there is stored binding code to the device. The format of the fields is not yet known.

              On the coordinates used in the files JNX.
              Coordinates are stored as a landmark 4-byte integers. Two pairs of numbers describe the coordinates of two corners of cards (the importance of the sequence of angles is not yet clear). The first value in the pair is the latitude, the second - longitude.
              To obtain the coordinates of these integers must be divided by 0x7fffffff, and then multiply by 180.
              Example. Assume the file contains the coordinates of 0x1FCD7932, 0x1ADEBDDA. After conversion, the coordinates of N 44 ° 43'20 .81 ", E 37 ° 47'9 .80".


              2. Table describing the levels
              Number of levels of detail in the header specifies the number of elements in this table.
              Structure elements: the Offset from the beginning
              Table Field Type Description
              0x00 int32 Number of tile per level.
              0x04 int32 offset to the description of the first tile at the level.
              0x08 int32 Apparently, the scale at which shows the level of the tiles.

              As used and that the mean value in the field scale, it is not clear.
              In the JNX, I have seen the value of the field scale were as follows: 0x12A95 (76,437) at the first level, 0x12A9 (4777) on the second, 0x4AA (1194) or 0x255 (597) in third.


              3. Service information loader card
              This file is part of the JNX, apparently, is not used for displaying maps. Then keeps a list of URLs from which it downloads the individual tiles, as well as specified GUID maps and copyrights.

              4. Table describing tile
              Offset from the beginning
              Table Field Type Description
              0x00 4 int32 Coordinates single tile.
              0x10 int16 width of the image.
              0x12 int16 height of the image.
              0x14 int32 image size in bytes.
              0x18 int32 offset to the image.



              5. A set of tiles
              Tiles are the usual images in JPG, of which vykusheny markers SOI (ie, the initial two bytes of 0xFF, 0xD8).
              Most of the images have a resolution of 256 by 256 pixels.



              Until all.
              If you have any comments or additions to the format JNX, please write to the author.
              Also, I would highly appreciate if send are small (less than 5 megabytes) do not examples of demonstration files JNX.

              Comment


              • #8
                Re: Garmin jnx file format hacking

                Originally posted by WHITEDRAG0N View Post
                looks like some on in russia is carrying out the sam research....
                That's my page.
                The translation above is not perfect, yet it's rather close to the original. Google Translate rocks
                I can make an English version of the same page on the site, if you need.

                I hope we can cooperate to break the JNX
                Garmin GPSMAP 62s

                Comment


                • #9
                  Re: Garmin jnx file format hacking

                  Yes and english page would be nice. What about a template so we can tackle the parts we are missing

                  Comment


                  • #10
                    Re: Garmin jnx file format hacking

                    Hey! It interests me! I always use custom maps and I'm frustrated by the limit of 100 tiles.

                    I developp for my pleasure (I have already developped a software for converting mp map file to kml file - see ) so if I can help it will be a pleasure for me.... sounds like it could be a good project for this winter! ;-)

                    I will do some tests based on your observations...

                    Bill.

                    Comment


                    • #11
                      Re: Garmin jnx file format hacking

                      Your Help would be greatfull

                      Comment


                      • #12
                        Re: Garmin jnx file format hacking

                        Last night I programed a little app to extract all jpg files from the jnx file. It works. So this part of the file structure seem to be validated. I don't have big jnx files (just the demo)... If someone can put some jnx files with a larger coverage, it would be great to test this part.

                        So now that the jpg datas are extracted I will continue to decrypt the file based on Whiter observations.

                        More infos in the next few days.

                        Bill.

                        Comment


                        • #13
                          Re: Garmin jnx file format hacking

                          The aility to change the lock down code would be a nice little app. But you would need a working jnx to pinch the code from. This would validate the lock down section

                          Comment


                          • #14
                            Re: Garmin jnx file format hacking

                            Yes. Is there some jnx files available somewhere to make some tests?

                            Bill.
                            Last edited by Bill_clark; 4th December 2010, 15:35.

                            Comment


                            • #15
                              Re: Garmin jnx file format hacking

                              Demo.zip

                              Bill,

                              Here is another demo jnx for you to play with

                              Cheers

                              Whitedrag0n

                              Comment

                              Working...
                              X