[Connected Car] Leighm0:
Your code looks like it is before the 2048 byte marker... which is after that "######rently started with high verbosity"

Also - you cannot edit a file outside of the ISO and then inject it and save the iso using winISO, it then loses its complete SSL hashed header (those first 80 bytes or so in iso file). This is why you get Authentication failed.

The best way to do things is to:

1) Make a "modified" ISO using a Hex Editor ONLY, which will run a script from your USB stick everytime during upgrade mode to do what you need.. i.e. copy files to the system somewhere, or overwrite existing files - which get run during Boot-up (see point 2 below) or when the car is running in the normal mode. I use this for major changes - i.e. adding new maps, and modifying any booting shell scripts, etc etc. Since I only have to hexedit the ISO once and just use that 1 iso all the time on my usb stick, then after that I just modify my LUA script on the USB stick to do what I need.

2) Getting a USB script to run at Boot up (I modify one of the scripts in /fs/mmc0/app/bin folder) , like from USB stick, you can get it do things you might need to run when the unit is in Full/running mode, like... write to the ETFS partition for disabling DRM (for wifi AP) or disabling Speed Lockout (entering streets while driving), Nav Secrets (couple of settings/easter eggs) menu, Engineering Menu (easy access to the engineering menu from Apps page), turning on SSH (remote root).

---------- Post added at 07:51 AM ---------- Previous post was at 07:39 AM ----------

Ok so... You're on the right path - that "pushtrue" above the Jump L210 is for the previous code, dont modify that... to make "navActivated" true.. you modify the L209 "pushfalse" to be "pushtrue". and for SRT backgrounds and logos you modify L240's "pushfalse" to be "pushtrue"...

Also - this will just enable the Navigation Icon to be present and display in the bottom row of icons, you still need a Valid Map License (.lyc) file in the location "/fs/mmc0/nav/NNG/license/"... take one from a map update ISO if you have it, and dump it into that folder using a modified ISO.

BEFORE:

L209:
pushfalse
L210:
setproperty QName(PackageNamespace(""), "navActivated")

debugline 133
getlex QName(PackageNamespace(""), "Global")
getscopeobject 1
getslot 1
pushbyte 10
callproperty QName(PackageNamespace(""), "readUTFBytes"), 1
setproperty QName(PackageNamespace(""), "antiTheftState")

debugline 134
getlex QName(PackageNamespace(""), "Global")
getscopeobject 1
getslot 1
callproperty QName(PackageNamespace(""), "readUnsignedByte"), 0
setproperty QName(PackageNamespace(""), "driverConfiguration")

debugline 135
getlex QName(PackageNamespace(""), "Global")
getscopeobject 1
getslot 1
callproperty QName(PackageNamespace(""), "readUnsignedByte"), 0
setproperty QName(PackageNamespace(""), "comfortConfiguration")

debugline 136
getlex QName(PackageNamespace(""), "Global")
getscopeobject 1
getslot 1
callproperty QName(PackageNamespace(""), "readUnsignedByte"), 0
pushbyte 1
bitand
iffalse L240

pushtrue
jump L241

L240:
pushfalse
L241:
setproperty QName(PackageNamespace(""), "SRTpackagePrsnt")

debugline 137
getlex QName(PackageNamespace(""), "Global")
getscopeobject 1
getslot 1
callproperty QName(PackageNamespace(""), "readUnsignedByte"), 0
setproperty QName(PackageNamespace(""), "destinationCode")

debugline 138
getlex QName(PackageNamespace(""), "Global")
getlex QName(PackageNamespace("com.nfuzion.moduleLinkAPI"), "MarketConverter")
getlex QName(PackageNamespace(""), "Global")
getproperty QName(PackageNamespace(""), "destinationCode")
callproperty QName(PackageNamespace(""), "getMarketFromDestCode"), 1
setproperty QName(PackageNamespace(""), "market")

debugline 139
getlex QName(PackageNamespace(""), "Global")
getlex QName(PackageNamespace(""), "Global")
getproperty QName(PackageNamespace(""), "market")
setproperty QName(PackageNamespace(""), "region")

AFTER:

L209:
pushtrue
L210:
setproperty QName(PackageNamespace(""), "navActivated")

debugline 133
getlex QName(PackageNamespace(""), "Global")
getscopeobject 1
getslot 1
pushbyte 10
callproperty QName(PackageNamespace(""), "readUTFBytes"), 1
setproperty QName(PackageNamespace(""), "antiTheftState")

debugline 134
getlex QName(PackageNamespace(""), "Global")
getscopeobject 1
getslot 1
callproperty QName(PackageNamespace(""), "readUnsignedByte"), 0
setproperty QName(PackageNamespace(""), "driverConfiguration")

debugline 135
getlex QName(PackageNamespace(""), "Global")
getscopeobject 1
getslot 1
callproperty QName(PackageNamespace(""), "readUnsignedByte"), 0
setproperty QName(PackageNamespace(""), "comfortConfiguration")

debugline 136
getlex QName(PackageNamespace(""), "Global")
getscopeobject 1
getslot 1
callproperty QName(PackageNamespace(""), "readUnsignedByte"), 0
pushbyte 1
bitand
iffalse L240

pushtrue
jump L241

L240:
pushtrue
L241:
setproperty QName(PackageNamespace(""), "SRTpackagePrsnt")

debugline 137
getlex QName(PackageNamespace(""), "Global")
getscopeobject 1
getslot 1
callproperty QName(PackageNamespace(""), "readUnsignedByte"), 0
setproperty QName(PackageNamespace(""), "destinationCode")

debugline 138
getlex QName(PackageNamespace(""), "Global")
getlex QName(PackageNamespace("com.nfuzion.moduleLinkAPI"), "MarketConverter")
getlex QName(PackageNamespace(""), "Global")
getproperty QName(PackageNamespace(""), "destinationCode")
callproperty QName(PackageNamespace(""), "getMarketFromDestCode"), 1
setproperty QName(PackageNamespace(""), "market")

debugline 139
getlex QName(PackageNamespace(""), "Global")
getlex QName(PackageNamespace(""), "Global")
getproperty QName(PackageNamespace(""), "market")
setproperty QName(PackageNamespace(""), "region")

So after you recompile with those modifications, if you load the SWF in "SWF Decoder" you will see the proper ActionScript look modified like so:

BEFORE (unmodified) aruond line 104 of the Main Action Script:

NAVIGATION_ACTIVATED = byteArray.readUnsignedByte();
Global.navActivated = NAVIGATION_ACTIVATED == 1 ? (true) : (false);
Global.antiTheftState = byteArray.readUTFBytes(10);
Global.driverConfiguration = byteArray.readUnsignedByte();
Global.comfortConfiguration = byteArray.readUnsignedByte();
Global.SRTpackagePrsnt = byteArray.readUnsignedByte() & 1 ? (true) : (false);
Global.destinationCode = byteArray.readUnsignedByte();
Global.market = MarketConverter.getMarketFromDestCode(Global.destinationCode);
Global.region = Global.market;

AFTER (modified the pushfalses to be pushtrues):

NAVIGATION_ACTIVATED = byteArray.readUnsignedByte();
Global.navActivated = NAVIGATION_ACTIVATED == 1 ? (true) : (true);
Global.antiTheftState = byteArray.readUTFBytes(10);
Global.driverConfiguration = byteArray.readUnsignedByte();
Global.comfortConfiguration = byteArray.readUnsignedByte();
Global.SRTpackagePrsnt = byteArray.readUnsignedByte() & 1 ? (true) : (true);
Global.destinationCode = byteArray.readUnsignedByte();
Global.market = MarketConverter.getMarketFromDestCode(Global.destinationCode);
Global.region = Global.market;