Go directly to: JCI Test Mode
In conjunction with the previous article, where Fiat 124 Spider and Abarth 124 Spider owners are installing the CarPlay retrofit hub kit with Mazda’s version 70 firmware, which is needed to make it all work, since it seems that Fiat has not announced any plans to release version 70 firmware of their own, this article explains how to free up memory by deleting part of the Navigation program.
Due to apparent VIN cross-checking, Navigation is dysfunctional in Fiats and Abarths running Mazda firmware anyways (of course they’ll have a choice of Google Maps or Waze to guide them to their destinations instead), regardless whether legal Mazda/Fiat SD cards are inserted (the car VIN is NE/NF and the firmware is expecting ND VIN), so I came up with the idea of removing NNG’s ≈ 18 MB /jci/nng/jci-linux_imx6_volans-release file, that is integral to the Navigation program, in order to free up a good chunk of memory. It is basically the core of iGO version 184.108.40.2068970, and the file is exactly the same for v70.00.000 , v70.00.021, and v70.00.100 (probably a few iterations of v59 Mazda firmware, as well).
Because of the additional firmware memory assigned to CarPlay and Android Auto apps that were added to Version 70 firmware, there is very little left to allow for installing other apps (i.e. Speedometer, Video Player), larger animation files, etc., so this may prove to be quite helpful not only to Fiat and Abarth 124 Spider owners, but Mazda owners that no longer need their built-in Navigation program, and would rather free up some memory*¹.
Also, it is recommended that large apps, like Speedometer, AA and CASDK, be uninstalled, and avoid reinstalling them until after you have installed the Mazda-to-Fiat version 70 tweaks, to insure sufficient memory is available for that tweak, especially if you are restoring the Navigation function.
With Version 70 firmware, you are advised to use the Mazda AIO installer, version 2.8.3 or higher, along with the “Apps to Resources” install option, for installing additional tweaks, as it adapts to changes in the Home page that accommodate CarPlay and Android Auto, as well as making better use of the available memory in the CMU by installing to the resources partition, rather than the almost-full root partition.
There used to be a tweak for patching the NNG file (thank you colonelpan1c), so that it would be linked to hacked license files that allowed Navigation to function without purchasing it, and I am simply borrowing the (legal) portion of the tweak which simply copies your NNG file, and gives you the ability to restore it unchanged (no patching), back to your CMU, if so desired in the future.
I ran my idea by Trevor (trezdog44) for his opinion (and bench testing – thank you sir!), prior to having TheSalamander beta test the routine and publishing this article, to insure that removing this file wouldn’t brick the CMU. In fact, everything simply behaves as if the SD card isn’t installed, and was thinking that Trevor may eventually add this option to MZD-AIO, but he’s informed me that he is developing a new strategy of saving .org (backup) and large app files to a different partition, to get around the almost full partition where jci is loaded, which he’s hoping to implement, starting with MZD-AIO 2.8.2.
Meanwhile, my tweak is available here now, and contains three routines in the zip file:
- StepOneTest – copies NNG file to your USB drive only.
- StepOne – copies NNG file to your USB drive, and then deletes it from the CMU firmware to free up ≈ 18 MB.
- StepTwo – replaces NNG file from your USB drive, back to the CMU firmware, if desired sometime in the future (or you could simply reinstall the firmware up files).
You’ll need id7 tweak installed in order to tweak via USB (install with my id7 tweak before upgrading to version 70).
Copy all files from StepOneDownloadNNG to your FAT 32 formatted USB drive. Plug in the USB drive to the car and wait for the scripts to run. Once complete, the NNG file will be downloaded to your USB’s config folder, and then removed from your CMU, freeing up 18,268 KB . Copy this file over to your computer to backup, in case you might wish to reinstall at a later date (or you could simply reinstall the firmware up files).
If you ever to decide to restore this file, delete the contents in your USB drive and copy over the contents from StepTwoUploadNNG to your USB drive, place the backed-up jci-linux_imx6_volans-release file into the config folder on your USB drive. Plug the USB drive into your car to apply the reinstall tweak. Once you see the car’s system reboot, remove the USB. Your Navigation NNG file will be reinstalled.
StepOneTestDownloadNNG is the same as StepOneDownloadNNG, only it doesn’t delete the file from your firmware, it only copies it to your USB drive, allowing you to feel comfortable with the process.
*¹ also filling up memory that keep tweaks from installing properly, are temporary files @ /tmp/mnt/data_persist/log/dumps/
Linux CPU/MEM/VIP Performance Monitor
For those wanting to view a performance monitor (to observe memory usage) while experimenting, press and hold Music + Back + Mute until the 3-color bar overlay comes up in the right corner of your screen. You can then operate your Infotainment system and monitor each function’s effect on CPU load, memory (and I think VIP is Virtual IP throughput?) with either:
- that small overlay
- or by tapping the overlay, bringing up a semi-transparent full-screen view of the Linux Performance Monitor
JCI Test Mode
Since tweaks have yet to be thoroughly adapted and tested for version 70+ firmware, those of you on version 70 (along with id7) might want to learn more about a little-known Test Mode script screens option in your firmware:
- Little-known to 124 Spider owners, that is.
Mazda owners prior to 2015 were well aware it 😉 as reverse-engineering some of these scripts for toggling settings (like speed-restricted functions and touchscreen, enabling WiFi, etc.), became the basis for the origins of Siutsch’s AIO tweaks:
♦ LVDS SPEED TOGGLE → runs set_lvds_speed_restriction_config.sh; Enable detailed touchscreen input while driving (like input of route destination address)
♦ SPEED TOGGLE → runs set_speed_restriction_config.sh; Reverse other speed restricted items, besides detailed touchscreen input including: Unable to alter some settings / Bluetooth devices can be paired only when the vehicle is parked / Disable viewing of Text messages; the system will only read the message to you / Disable responding to Text messages with the predefined short answers
- For manually changing settings by invoking USB keyboard drivers, followed by a terminal window on the CMU display screen, plugging a keyboard into one of the car’s USB ports, and entering (tweak) commands directly (rather than emulating a terminal via a laptop connected to a serial port):
♦ USB DRIVER → runs usb_drivers.sh : add to kernel all usb drivers (hid, usbhid, sound, midi, audio, keyboard) use before using Terminal
♦ TERMINAL → runs run-terminal.sh : run an in-vehicle infotainment (IVI) Wayland’s Weston terminal with keyboard map defined in /usr/share/wayland/evdev-pc105-us.xkm and accessed by USB keyboard and mouse.
♦ I haven’t personally tried out a terminal session, so please post questions regarding this option on the popular mazda3revolution forum, rather than here.
Firmware after ≈ v56.00.511 disabled the “Easter Egg” (holding the delete button for 15 seconds) used to gain access to Test Mode from the Diagnostics Menu screen, but as frippi has discovered, everything else has been left intact. Unless you manually substitute frippi’s revised files to your CMU, you can gain access to nine “Test Mode” screens (Options 11 through 19) by simply installing my USB ** tweak ** which adds a Test Mode button (labelled T/M) ⇓ to the Diagnostics Menu screen.
Use the Test Mode screens at you own risk though, as they were meant for the firmware developers, and I don’t know if anyone has documented what programming is assigned to Options 12 – 19.
✅ Option 11 in particular, results in a set of JCI Test script screens (shown above) and described further here…
Installation Instructions (ReadMe.txt)
Tweak written by ameridan 11/12/2018 to substitute TestCtrl files modified by frippi & ameridan. If your firmware is ≥ 59.00.502, you’ll need id7 tweak installed in order to tweak via USB.
Tweaks.sh is currently for installing JCI Test Mode button tweak, which replaces the disabled access to the Test Scripts screen by holding down the Delete button.
Copy all files to your FAT 32 formatted USB drive. Plug in the USB drive to the car and wait for the scripts to run. Once complete and system reboots, pull out your USB drive.
The Diagnostics screen can be invoked by either of two methods, which then allows you to enable Test Mode by touching the new T/M button:
Method 1: Press + hold Music + Favorites + Mute until the Diagnostics menu comes up.
Method 2: In Display Settings screen, press + hold the time readout (top-right corner) until a beep is heard, then press + hold the Home icon (top-left corner) until another beep and the Diagnostics menu comes up.
Avoid selecting the Display Toggle button, as it results in a black (deselected) screen. In the event you have chosen it by accident, delete tweaks.sh, copy tweaks.sh.black_screen, and change name of the copied file to tweaks.sh and copy files to your USB drive.
If you wish to uninstall the tweak, rename tweaks.sh to tweaks.sh.install, copy tweaks.sh.uninstall, and change name of the copied file to tweaks.sh and copy files to your USB drive.