pionara Posted October 27, 2015 Report Share Posted October 27, 2015 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; } } Quote Link to post Share on other sites
randomwalk101 Posted October 28, 2015 Report Share Posted October 28, 2015 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 Quote Link to post Share on other sites
jfwalsh99 Posted October 28, 2015 Report Share Posted October 28, 2015 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. Quote Link to post Share on other sites
Alexei Navalny Posted October 28, 2015 Report Share Posted October 28, 2015 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. Quote Link to post Share on other sites
Alexei Navalny Posted October 28, 2015 Report Share Posted October 28, 2015 I think I got. Running a few different units to see if it works. Meaning you bought if off ebay, or you found out what the problem was? Â And how many different units do you have LOL. Quote Link to post Share on other sites
randomwalk101 Posted October 28, 2015 Report Share Posted October 28, 2015 I made sure the extract was correct. Only 1 update folder. Quote Link to post Share on other sites
jfwalsh99 Posted October 28, 2015 Report Share Posted October 28, 2015 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. Quote Link to post Share on other sites
FreeTime Posted October 28, 2015 Report Share Posted October 28, 2015 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. Quote Link to post Share on other sites
Alexei Navalny Posted October 28, 2015 Report Share Posted October 28, 2015 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? Quote Link to post Share on other sites
randomwalk101 Posted October 28, 2015 Report Share Posted October 28, 2015 Urghhhh. So what's the verdict? This 2015 map update will NOT work on z130bt and z140bt????? Quote Link to post Share on other sites
nate.in.ak Posted October 28, 2015 Report Share Posted October 28, 2015 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: Quote Link to post Share on other sites
Alexei Navalny Posted October 29, 2015 Report Share Posted October 29, 2015 2015 Maps CIF DAT.zip  These are for: AVIC-Z130BT AVIC-X930BT AVIC-X9310BT AVIC-Z140BH AVIC-X940BT 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. Quote Link to post Share on other sites
randomwalk101 Posted October 29, 2015 Report Share Posted October 29, 2015 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? Quote Link to post Share on other sites
kellinaradway Posted October 29, 2015 Author Report Share Posted October 29, 2015 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. Quote Link to post Share on other sites
randomwalk101 Posted October 29, 2015 Report Share Posted October 29, 2015 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.. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.