gcd-parser
gcd-parser copied to clipboard
Signature mismatch
$ ./get_updates.py 006-B3943-10
$ wget http://download.garmin.com/software/EPIX_Gen2__720.gsp
$ unzip EPIX_Gen2__720.gsp
Archive: EPIX_Gen2__720.gsp
extracting: package.xml
inflating: manifest.xml
extracting: bundle.gsp
$ ./gcdstruct.py bundle.gsp
Opening bundle.gsp
Traceback (most recent call last):
File "./gcdstruct.py", line 23, in <module>
gcd = Gcd(FILE)
File "gcd-parser/grmn/gcd.py", line 33, in __init__
self.load()
File "gcd-parser/grmn/gcd.py", line 43, in load
raise ParseException(RED + "Signature mismatch ({}, should be {})!".format(repr(sig) + RESET, repr(GCD_SIG)))
grmn.gcd.ParseException: Signature mismatch (b'\x85u\xc0\x96\x99\xf6\xa5\x9c', should be b'GARMINd\x00')!
The file is a .gsp file, not .gcd. And thus it's a completely different format. From glancing at it, I'd say the GSP is some encrypted archive of all the different updates mentioned in the package.xml . But I don't know of any way to decrypt it.