Jump to content
AVIC411.com

2015 Avic Z120 map update


Recommended Posts

to check the update matches the manifest you can probably run something like this:

#!/usr/bin/perl
#
# parses ALLDATA.VER manifest
# lists files, sizes, and verifies crc32b
#

use Digest::CRC; 

my $crc = Digest::CRC->new(type=>"crc32");
my $filename = "ALLDATA.VER";

if (@ARGV) {
    $filename = $ARGV[0];
}

open(my $fh, $filename) or die "can't open $filename";
binmode($fh);

## check file crc
# get crc from end
seek($fh, -4, 2);
my $filecrcpos = tell($fh);
read($fh, my $filecrcraw, 4);
my $filecrc = unpack("L", $filecrcraw);
# check actual crc of file
seek($fh, 0, 0);
read($fh, my $filecontents, $filecrcpos);
$crc->add($filecontents);
my $crccalc = $crc->digest();
$crc->reset();
if ($filecrc == $crccalc) {
    print "File CRC check OK. ";
} else {
    printf("File CRC check FAILED. File crc: %08x, calculated crc: %08x\n", $filecrc, $crccalc);
}    


## now begin read
# skip magic, 
seek($fh, 4, 0); 

# filesize
read($fh, my $filesize, 4);

# skip something?
seek($fh, 36, 1);

# total file records
read($fh, my $numrecsraw, 4);
my $numrecs = unpack("l", $numrecsraw);
my $fcounter = 0;
my $isdir = 1; # track directory/filename mode
my $currdir = "";

while ($fcounter < $numrecs) {
    read($fh, my $sectionsizeraw, 4);
    my $sectsize = unpack("i", $sectionsizeraw);
    for (my $j=0; $j < $sectsize; $j++) {
        read($fh, my $rawtext, 56);
        my @fnameraw = unpack("C*", $rawtext);
        read($fh, my $rawdata, ;
        my ($fsize, $fcrc) = unpack("L L", $rawdata);
        # cant figure out the multibyte magic needed to make perl unpack this to ascii, so must hack/map
        my $fname = join("", map { if ($_ > 0x0 && $_ < 0x80) { chr($_) } } @fnameraw);
        if ($isdir) {
            # build directory path
            $currdir = $currdir . "$fname/";
        } else {
            # list files
           printf("  %s, size: %d, crc: %08x, ", $fname, $fsize, $fcrc);
           my $fullname = "$currdir$fname";
           if ( -e $fullname ) {
              open(my $testfh, $fullname) or die "can't read $fullname";
              binmode($testfh);
              $crc->addfile(*$testfh);
              my $fcrccalc = $crc->digest();
              $crc->reset();
              if ($fcrc == $fcrccalc) {
                  print "CRC OK";
              } else {
                  printf("CRC BAD. crc calculated: %08x", $fcrccalc);
              }
           } else {
              print "FILE $fullname NOT FOUND.";
              printf(" %x", $fullname);
           }
           print "\n";
           $fcounter++;           
        }
    }
    
    # toggle dir/filename mode
    if ($isdir) {
        print "$currdir\n";
        $isdir = 0;
    } else {
        $currdir = "";
        $isdir = 1;
    }
}

Link to post
Share on other sites
  • Replies 255
  • Created
  • Last Reply

Top Posters In This Topic

It looks like they split it out unlike previous year where one update fits all.

 

eBay has it for $65. Not bad if a bunch of us each chip in like $10 to get it and post it up.

 

http://m.ebay.com/itm/2015-MAPS-FOR-PIONEER-AVIC-Z140BH-ALSO-SOFTWARE-VERSION-6-0-AND-BLUETOOTH-3-32-/131629246091?nav=SEARCH

I think I got. Running a few different units to see if it works.

Link to post
Share on other sites

to check the update matches the manifest you can probably run something like this:

I'm not very familiar with perl, but I loaded a version on my Widows 10 PC (Padre  guess Strawberry) and managed to run your script. BTW line 91 should be "%s" instead of "%x" since  $fullname is a string. However, I ran it and all files were present and CRC'c OK. 

 

I'm wondering if it isn't something simple.  Randomwalk101, on your SD, look in \UPDATE and see if there is another directory called UPDATE. When I extracted the modified UPDATE.RAR I got UPDATE\UPDATE\ then all the files we expected.

Link to post
Share on other sites

Meaning you bought if off ebay, or you found out what the problem was?  And how many different units do you have LOL.

I have a Z110BT, Z120BT, and 2 Z140BHs. I included a bit dump image of the CARDINFO.cif file for the Z140BH 2013 update. The only fields required are filled in. Pionara is correct, position 16 and 17 are the same for US and EU. They tell the unit that there is a system update: position 16 for yes position 17 for no. The rest of the field does not matter except for the location (hex address) of the unit you have (see image). So all you need to do is figure out the correct location for the 2015 update.

post-18057-0-78697600-1446037003_thumb.jpg

Link to post
Share on other sites

Thx again all ---  and thx to RonS --- I used cardinfo and the firmware and update from post 12 . All went fine with no problems.  Ppl just remember to only use one update folder because it unzips and has one then another one. Also a big thx to   kellinaraday, and the rest that made this happen.

 

 

      avicx920bt that has had the last two updates from here and this one.

Link to post
Share on other sites

I included a bit dump image of the CARDINFO.cif file for the Z140BH 2013 update. The only fields required are filled in. Pionara is correct, position 16 and 17 are the same for US and EU. They tell the unit that there is a system update: position 16 for yes position 17 for no.

OK, but you are using confusing terminology. First, it is a hex dump, not a bit dump, but that is minor. When you say "position 16", do you mean offset 0x0F (starting at 0, that is the 16th byte, or 0x10 (technically the 17th byte in the file but is 16 decimal)?  In your dump both 0x0F and 0x10 are set to ASCII '0' (30 hex). Also, if these positions are flags, is there a specific value for T or F.  And off topic, but that's brain-dead of Pioneer to use two flags for something that is mutually exclusive. Meaning Update can only be T or F, so only one flag is needed. Wonder what happens if both at set?

 

Next question -

The rest of the field does not matter except for the location (hex address) of the unit you have (see image). So all you need to do is figure out the correct location for the 2015 update.

 

I'm confused by all of this. I'm not sure what you mean by "field" in this context. The whole 300 byte file?  What do you mean by "location"? An offset? And by "hex address" are you referring to the ASCII labels Pioneer assigns to the individual models - like

  • X07UNC (Z110BT)
  • X05EUR (F310BT)
  • X05UNC (U310BT)
  • X27EUR (F920BT)
  • X27UNC (X920BT)
  • X30EUR (F20BT)
  • X30UNC (Z120BT)
  • ......

 

If so, those aren't hex anything. They are just strings which seem to use a naming convention the begins with 'X', followed by 2 digits, followed by a 3 char  string which seems to define region and some other optional variation (hence the last char '0' or '1'). BTW, examining the 2015 Euro file - there seem to be many more than I listed. 

 

So anyway, are you saying that this CardInfo works with the 2015 upgrade for Z140bh and X940bt?

Link to post
Share on other sites

I just applied this update to my Z120BT without any problems.  It took almost 30 minutes for the update to install.  When the update was done and the HU rebooted, the SD card was still in the unit and it prompted me again if I wanted to update.  I assumed this was just my dumbness of leaving the card in the HU so I told it no and removed the SD card.  Everything seems perfect so far.  Thanks a ton to anyone and everyone how helped make this available!!  :mrgreen: :mrgreen: :mrgreen:

Link to post
Share on other sites

BlakeStone posted this in the X series forum. Just to spell it out clearly, use this CardInfo.cif file (after unzipping of course) for the above mentioned headunits. Thanks for posting this BlakeStone.

 

Well...downloaded this Zip file and put the new CARDINFO file in and it still say "Wrong SD Card".  Went back and replaced the VERINFO file (from pionara) with the verinfo  file in this zip file and it said "Update Failed....try again" with a "Retry" button.  Press on the retry button just repeat the message...so in other words, it doesn't work.  

 

Perhaps BlakeStone can upload the 2015 map again along with everything else for the z140BH/X940/130BT etc... unit?

Link to post
Share on other sites

Well...downloaded this Zip file and put the new CARDINFO file in and it still say "Wrong SD Card".  Went back and replaced the VERINFO file (from pionara) with the verinfo  file in this zip file and it said "Update Failed....try again" with a "Retry" button.  Press on the retry button just repeat the message...so in other words, it doesn't work.  

 

Perhaps BlakeStone can upload the 2015 map again along with everything else for the z140BH/X940/130BT etc... unit?

The cardinfo has yet to be cracked.  If someone can get ahold of the EU version I'm sure that would work.

Link to post
Share on other sites

My understanding is limited so I may be way off based here but according to pionara, cardinfo only serves to trigger the unit into looking at the SD card for an update and reboot the unit.  Once rebooted, cardinfo is not used anymore.  If this is the case, the cardinfo we currently have should suffice...so it could be something else..

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...



×
×
  • Create New...