[Connected Car] Leighm0:
Sorry - have been away / busy with work... only just remembered about this thread. I have written some very basic instructions below, you will need to work out the rest / where to get the files from properly, etc. And as always, do this at your own risk, if you don't know what you're doing and end up missing files or bricking your cars radio, then its your own fault (dealer wont help ya out of this mess)... however on this note - if you do get in a sticky situation I have found its not very hard to reset and start over with fresh firmware, I created a self-updating FW iso by modifying an older ISO which can be patched to auto-start on USB plugin.

You will need to patch the files based on your given Firmware Level and Model Year / uConnect type... for example FW 15.26.1 MY14 RJ3/RJ4 files differ to FW 16.13.13 MY15 RJ3/RJ4, etc.

You will also need to buy an iGO map license (~$30AU on Android for Australia - other locations cost more) and grab the files (.lyc) and the map files (requires rooted Android to access the license file, the rest are in the SDCard storage).

Put the following files onto a USB in the root directory:

- A patched swdl.iso modified to run "script.lua" instead of the upgrades

- A patched NaviServer file enabled to allow ANY device License for iGO navigation map licenses. I call mine NaviServer2 so it doesn't conflict with the onboard one. You will need to grab this file off the uconnect from the /bin dir and then patch it using IDA Pro.

- A copy of the nav.sh and navRestart.sh files from the uconnect /fs/mmc0/app/bin folder (or from the Firmware Update DVD iso file), modified to run NaviServer2 command instead of NaviServer - i.e. patched naviserver, with unlocked device licensing.

- A RABCDAsm modified main.swf to "Push True" for SRT and Navigation options (if you want SRT backgrounds and startup logos/app logo, and if you don't have Navigation enabled by default i.e. Jeep Laredo model).

- The map files into a folder called "content", with all your map files (3dc, 3dl, fbl, fda, fjw, fpa, fsp, ftr, hnr, ph, poi, spc), they need to sit in the correct subfolders based on iGO map file locations. (see screenshots)

- For activating the SRT Apps, patch the xlet files to allow them to run without "conditions" in the xlet_properties files, stick them into a "xlets" directory on usb stick.

- script.lua LUA script (contents shown below)

script.lua contains following content, note: I am using Australia maps, obviously you need to change it for your own maps, and also for your own NaviServer file (if you want to call it different).

NOTE: If you don't want to modify your XLETs (apps) or are unsure, then remove the lines about xlets below in the script.

#!/usr/bin/lua
local os = os
-- copy patched main.swf, nav.sh, navRestart.sh, NaviServer2
os.execute("cp -f /fs/usb0/main.swf /fs/mmc0/app/share/hmi")
os.execute("cp -f /fs/usb0/nav.sh /fs/mmc0/app/bin")
os.execute("cp -f /fs/usb0/NaviServer2 /fs/mmc0/app/bin")
os.execute("cp -f /fs/usb0/navRestart.sh /fs/mmc0/app/bin")
-- remove old maps, copy new map files from usb0 content folder
os.execute("rm -rf /fs/mmc0/nav/NNG/content/building/Australia*")
os.execute("rm -rf /fs/mmc0/nav/NNG/content/map/Australia*")
os.execute("rm -rf /fs/mmc0/nav/NNG/content/phoneme/Australia.ph*")
os.execute("rm -rf /fs/mmc0/nav/NNG/content/poi/Australia*")
os.execute("rm -rf /fs/mmc0/nav/NNG/content/speedcam/Australia*")
os.execute("cp -rf /fs/usb0/content /fs/mmc0/nav/NNG")
-- copy map license files
os.execute("cp -f /fs/usb0/*.lyc /fs/mmc0/nav/NNG/license")
-- !!!!! remove old XLETS and copy patched xlets to mmc1 ( OPTIONAL : Remove the following 5 LINES if you dont have modified XLETS to copy over ) !!!!!
os.execute("mount -uw /fs/mmc1/")
os.execute("rm -rf /fs/mmc1/kona/preload/xlets/*")
os.execute("rm -rf /fs/mmc1/xletsdir/xlets/*")
os.execute("cp -rf /fs/usb0/xlets/* /fs/mmc1/kona/preload/xlets")
os.execute("cp -rf /fs/usb0/xlets/* /fs/mmc1/xletsdir/xlets")
-- change permissions for new files copied
os.execute("chmod 555 /fs/mmc0/app/share/hmi/main.swf")
os.execute("chmod 755 /fs/mmc0/app/bin/nav.sh")
os.execute("chmod 755 /fs/mmc0/app/bin/NaviServer2")
os.execute("chmod 755 /fs/mmc0/app/bin/navRestart.sh")
os.execute("chmod 555 /fs/mmc0/nav/NNG/content/building/Australia*")
os.execute("chmod 555 /fs/mmc0/nav/NNG/content/map/Australia*")
os.execute("chmod 555 /fs/mmc0/nav/NNG/content/phoneme/Australia*")
os.execute("chmod 555 /fs/mmc0/nav/NNG/content/poi/Australia*")
os.execute("chmod 555 /fs/mmc0/nav/NNG/content/speedcam/Australia*")
os.execute("chmod 555 /fs/mmc0/nav/NNG/license/*.lyc")
os.execute("chmod 555 -R /fs/mmc1/kona/preload/xlets")
os.execute("chmod 555 -R /fs/mmc1/xletsdir/xlets")
-- remount mmc0/1 as read-only mode
os.execute("mount -ur /fs/mmc1/")
os.execute("mount -ur /fs/mmc0/")
-- stop mmc mount and end script
os.execute(mountpath.."/usr/share/scripts/mmc.sh stop")

Screenshot of the full USB folder/file tree once prepared:

- Highlighted Yellow files have been modified from Originals.

- Highlighted Green files are completely new files replacing Originals if exist.

- Highlighted Blue file is custom LUA script file for above code content.

- Non-Highlighted files are untouched Originals.

Screenshot by Lightshot

And here is what it looks like on the actual USB stick in Explorer:

Screenshot by Lightshot