Download as pdf or txt
Download as pdf or txt
You are on page 1of 75

Updating the MMI 3G/3GP NAR: Software & Navigation Database

Compiled by DrGER 17 Mar 2021; 26 Feb 2023 v1.9


2

Table of Contents

1.0 Introduction 4
1.1 MMI 3G High Systems 5
1.2 Update Conditions 5
2.0 Update to NAR 6.16.2 2017/2018 Navigation Data 6
2.1 MMI 3G+ Software Update to NAR K0942_6 7
2.3 NAR 2017/2018 Navigation Database Update 12
2.3 Navigation Data Activation 13
2.4 Clearing Known DTCs Due to Updates 16
3.0 Update to NAR 6.24.0 and Later Navigation Data 17
3.1 Notes regarding navigation data updates 17
3.2 Update Procedure 18
3.4 Unblocking the Navigation Database 24
3.5 Clearing Known DTCs Due to Updates 24
3.6 Troubleshooting Update Failure(s) 25
3.8 MMI 3G High Navigation Data Updates 25
4.0 References 28
5.0 Acknowledgements 28
APPENDIX A 29
A.1 Reference - MMI3GP US9426 Software Update Device Summary (Table A.1) 29
APPENDIX B 32
B1. Enable Green Engineering Menu (GEM) 32
B.2 - Enable User Defined Software Update Mode 32
B.3 Software Update Logging 33
APPENDIX C 37
C.1 - DTC 03276 - Please Check Software Version Management 37
C.2 - DTC 03623 - Invalid Security/Release Code 38
C.3 - DTC 03677 - Missing FSC File 41
APPENDIX D 42
D.1 Preparing Navigation Data Update Media from Internet Downloads 42
D.2 Confirm Quality of Downloaded RAR Parts 42
D.3 Extract the Multi-Part RAR Archive 42
D.4 Prepare Release for User Defined Software Update 43
D.5 Validating Release Media 44

26 Feb 2023
3

APPENDIX E 48
E.1 8R0906961FE HN+_US_AU3G_K0942_6 Manifest Summary 48
APPENDIX F 50
F.1 User Defined Navigation Database Update Device Selection Screens 50
APPENDIX G 53
G.1 Reference - MMI 3GP NAR 6.24.0 /mnt/nav/db File Size List 53
G.2 Reference - /efs-persist/navi/db/acios_db.ini File 55
APPENDIX H 56
H.1 Notes on VAG Module Adaptation Using Xtool VAG401 Diagnostic Tool 56
APPENDIX J 60
J.1 Decrypted Activator Script copie_scr.sh 60
J.2 Updated Navigation Database Unblocker Patch Script 62
J.3 Usage Text for QNX vdev-logvolmgr 63
INSTALLATION CHECKLIST: NAR Navigation Database Update 3GP/3G+ 75

26 Feb 2023
4

1.0 Introduction

This document is a record of the author’s observations and experiences with updating the
MMI3GP software and navigation database on a 2014 Audi A4 with MMI 3G+ system. It is
comprised of several sections and appendices:

Section 2: (1) Updating the MMI 3G+ software from production version P0715 to current
K0942_6, (2) updating the navigation data using OE database and activator pack SD cards, and
(3) clearing DTCs due to the MMI update process.

Section 3: Updating later versions of the navigation data using SD cards created from installation
archives downloaded from internet sites, including NAR MMI 3G High systems.

The various appendices offer reference information and additional details for planning and
executing these updates.

DISCLAIMER: Use this guide at your own risk. The author is not responsible for any
mis-application of the procedures described herein resulting in loss of MMI functionality.
When we purchased our A4 used as third owners in July 2017, the MMI system had the original
production software (HN+_US_AU3G_P0715) and navigation database (8R0060884BD NAR
6.8.2 2012/2013) installed (build date Oct 2013), as reported on the [MENU] >> [MMI Setup] >>
Version information screen (Fig. 1.1).

Fig. 1.1 Production MMI version information.

The build code for this configuration is PR-7T6 (Navigation system (MID)), noted on the vehicle
information sticker affixed to the body under the luggage compartment floor. The VAG hardware
part number of the MMI main unit is 8R1035746D (for mmi 3g +), as reported by VCDS.

26 Feb 2023
5

We note here that navigation databases released for MMI3GP (3G Plus) systems apply also to
systems with software version HN+R_US_AU3G (includes Q3, A6, A7, and A8 models).

1.1 MMI 3G High Systems

Earlier NAR MMI 3G High systems (e.g., used in the MY2009-2012 B8 platform) can use the
same original (unmodified) NAR navigation update media as MMI 3GP/3G+ systems. The
current software version of NAR MMI 3G High systems is HNav_US_K0133_3_D1. We assume
that NAR MMI 3G High systems will be updated to HNav_US_K0133_3_D1 prior to any
navigation data updates. Specific procedures for updating the software of MMI 3G High systems
are beyond the scope of this document. Refer to section 3.8 for brief remarks regarding the minor
differences between MMI 3G High and 3GP/3G+ navigation data updates.

1.2 Update Conditions

1. Ignition OFF;
2. Battery maintainer attached (we use a CTEK MUS 5.0);

26 Feb 2023
6

2.0 Update to NAR 6.16.2 2017/2018 Navigation Data

In September 2018, the author obtained a set of OE media (SD cards) to update the navigation
database to NAR 6.16.2 (NAR 2017/2018). This SD media set included:

1. 8R0906961FE Updatemedium SVM: US9426 (K0942_6), assembled Oct 2016:

2. 8R0051884EN NAR Version 2017/2018 Pack No. US/6.16.2, assembled Nov 2017:

3. 8R0060884EN Activation Pack NAR 6.16.2:

We believe the first two SD cards are genuine OE parts. We have evidence to suggest that the
third SD card is not original equipment, as the so-called “activation” script does not, in fact,
provide a legitimate activation license for the updated navigation database. We discuss this later
in section 2.3. The navigation database update requires that the MMI software be updated first;
we proceed with that task in the next section.

26 Feb 2023
7

2.1 MMI 3G+ Software Update to NAR K0942_6

All recent NAR navigation database versions after 2016 or so require MMI software version
K0942_6. This section describes updating the NAR MMI 3G+ system to K0942_6 using SD
8R0906961FE or equivalent SD card prepared with the update.

1. Prepare as noted in 1.2, above.

2. MMI turned ON using the console power/volume control.

3. Wait for all functions (Car, Media, Navigation, Radio, Telephone) to start fully.

4. Confirm that the MMI system time source is set to GPS (Fig. 2.1). This setting ensures
that software update logging information has correct date/time stamps.

Fig. 2.1 MMI [Time] setting for Time source set to GPS.

5. Enter the Red Engineering Menu (REM) with [CAR]+[BACK].

n.b.: Screenshots in this section were obtained after the original update was performed in
Oct 2018, and with the update SD card in MMI SD Slot 2, to allow for screenshots to be
captured on the SD card in SD Slot 1. In general, the source of MMI software updates
can be either SD1 or SD2. The images presented here are intended for general reference.

26 Feb 2023
8

Fig. 2.2 REM start screen with [Settings], [System], and [Update] softkeys.

6. Insert write-protected SD card 8R0906961FE (US9426) or equivalent in MMI SD Slot 1


or 2.

7. Select REM softkey [Update] (Fig 2.2).

8. Scroll to SD 1 or SD 2 and select (Software update: Select source) (Fig. 2.3).

Fig. 2.3 REM Update source selection screen.

9. Select release HN+_US_AU3G_K0942_6 (Software update: SD 2) (Fig. 2.4).

26 Feb 2023
9

Fig. 2.4 REM Update release selection screen.

10. Select Standard (Software update: SD 2 - HN+_US_AU3G_K0942_6) (Fig. 2.5).

Fig. 2.5 REM Update type selection (Standard) screen.

11. Scroll to end of Device selection list and select Start update (Fig. 2.6).

26 Feb 2023
10

Fig. 2.6 Device Selection: Start update.

n.b.: Applications with Bose or B&O audio are recommended to use the User defined
update method so that the Bose or B&O software is not updated by the end-user. In our
case, our B&O amplifier and DSP audio ( AMPLCPKO) was not selected by the Standard
update.

If the Bose or B&O audio component is selected here, (1) exit the REM with
[CAR]+[BACK], (2) enable User Defined Update in the GEM (see Appendix B), (3) restart
this section, (4) select User defined at Step 9, above, and (5) remove the Bose or B&O
audio component from the selected devices before continuing with the software update.

Note also that B&O devices AMP_LC_P and AMPLCPKO have not been updated by the
manufacturer since the original production releases.

12. Confirm on next screen by selecting Start. MMI will restart and update will continue.

Document update progress with pictures of update screens.

13. After all selected device updates are complete, the MMI will restart and return to the REM
with a Device summary list. Review the Device summary, as needed. In general, we’re
looking for OK on component selections that were installed successfully. Component
selections with NOK should be investigated before continuing. This information is also
visible from the REM [Logging] function, as described in Appendix B.3.

14. Scroll to the end of the Device summary list and select Continue to continue to the last
step (Fig. 2.6).

26 Feb 2023
11

Fig. 2.6 Device summary - Continue.

15. Scroll to Abort documentation and select (Fig. 2.7). MMI will restart into normal
operation.

Fig. 2.7 REM final software update screen.

16. Remove write-protected SD card 8R0906961FE (US9426) from the MMI SD slot. Insert
writable SD card in SD Slot 1 (for screenshots documentation):

a. [MENU] >> [MMI Setup] >> Version information

Software version:
HN+_US_AU3G_K0942_6 (updated version)

Navigation database version:


8R0060884BD NAR 6.8.2 (NAR 2012/2013)

b. [REM] >> [System] >> Activation keys >> Installed activation key

26 Feb 2023
12

17. Confirm all MMI functions work properly.

2.3 NAR 2017/2018 Navigation Database Update

Regarding instructions to delete the current navigation data and disk partition prior to
updating/installing new navigation data, at the time we performed the update in Oct 2018,
various installation documents compiled by third-parties offered differing views on whether it
was necessary to delete current navigation data using the Green Engineering Menu. Recent
guidance notes that the navigation partition needs to be deleted prior to a database update only
when data for a new region is to be installed (e.g., NAR to ECE); note also that since the GEMMI
package is stored on the nav database partition, /mnt/nav, the GEMMI package must be reinstalled
from the US09426 (8R0906961FE) SD card as described in the previous section.

If a newer version of the navigation database is to be installed in place of the production version,
refer to section 3.0.

1. Prep as noted in 1.2, above.

2. MMI turned ON using the console power/volume control.

3. Wait for all functions (Car, Media, Nav, Radio, Tel) to start fully.

4. Ensure time setting (Fig. 2.1) for correct software update logging.

5. Enter the Red Engineering Menu (REM) with [CAR]+[BACK].

6. Insert write-protected SD card 8R0051884EN (NAR 2017/2018) in MMI SD Slot 1 or 2.

7. Select REM softkey [Update].

8. Scroll to SD 1 or SD 2 and select (Software update: Select source)

9. Select NAR 6.16.2 (MMI3GP) (Software update: SD 2)

10. Select Standard (Software update: SD 2 - NAR 6.16.2 (MMI3GP))

11. Scroll to end of Device selection list and select Start update.

26 Feb 2023
13

12. Confirm on next screen by selecting Start. MMI will restart and update will continue.

Document update progress with pictures of update screens.

13. After all selected device updates are complete, the MMI will restart and return to the
REM with a Device summary list. Review the Device summary, as needed. In general,
we’re looking for OK on component selections that were installed successfully (Fig. 2.8).
This information is also visible from the REM [Logging] function, as described in
Appendix B.3.

Fig. 2.8 Package AUDI_MMI3G_NAR updated successfully.

Scroll to the end of the list and select Continue to continue to the last step.

14. Scroll to Abort documentation and select (Fig. 2.5). MMI will restart into normal
operation.

15. Remove SD card 8R0051884EN (NAR 2017/2018) from the MMI SD slot.

2.3 Navigation Data Activation

After a (brief) period, an attempt to access [NAV] will return a notice (Fig. 2.9):

26 Feb 2023
14

Fig. 2.9 Note: The navigation data is not available.

This indicates that the updated navigation database is not available for use, as the software
update process was not activated properly. In general, this requires installation of a new FSC
(FreiSchaltung Code) file generated by an authorized Audi service center for the specific
installation (VIN and navigation database). When the navigation database update is not
completed properly, end-users can apply a software patch to the MMI system that unblocks
access to the database.

The SD card supplied here with VAG part number 8R0060884EN has been determined to be
based on the process described by Keldo in 2014 to by-pass the normal system activation
process.

Remarks on a simplified process for patching the QNX operating system to implement the Keldo
procedure for unblocking access to the navigation database are described later in section 3.4.

With access to the updated navigation database unblocked, document the finished update:

Insert writable SD card in SD Slot 1 (for screenshot documentation):

1. [MENU] >> [MMI Setup] >> Version information (Fig 2.10).

26 Feb 2023
15

Fig. 2.10 Updated MMI Version Information.

2. [REM] >> [System] >> Activation keys >> Installed activation keys (Fig. 2.11).

Fig. 2.11 Installed activation keys.

3. [GEM] >> dtc >> qualified_dtcs (Fig. 2.10).

26 Feb 2023
16

Fig. 2.12 GEM Qualified DTCs.

2.4 Clearing Known DTCs Due to Updates

Scanning module 5F - Information Electr. with a VAG scan tool will return fault codes typically:

03276 - Please Check Software Version Management


03623 - Invalid Security/Release Code

Procedures for clearing DTC 03276 are presented in Appendix C.1.

Procedures for clearing DTC 03623 are presented in Appendix C.2.

26 Feb 2023
17

3.0 Update to NAR 6.24.0 and Later Navigation Data

Recent available media for NAR navigation database updates include:

8R0051884JE NAR 6.24.0 (NAR 2021/2022), assembled Aug 2020 (Fig. 3.1).

Fig. 3.1 NAR 6.24.0 Navigation Database.

3.1 Notes regarding navigation data updates

1. All recent NAR navigation data require the current MMI 3G+ software version K0942_6.
Refer to the procedure in section 2.1, above, before proceeding with the navigation
database update and be prepared to patch the system with the navigation database
unblocker script following the navigation database update.

2. MMI3G (both High and Plus) systems that were patched with the navigation database
unblocker script after updating the MMI 3G+ software to version K0942_6 will not
require unblocking following later updates.

3. Navigation data can be updated directly from any release in the same region, including
from the factory installed version; deleting the current navigation data and disk partition
using the GEM in this case is not necessary nor is it recommended.

4. High quality, high speed SDHC cards should be used to install the navigation database
update. Sandisk 32 GB Ultra 80 MB/s and faster SDHC cards are recommended. Avoid
the use of microSD cards with full size adapters.

26 Feb 2023
18

3.2 Update Procedure

This section describes a process for updating the navigation database as a user-defined software
update given a properly formatted (FAT32) 32 GB SDHC card populated with the correct NAR
navigation data update (refer to Appendix D for remarks on preparing the update SD card from
downloaded archives). An abbreviated check-list of this procedure can be found on the last page
of this document.

1. Prep as noted in 1.2, above.

2. Enable User defined mode for software updates in the GEM (Appendix B.2).

3. Enter the Red Engineering Menu (REM) with [CAR]+[BACK].

4. Insert write-protected NAR navigation update SD card in MMI SD Slot 1 or 2.

5. Select REM softkey [Update] (Fig 3.2).

Fig. 3.2 REM start screen with [Settings], [System], and [Update] softkeys.

6. Scroll to SD n and select (Software update: Select source) (Fig 3.3).

26 Feb 2023
19

Fig. 3.3 Source selection.

7. Select software release NAR 6.x.y (MMI3GP) (Software update: SD n) (Fig. 3.4).

Fig. 3.4 Update software release selection.

8. Select User defined (Software update: SD n - NAR 6.x.y (MMI3GP)) (Fig. 3.5).

26 Feb 2023
20

Fig. 3.5 User defined mode selection.

9. Select navigation database components to be updated manually:

a. Scroll to the entry for AUDI_MMI3G_NAR and note the selection status indicator:
Y, N, S, ?, or N/A. An indicator of ? requires manual selection of installation
packages (Fig. 3.5). Select AUDI_MMI3G_NAR to continue.

Fig. 3.5 User defined update required here.

b. For each sub-entry under AUDI_MMI3G_NAR, select the sub-entry, select the
Application component, as required, and return (Fig. 3.6).

Do not select the Bootloader component for any sub-entries. Note also that
update is not required when the Application version number does not change (as
shown in Fig. 3.6); in this case, package LABEL_NAR can be omitted safely from
the current navigation database update.

26 Feb 2023
21

Fig. 3.6 Application component of package LABEL_NAR selected.

c. After all appropriate Application components are selected, return to the top-level
device selection list.

d. In some cases, entries NaviPersistence and MapStyles may also require updating,
depending on their versions in the new release (cf. Appendix A). Select each to
view their respective sub-entry lists. As in (b), above, review each of the
Application versions to determine whether a component should be selected for
updating. In general, version numbers that are the same (e.g., as in Fig. 3.3) may
be omitted from the update.

e. After all sub-entry Application components are selected for updating, return to the
top-level device selection list. Appendix F offers screenshots of the NAR device
selection screens for additional reference.

10. Scroll to end of Device selection list and select Start update (Fig 3.4)

26 Feb 2023
22

Fig. 3.7 Start update selection.

11. Confirm on next screen by selecting Start (Fig. 3.5). MMI will restart and the update will
continue.

Fig. 3.8 Software update confirmation screen.

Document progress with pictures of MMI display for each update step.

12. After all selected device updates are complete, the MMI will restart and return to the REM
with a Device summary list. Review Device summary, as needed. In general, we’re
looking for OK on component selections that were installed successfully (Fig. 3.9).

26 Feb 2023
23

Fig. 3.9 Device summary OK.

Component selections with NOK indicate problems with the installation (Fig. 3.4); refer
to section 3.6, below, for further discussion. This information is also visible from the
REM [Logging] function, as described in Appendix B.3.

Scroll to the end of the list. Select Continue to continue to the last step (Fig. 3.9).

Fig. 3.9 Device summary - continue.

13. Scroll to Abort documentation (Fig. 2.5) and select. MMI will restart into normal
operation.

14. Confirm all MMI functions work properly.

15. Remove update card from its SD slot 1 or 2 and insert write-enabled SD card in Slot 1 for
screenshot documentation:

26 Feb 2023
24

a. [MENU] >> [MMI Setup] >> Version information


b. [GEM] >> dtc >> qualified_dtcs

Refer to section 2.4, above, and Appendix C for remarks regarding DTC fault codes in module
5F as a result of the navigation database update.

3.4 Unblocking the Navigation Database

In cases where the factory MMI software is updated immediately prior to updating the navigation
database version, unlocking access to the navigation database will likely be required. Attempts
to start Navigation from the MMI menu or [NAV] console button that result in a “The navigation
data is blocked” (or similar) message on the MMI display indicate that the MMI3G system must
be patched to allow further access to the new navigation database.

Access to the new navigation database is unblocked by patching the MMI3G QNX operating
system so that system process vdev_logvolmgr is terminated shortly after regular file
acios_db.ini is created in the /mnt/lvm filesystem. An established approach to unblock the
navigation database is to add the following shell commands as a background sub-shell to an
existing shell script that is called during the system boot/startup process:

waitfor /mnt/lvm/acios_db.ini 180 && sleep 10 && slay vdev_logvolmgr

A common approach since 2014 has been to add this code to a new shell script that starts the
mme-becker system process (by way of the mmelauncher process and its configuration file
mmelauncher.cfg).

The solution proposed here is to patch system file /mnt/efs-system/usr/bin/manage_cd.sh,


which is common to both MMI3G and MMI3GP systems, by appending the patch text to the script
as:

(waitfor /mnt/lvm/acios_db.ini 180 && sleep 10 && slay vdev_logvolmgr)&

The navigation database unblocker patch installer shell script is presented here in Appendix J.2.

3.5 Clearing Known DTCs Due to Updates

Refer to section 2.4, above, to clear DTCs in Address 5F, Information Electr., due to the
navigation database update.

26 Feb 2023
25

3.6 Troubleshooting Update Failure(s)

Package components that report update errors (e.g., Error code 160, Fig. 3.3) are due mostly to
faulty or low quality SD cards.

Fig. 3.3 Device error: Error code 160 (Credit Theiceman@audizine.com)

In cases where a navigation database update ends with a result of NOK on the Device summary
list (Fig. 3.4), (1) the update should be concluded normally, (2) a new 32 GB SDHC card
formatted as FAT32 should be prepared as described in Appendix D, and (3) the update repeated
from 3.1, above, until all devices report OK in the final Device summary list (Fig. 2.6).

Fig. 3.4 Device summary: AUDI_MMI3G_NAR: NOK (Credit Theiceman@audizine.com)

Note that log information for software updates initiated by the REM [Update] function can be
reviewed at any time with the REM [Logging] function, as described in Appendix B.3.

3.8 MMI 3G High Navigation Data Updates

26 Feb 2023
26

As noted earlier, the OE NAR navigation data update SD media includes releases for both NAR
MMI 3G High (HNav) and 3GP/3G+ (HN+) systems. Differences in the installation procedure
described in 3.2, above, are minor. The first difference is the release name to select after
inserting the nav data update SDHC card in Slot 1 or 2. For NAR MMI 3G High, this is: NAR
6.x.y (MMI3G)

The second difference noted affects a subset of components of the AUDI_MMI3G_NAR device
selection (Fig. 3.2). These are summarized in Table 3.1.

Table 3.1 NAR MMI3G / MMI3GP Device Selection Components.

NAR 6.x.y (MMI3G) NAR 6.x.y (MMI3GP)

CTY_NAR CTYS3TC_NAR

TMC_NAR TMC3GP_NAR

LIT_NAR LIT3GP_NAR

LIT2_NAR LIT3GP2_NAR

LIT3_NAR LIT3GP3_NAR

LIT4_NAR LIT3GP4_NAR

n/a PSD_NAR

n/a PSD2_NAR

SDS_NAR SDS3GP_NAR

The last difference to note here is that device selection MapStyles version number for the MMI3G
release is not the same as the MMI3GP release, hence, it should be checked during package
selection, as noted in 3.2.9.d, above.

In any case, the pkgdb directory/folder should be inspected to ensure that the downloaded
archive includes the correct packages for the release to be installed (Table 3.2).

Table 3.2 NAR MMI3G / MMI3GP Required Packages

NAR MMI3G pkgdb Listing NAR MMI3GP pkgdb Listing


CTY_NAR CTYS3TC_NAR

GDB_NAR GDB_NAR

26 Feb 2023
27

GDB2_NAR GDB2_NAR

LABEL_NAR LABEL_NAR

LIT_NAR LIT3GP_NAR

LIT2_NAR LIT3GP2_NAR

LIT3_NAR LIT3GP3_NAR

LIT4_NAR LIT3GP4_NAR

MMI3G_NAR_Hi_R_6_x_y.pkg MMI3GP_NAR_Hi_R_6_x_y.pkg

MMI3G_NAR_Hi_R_6_x_y.pkg.sig MMI3GP_NAR_Hi_R_6_x_y.pkg.sig

NaviPersistence_NAR_3 NaviPersistence_NAR_3

PIT_NAR PIT_NAR

(n/a) PSD_NAR

(n/a) PSD2_NAR

SDS_NAR SDS3GP_NAR

StyleDBMMI3G_NAR_9x StyleDBMMI3GP_NAR_9xxx

TER_NAR TER_NAR

TER2_NAR TER2_NAR

TER3_NAR TER3_NAR

TMC_NAR TMC3GP_NAR

XAC_NAR XAC_NAR

XAC2_NAR XAC2_NAR

26 Feb 2023
28

4.0 References

References:

https://www.a5oc.com/threads/mmi-3g-3gp-navigation-6-31-1-and-firmware-updates-
currently-2020-2021.113737/

https://www.docdroid.net/mqjDVM2/update-instructions-for-mmi-3g-v17-pdf

Decimal to Hex Converter:


https://www.rapidtables.com/convert/number/decimal-to-hex.html

MMI copie_scr.sh Script Decrypter:


https://github.com/megusta1337/Copie_scr_Decoder

Navigation Data Activation:


https://www.car-auto-repair.com/how-to-active-audi-mmi-map3g-3-gp/
https://github.com/megusta1337/Activator_3GP_6.24.2

5.0 Acknowledgements

A few acknowledgements here for their contributions (however unwitting) to this work:

audimib@audizine.com (SD script ideas)


BlueStar@audizine.com (reminder that GEMMI lives on the nav partition)
dhuddleson@a5oc.com (7-zip, don’t do multiple downloads from Google Drive)
Hiwasss@a5oc.com (nav data unavailable screenshot PNG).
Jimingle10@audizine.com (source of MMI3GP NAR 6.24.0 update media)
JulianHicks@a5oc.com (REM logging, HN+R QNX information)
My_name_is_rob@a5oc.com (good feedback)
rydah@audizine.com (source of MMI3GP NAR 6.22.1 update)
spijun@audiworld.com (source of MMI3GP NAR 6.19.1 and 6.20.1 update archives)
stayfunny@audizine.com (thoughts on MMI3G High updates)
Theiceman@audizine.com (images of errors and a NOK update)

26 Feb 2023
29

APPENDIX A

A.1 Reference - MMI3GP US9426 Software Update Device Summary (Table A.1)

Table A.1 HN+_US_AU3GP_K0942_6 Software Update Device Summary

Device Name Selected Updated Description

AMPLCPKO N - B&O amplifier, DSP applications

ARU9471 S OK RU, Radio Unit

DVD N - FJ-TEN DV-05 FEAT2

AH6 N - Cinterion AH6 NAR; to v 300100

KBD_FB8 N - unknown

MuIOC Y OK MainUnit IO controller; to v 1341

MuINIC Y OK INIC MainUnit; to v 17892131

DUA130 N - DU7 High, Display Unit; v 104

MU9498 S OK MainUnit ImageLayout (9498)

MuGPS N - GPS Chip & Firmware

CombiStyles N - CombiStyles NAR (v12); v 12

GEMMI Y OK Google Earth MMI; to v 8025

sss S OK Speech - Tts

AudiSupportedFscs Y OK Supported FCSs ? to v 7

MapStyles Y OK MapStyles NAR (v06); to v 9120

MuTnrRef Y OK Spare Part Number List; to v 528

TMCConfig Y OK TMCConfig; to v 16

MUConsistency Y OK MU Consistency; to v 1041

26 Feb 2023
30

A.2 Reference - NAR MMI3GP Release Information

Information in Table A.1 includes NavTeq release information extracted from the LIT3GP
database file using strings(1).

Table A.1 NAR MMI3GP Release Information

VAG Part Number Version 1 Version 2 NavTeq Release String

8R0051884EN NAR 6.16.2 NAR 2017/2018 North America NavTeq Q3/2016 MMI3GP

8R0051884GB NAR 6.19.1 NAR 2019 North America NavTeq Q1/2018 MMI3GP

8R0051884GJ NAR 6.20.1 NAR 2019/2020 North America NavTeq Q3/2018 MMI3GP

8R0051884HG NAR 6.22.1 NAR 2020/2021 North America NavTeq Q3/2019 MMI3GP

8R0051884JE NAR 6.24.0 NAR 2021/2022 North America NavTeq Q3/2020 MMI3GP

A.3 Reference - AUDI_MMI3G_NAR Component Version Numbers (Decimal/Hex) - 3GP

Component NAR 6.16.2 NAR 6.20.1 NAR 6.22.1 NAR 6.24.0

LABEL_NAR 366850 / 0x59902 366850 / 0x59902 366850 / 0x59902 366850 / 0x59902

CTYS3TC_NAR 398849 / 0x61601 401408 / 0x62000 401920 / 0x62200 402432 / 0x62400

TER_NAR 329474 / 0x50702 329474 / 0x50702 329474 / 0x50702 329474 / 0x50702

TER2_NAR 329474 / 0x50702 329474 / 0x50702 329474 / 0x50702 329474 / 0x50702

TER3_NAR 329474 / 0x50702 329474 / 0x50702 329474 / 0x50702 329474 / 0x50702

GDB_NAR 398849 / 0x61601 401408 / 0x62000 401921 / 0x62201 402432 / 0x62400

GDB2_NAR 398849 / 0x61601 401408 / 0x62000 401921 / 0x62201 402432 / 0x62400

TMC3GP_NAR 398848 / 0x61600 401408 / 0x62000 401921 / 0x62201 402432 / 0x62400

PIT_NAR 398849 / 0x61601 401409 / 0x62001 401921 / 0x62201 402432 / 0x62400

XAC_NAR 398848 / 0x61600 401408 / 0x62000 401921 / 0x62201 402432 / 0x62400

XAC2_NAR 398848 / 0x61600 401408 / 0x62000 401921 / 0x62201 402432 / 0x62400

PSD_NAR 398850 / 0x61602 401408 / 0x62000 401921 / 0x62201 402432 / 0x62400

PSD2_NAR 398850 / 0x61602 401408 / 0x62000 401921 / 0x62201 402432 / 0x62400

26 Feb 2023
31

LIT3GP_NAR 398849 / 0x61601 401409 / 0x62001 401921 / 0x62201 402432 / 0x62400

LIT3GP2_NAR 398849 / 0x61601 401409 / 0x62001 401921 / 0x62201 402432 / 0x62400

LIT3GP3_NAR 398849 / 0x61601 401409 / 0x62001 401921 / 0x62201 402432 / 0x62400

LIT3GP4_NAR 398849 / 0x61601 401409 / 0x62001 401921 / 0x62201 402432 / 0x62400

SDS3GP_NAR 398850 / 0x61602 401409 / 0x62001 401921 / 0x62201 402432 / 0x62400

config.nfm 366848 / 0x61600 366848 / 0x61600 366848 / 0x61600 366848 / 0x61600

DBInfo.txt 398850 / 0x61602 401409 / 0x62001 401921 / 0x62201 402432 / 0x62400

PKG 398850 / 0x61602 401409 / 0x62001 401921 / 0x62201 402432 / 0x62400

SIG 398850 / 0x61602 401409 / 0x62001 401921 / 0x62201 402432 / 0x62400

A.4 Reference - NaviPersistence Component Version Numbers (Decimal)

Both package components script and xml have version “3” since the NAR 6.16.2 release.

A.5 Reference - MapStyles Component Version Numbers (Decimal) - 3GP

Package component NAR was version “9129” for the NAR 6.16.2 release. Since NAR 6.19.1,
the version is “9131”.

A.6 Reference - MapStyles Component Version Numbers (Decimal) - 3G High

Package component NAR has version “94” since the NAR 6.16.2 release.

26 Feb 2023
32

APPENDIX B

B1. Enable Green Engineering Menu (GEM)

When the GEM is not enabled (i.e., holding [CAR]+[MENU] has no effect), the GEM can be
enabled by setting the value of Adaptation channel 6 to ‘1’ for Control Module Address 5F -
Information Electr.:

1. Using a VAG diagnostic scan tool (VCDS, VAG401, Foxwell NT510, etc.):
a. Open Control Module Address 5F.
b. Open function for Adaptations.
c. Open Adaptation Channel 6.
d. Set the Adaptation Value to 1 and Save.

An example using VCDS is presented here:


https://www.car-auto-repair.com/how-to-enable-audi-mmi-green-menu-hidden-menu-
by-vcds-script/

An example using VAG401 is presented here in Appendix H.

2. OBDII Bluetooth applications that are VAG-aware (e.g.., Carista, OBDeleven) have
special functions to enable the Green Engineering Menu with a single selection.

In any case, once set, the GEM can be accessed directly without restarting the MMI.

B.2 - Enable User Defined Software Update Mode

With the MMI turned ON and at the main menu:

1. Start the Green Engineering Menu (GEM) with [CAR]+[MENU].


n.b.: If the GEM is not already enabled, refer to section B.1, above.

2. Scroll to swdl and select (Fig. B.1).

26 Feb 2023
33

Fig. B.1 Green Engineering Menu entry for swdl.

3. Scroll to user defined mode and select (Fig. B.2).

Fig. B.2 User defined mode selected.

4. Exit Green Engineering Menu with [MENU].

User defined mode is enabled until the next MMI power cycle or system restart.

B.3 Software Update Logging

Information about software updates initiated using the REM [Update] function are saved in the
/mnt/efs-persist/SWDL/Log directory of the MMI hard disk as encoded and zlib compressed
files. The [Logging] function of [REM] >> [Update] can be used to display this log information
at any time (Fig. B.3).

26 Feb 2023
34

Fig. B.3 Available Software Update Logging Information.

Selecting a listed software update returns a menu of log information that can be displayed (Fig
B.4).

Fig. B.4 Logging information menu selections.

Selecting General information returns (1) update mode (standard, user-defined); (2) start
date/time of the update; (3) end date/time of the update; (4) whether the update was the result of
a retry; (5) update release name; etc. (Fig. B.5).

26 Feb 2023
35

Fig. B.5 Software Update Logging: General information.

Of particular interest here is the Device summary selection (Fig B.6).

Fig. B.6 Software Update Logging: Device summary.

Review of this section reports devices that were affected by the update. As noted in previous
sections, software for devices listed as OK was updated successfully. Selecting an item in the
Device summary list returns detailed status of the component that was updated (Fig. B.7).

26 Feb 2023
36

Fig. B.7 Detail component update status.

Return to the normal MMI system menus from the REM Software Update Logging viewer with
[CAR]+[BACK].

26 Feb 2023
37

APPENDIX C

C.1 - DTC 03276 - Please Check Software Version Management

According to ross-tech.com, DTC 03276 is issued when “a Control Module Software Update has
been performed, but the required Feedback/Specification Documentation via Software Version
Management (SVM) was not” (URL:http://wiki.ross-tech.com/wiki/index.php/03276). DTC
03276 is cleared by either (1) performing Feedback/Specification Documentation via Software
Version Management (SVM) or (2) submitting a calculated check value to Adaptation Channel
15 of Module 5F using an appropriate VAG diagnostic tool. End-user VAG diagnostic tools that
can perform this adaptation include Foxwell NT-510 (and similar) and Ross-Tech VCDS tools.

A method for clearing DTC 03276 using VCDS is presented here:


https://www.audienthusiasts.com/Application_SVMError.html

Alternate methods for clearing DTC 03276 using the Foxwell NT-510 and VAG401 tools follow:

With the appropriate tool attached to the OBDII port and ignition ON (engine OFF):

Foxwell NT-510

1. Select: V/A (VAG) >> 2 Audi >> 1 Systems >> 4 Control Unit >> 6 Electronics 2 >>
5F-Information Electr.
2. Function Menu: select: 1 Read Codes
3. Function Menu: select: 9 Adaptation
4. Adaptation: select: 1 Input the channel number
5. Adaptation: select: [Keyboard] 015 [Finish]
6. Input Dialog Box: select [Yes]
7. CH NO. 15: Record value from “No text” field (e.g., 22657)
8. Calculate: X [XOR] 51666 (see n.b., below)
9. CH NO. 15: select: [Set new val]
10. Set new Value: select: [Keyboard] <value from 7, above> [Finish]
11. Input Dialog Box: select: [Yes]
12. HERE? - select [OK]
13. Confirm DTC 03276 is cleared: 3 Erase Codes >> 1 Read Codes

Xtool VAG401

1. Diagnosis systems >> Electric System 2 >> 5f - Message options >> [ENTER]
2. 5f - Message options: 02-Read fault codes >> [ENTER] >> [ENTER] >> [ENTER]
3. 5f - Message options: 10-Adaptations >> 015 [ENTER]

26 Feb 2023
38

4. Channel Number:015: Record value below “Matched data” line (e.g., 22657.0)
5. Calculate: X [XOR] 51666 (see n.b., below)
6. Press [ENTER] for the “Input matched data screen”, enter <value from 5, above>, press
[ENTER] when complete
7. Press [ENTER] display new “Match data” value; press [ENTER] to continue.
8. Press [ENTER] to save matched data; success: Adaption_success!
9. Press [ESCAPE] to return to function menu, then clear and reread fault codes:
05-Clear fault codes >> 02-Read fault codes

Additional remarks on the use of VAG401 for module adaptation are presented in Appendix G.

n.b.: On-line tool to calculate DTC 03276 adaptation check value:

URL: http://xor.pw/

1. I. Input: decimal (base 10): value from Channel 15, above (e.g., 22657).
2. II. Input: decimal (base 10): 51666
3. III. Ouput: decimal (base 10)
4. Select: [Calculate XOR]
5. Record result from Output field (e.g., 37203)

Fig. C.1 Input and Outfields of xor.pw XOR calculator tool

C.2 - DTC 03623 - Invalid Security/Release Code

DTC 03623 is cleared typically by way of the GEM, as follows:

1. Enter the GEM with [CAR]+[MENU].


2. Scroll to dtc and select (Fig. C.2).

26 Feb 2023
39

Fig. C.2 GEM entry for dtc.

3. Scroll to control and select (Fig. C.3).

Fig. C.3 GEM entry for dtc >> control

4. Scroll to select dtc, select, use the scroll wheel to set value 73, and select (Fig. C.4).

26 Feb 2023
40

Fig. C.4 GEM /dtc/control/select dtc set to 73.

5. Scroll to [Send test passed] and select (Fig. C.5).

Fig. C.5 GEM with [Send test passed] selected

6. Exit GEM with [MENU] and rescan for DTCs with VCDS or equivalent.

When the procedure described above using the GEM does not clear DTC 03623 successfully, the
following SD script may be used to clear DTC 03623 by removing all FSC files from the MMI
system:

echo; echo "[ACTI] Copy FSC files to SD card"


cp -v /mnt/efs-persist/FSC/*.fsc ${SDPATH}/FSC/
cp -v /mnt/efs-extended/FSCBackup/*.fsc ${SDPATH}/FSCBackup/
echo; echo "[ACTI] Remove FSC files from flash"
mount -uw /mnt/efs-persist
rm -f -v /mnt/efs-persist/FSC/*.fsc
rm -f -v /mnt/efs-persist/FSC/cache/*.fsc

26 Feb 2023
41

After the SD script is complete, restart the MMI system and rescan for remaining fault codes.
FSC files copied to the SD card should be saved off-line in case they are needed later.

C.3 - DTC 03677 - Missing FSC File

Removal of FSC files from the MMI system to clear DTC 03623 as described in the previous
section will likely trigger DTC 03677 after the next navigation database update. DTC 03677 can
be cleared from the GEM /dtc screen as described in the previous section. In this case,
however, the internal qualified DTC number is 84 (Fig. C.6).

Fig. C.6 DTC 03677 - Missing FSC File

Applying value “84” in /dtc/control is expected to clear this DTC (Fig. C.7).

Fig. C.7 Clearing DTC “84” from the GEM.

26 Feb 2023
42

APPENDIX D

D.1 Preparing Navigation Data Update Media from Internet Downloads

The navigation data update is distributed typically as a collection of multi-part RAR files that are
downloaded from Internet archives to a local computer or storage device. For example, NAR
6.20.1 might have this collection of eight (8) multi-part RAR files downloaded individually to a
single directory/folder:

8R0051884GJ.part01.rar

8R0051884GJ.part08.rar

D.2 Confirm Quality of Downloaded RAR Parts

After each file is downloaded individually, the MD5 hash/checksum should be computed and
checked against the known MD5 checksum, which can be found in the accompanying md5sum
file. On Win10 systems, the MD5 hash can be computed from a command window prompt with
certutil:

>certutil -hashfile 8R0051884GJ.part01.rar md5


MD5 hash of 8R0051884GJ.part01.rar:
c7385a315f033d711406b84f5fcb08e2 (computed)
CertUtil: -hashfile command completed successfully.
>type 8R0051884GJ.part01.rar.md5sum
c7385a315f033d711406b84f5fcb08e2 (known)

On Linux systems, md5sum(1) can be used to compute the MD5 checksum of the downloaded
file.

When the computed md5sum is the same as the known md5sum, the integrity of the downloaded
file is assured. When the md5sums are different, assume that the downloaded RAR file did not
download and save correctly and retry until the md5sums match correctly.

D.3 Extract the Multi-Part RAR Archive

On Windows systems, third-party applications 7-Zip (URL: https://7-zip.org/) and WinRAR


(URL: https://www.win-rar.com/) can be used to extract the multi-part RAR collection to a new
directory/folder on the current computer or to a blank 32 GB SDHC card directly. On Linux
systems, rar(1) or unrar(1) can be used from a command-line prompt to extract the
multi-part archive to the current working directory of a mounted SD card (e.g.
/media/user/8R0051884GJ). The Gnome Shell Archive Manager utility is also known to work

26 Feb 2023
43

here. In all cases, selection of the first part of the multi-part archive is sufficient to extract the
entire archive. Avoid the use of the Linux Gnome Shell with the mounted SD card directly as it
can introduce hidden directories/folders that can cause updates to fail.

Ensure that the high speed 32 GB SDHC card is formatted as “FAT32” before files are extracted
or copied to the card. Windows 7 and 10 systems and Linux GParted are known to format these
cards successfully for MMI system updates.

Once extracted (and/or copied) to the SDHC card, the top level directory/folder will have four (4)
files and three (3) directories (using ls(1) on a Linux/Ubuntu desktop):

-rwxr-xr-x 1 user 29 Nov 12 2018 build1


-rwxr-xr-x 1 user 233 Nov 12 2018 config.nfm
-rwxr-xr-x 1 user 206 Nov 12 2018 DBInfo.txt
-rwxr-xr-x 1 user 1434 Nov 12 2018 metainfo2.txt
drwxr-xr-x 2 user 0 Nov 12 2018 MMI3G ## MMI 3G High release info
drwxr-xr-x 2 user 0 Nov 12 2018 MMI3GP ## MMI 3G+ release info
drwxr-xr-x 2 user 0 Nov 12 2018 pkgdb

Original NAR navigation update media that is suitable for both MMI3G and MMI3GP releases
will contain 32 directories/folders and 64 files. If the extracted archive contains fewer than
these, the archive was modified for a specific release (i.e., either MMI3G or MMI3GP), and
should be applied accordingly.

At this point, the SDHC card is prepared properly for the navigation data update using the Red
Engineering Menu (section 3.0).

D.4 Prepare Release for User Defined Software Update

As distributed, the GEM is required to enable user-defined software update mode, as described in
Appendix B.2, above. User-defined software update mode can be enabled in the release directly
as follows:

1. In the top level (root) directory of the release, rename metainfo2.txt to metainfo2.orig.
2. Copy metainfo2.orig to metainfo2.txt.
3. Edit metainfo2.txt as an MS-DOS plain-text file and replace text line:

MetafileChecksum=XXXXXX

with two new text lines:

26 Feb 2023
44

EnableUserDefinedSWDLMode = "true"
skipMetaCRC = "true"

4. Save the edited metainfo2.txt file as an MS-DOS plain-text file.

D.5 Validating Release Media

Validating the integrity of database components files can be tested before and after installation
using file size and checksum information included with the release.

The SD media can be validated prior to installation by inspecting the “.conf” files of database
components and comparing the published MD5 checksum with the computed MD5 checksum for
that database component file. Note that the list of packages used for a release is defined in the
MMI3GP_NAR_Hi_R_6_X_Y.pkg file. A prototype Unix shell script to check the validity of an SD
card prepared from an Internet archive download is presented below:

#!/bin/sh
# shell functions:
getpktname(){
sed -n 's/^PacketName = "//p' ${MMIVER}/metainfo2.txt | sed 's/"^M//'
}
getpkgfilelist(){
sed -n 's/^filedef=//p' $PKGFILE | sed 's/^M//' | sed 's/_ECE//'
}
getconffsect(){
sed -n '/\[file\]/,$p' pkgdb/${pfname}/${pfname}.conf
}
# Main:
case "$#" in
"0") MMIVER="MMI3GP" ;;
"1") MMIVER="$1"
case "$MMIVER" in
"MMI3G" | "MMI3GP") true ;;
*) echo "Usage: $(basename $0) [MMI3G | MMI3GP]"
exit 1 ;;
esac ;;
*) echo "Usage: $(basename $0) [MMI3G | MMI3GP]"
exit 1 ;;
esac
RELNAME="$(getpktname)"
echo "Checking release: $RELNAME"
PKGFILE=pkgdb/${RELNAME}.pkg
for pfname in $(getpkgfilelist); do
if [ -d pkgdb/${pfname} ]; then
dbfname=$(getconffsect | sed -n 's/^name=//p' | sed 's/^M//')
dbfsize=$(getconffsect | sed -n 's/^size=//p' | sed 's/^M//')
dbfmd5sum=$(getconffsect | sed -n 's/^MD5=//p' | sed 's/ ^M//')
dbfname2=pkgdb/${pfname}/${dbfname}
dbfsize2=$(stat -c '%s' $dbfname2)
if [ X"$dbfsize" = X"$dbfsize2" ]; then

26 Feb 2023
45

dbfmd5sum2=$(md5sum $dbfname2 | cut -f1 -d' ')


if [ X"$dbfmd5sum" = X"$dbfmd5sum2" ]; then
echo "OK: $dbfname2"
else
echo "Failed MD5: $dbfname2 : $dbfmd5sum : $dbfmd5sum2"
fi
else
echo "Failed size: $dbfname2 : $dbfsize : $dbfsize2"
fi
else
echo "Missing $MMIVER component: $pfname"
fi
done
exit 0

The ‘^M’ characters in the script are literal control-M characters, as found in MS-DOS text files.

After installation, the validity of the installed database components can be confirmed by
comparing the size and checksum values of component files against a list of known size and
checksum data computed from the database release. For NAR MMI3GP 6.24.0, these values are
presented below:

# 20230209 drger; MMI3GP NAR 6.24.0 CRC32 data


844097341 2048 LABEL_NAR/Label.DB
3269732890 2141927424 XAC_NAR/kN203NAx01_0.db
2131959214 837376000 XAC2_NAR/kN203NAx01_1.db
339521353 3307 TMC3GP_NAR/info.xml
1880494384 10115072 TMC3GP_NAR/kN203NAx01t01.db
4082470216 2147358156 GDB_NAR/AJ031_v36a.gdb
4196103061 782338350 GDB2_NAR/AJ031_v36a.gd2
1740790186 11290519 PIT_NAR/AJ031a.PIT
3284589262 2147379200 LIT3GP_NAR/AJ031Pa_L1.db
2193624690 2147377152 LIT3GP2_NAR/AJ031Pa_L2.db
656658641 2147389440 LIT3GP3_NAR/AJ031Pa_L3.db
681316134 1128742912 LIT3GP4_NAR/AJ031Pa_L4.db
2101749683 625029120 SDS3GP_NAR/SDS_Data.iso
2313134060 567130288 CTYS3TC_NAR/3PN203NA20343P1597a.4_4.ATLAS
3152140788 2097143696 TER_NAR/86_DTM_3G_NT_NAR.4_4.0.ATLAS
1545938481 2097149808 TER2_NAR/86_DTM_3G_NT_NAR.4_4.1.ATLAS
3419416047 1202786576 TER3_NAR/86_DTM_3G_NT_NAR.4_4.2.ATLAS
1205326302 2097141456 PSD_NAR/APN203NA20343P1595a.5_1.0.ATLAS
1946246159 684799712 PSD2_NAR/APN203NA20343P1595a.5_1.1.ATLAS

A prototype Unix shell script to prepare this list of file size and checksum data from an existing
release SD card is presented below:

#!/bin/sh
# shell functions:
getpktname(){
sed -n 's/^PacketName = "//p' ${MMIVER}/metainfo2.txt | sed 's/"^M//'
}

26 Feb 2023
46

getpkgfilelist(){
sed -n 's/^filedef=//p' ../$PKGFILE | sed 's/^M//' | sed 's/_ECE//'
}
getconffsect(){
sed -n '/\[file\]/,$p' ${pfname}/${pfname}.conf
}
# Main:
case "$#" in
"0") MMIVER="MMI3GP" ;;
"1") MMIVER="$1"
case "$MMIVER" in
"MMI3G" | "MMI3GP") true ;;
*) echo "Usage: $(basename $0) [MMI3G | MMI3GP]"
exit 1 ;;
esac ;;
*) echo "Usage: $(basename $0) [MMI3G | MMI3GP]"
exit 1 ;;
esac
RELNAME="$(getpktname)"
echo "# cksum data for release: $RELNAME"
PKGFILE=pkgdb/${RELNAME}.pkg
cd pkgdb
for pfname in $(getpkgfilelist); do
if [ -d ${pfname} ]; then
dbfname=$(getconffsect | sed -n 's/^name=//p' | sed 's/^M//')
cksum ${pfname}/$dbfname
fi
done

As above, the ‘^M’ characters in the script are literal control-M characters, as found in MS-DOS
text files. Output of the script is expected to be captured in a plain-text file by re-directing
standard out for use in the QNX shell script presented below:

#!/bin/ksh
PKGDATA=${SDLIB}/${MUVER}-nar6240-cksums.txt
getfield(){
sed -n 's/^\([^[:blank:]]*\)[[:blank:]]*\([^[:blank:]]*\)[[:blank:]]*\
\([^[:blank:]]*\)/\'$1'/p'
}
if [ -f "$PKGDATA" ]; then
cd /mnt/nav/db/pkgdb
sed '/^#/d' $PKGDATA | while read xrec; do
dbcname="$(echo $xrec | getfield 3)"
dbcsize="$(echo $xrec | getfield 2)"
dbccsum="$(echo $xrec | getfield 1)"
tvar1="$(cksum $dbcname)"
dbcsize2="$(echo $tvar1 | getfield 2)"
if [ "$dbcsize2" = "$dbcsize" ]; then
dbccsum2="$(echo $tvar1 | getfield 1)"
if [ "$dbccsum2" = "$dbccsum" ]; then
echo "OK: $dbcname"
else
echo "FAILED cksum: $dbcname : $dbccsum : $dbccsum2"

26 Feb 2023
47

fi
else
echo "FAILED size: $dbcname : $dbcsize : $dbcsize2"
fi
done
else
echo "ERROR: Cannot find cksum datafile $PKGDATA on SD card."
fi

Given that the time to compute the CRC32 checksum value with cksum is not insignificant for
very large (2 GB) database component files, we suggest this method be used only when a
navigation database fails to initialize properly after a successful nav database update. Also, the
run time of the script presented above will likely exceed the normal power time-out of the MMI
system; hence, be prepared to run this SD script with the ignition ON (engine OFF).

Note also that MMI3G (HNav) systems do not have the QNX executable binary file for the sed
command installed in directory /mnt/ifs-root/usr/bin. The script may be used on MMI3G
(HNav) systems with the HN+ QNX sed binary copied to the bin directory of the SD card.

26 Feb 2023
48

APPENDIX E

E.1 8R0906961FE HN+_US_AU3G_K0942_6 Manifest Summary

Device Name Vendor Version Description

AH6 NAR Harman/Becker AS 300100 Cinterion AH6A-US 3G modem

AMPLCPKO LEAR 30 B&O Amplifier, DSP Application


p/n 8T1035223A

AMP_LC_P LEAR various B&O Amplifier, DSP Application


p/n 8T0035223AL, -AN

ARU9438 Harman/Becker AS various RU (radio unit)

ARU9469 Harman/Becker AS various RU (radio unit)

ARU9471 Harman/Becker AS various RU (radio unit) ***

AudiSupportedFscs HarmanBecker 7 Support FCSs

BO_Q7 ASK Industries Gmbh 80/110 B&O Premium Sound

BoseG3_Q7 Bose Automotive GmbH various Bose Amplifier 6000NXTV2

CombiStyles HarmanBecker 12 CombiStyles NAR (v12)

DU9466 Harman/Becker AS 98 DU7 High (display unit)

DUA130 Harman/Becker AS 104 DU7 High (display unit)

DVD Harman/Becker AS various FJ-TEN DV-05 FEAT2

DVD Harman/Becker AS 1319680 FTEN-DV04FT1

GEMMI HarmanBecker 8025 Google Earth MMI

IDC_APN ALPINE 140 IDC_APN ?

IDC_UDF Panasonic 0490 MP3 CD-Changer

IT Harman/Becker AS 2300 Internal Telephone, NAD module

KBD_FB8 Preh GmbH 12/30 KBD_FB8 ?

MU9498 HarmanBecker various Main Unit (9498, HW61)

MapStyles HarmanBecker 9120 MapStyles NAR (v06)

MuGPS Harman/Becker AS various GPS Chip Firmware

MuINIC Harman/Becker AS 17892131 INIC MainUnit

26 Feb 2023
49

MuIOC HarmanBecker various MainUnit IO controller

MuIOC+ HarmanBecker n/a MainUnit IO controller

MuTnrRef Audi 528 Spare Part Number List

TMCConfig HarmanBecker 16 TMCConfig

TVHybrid Hirschmann various Hybrid TV-DVB p/n 4F0919129D

Telit Harman/Becker AS 802540002 Telit 3G UMTS NAR modem

sss HarmanBecker 9411-NAR-18 Speech - Tts


0-20140612

MUConsistency HarmanBecker 1041 MU Consistency

26 Feb 2023
50

APPENDIX F

F.1 User Defined Navigation Database Update Device Selection Screens

26 Feb 2023
51

26 Feb 2023
52

26 Feb 2023
53

APPENDIX G

G.1 Reference - MMI 3GP NAR 6.24.0 /mnt/nav/db File Size List

============================================
Size (b) File name
--------------------------------------------
206 DBInfo.txt
5 DBInfo.txt.SWDL.compatibility.txt
15 DBInfo.txt.SWDL.version.txt
233 config.nfm
5 config.nfm.SWDL.compatibility.txt
15 config.nfm.SWDL.version.txt

5 pkgdb/CTYS3TC_NAR.SWDL.compatibility.txt
15 pkgdb/CTYS3TC_NAR.SWDL.version.txt
5 pkgdb/GDB2_NAR.SWDL.compatibility.txt
15 pkgdb/GDB2_NAR.SWDL.version.txt
5 pkgdb/GDB_NAR.SWDL.compatibility.txt
15 pkgdb/GDB_NAR.SWDL.version.txt
5 pkgdb/LABEL_NAR.SWDL.compatibility.txt
15 pkgdb/LABEL_NAR.SWDL.version.txt
5 pkgdb/LIT3GP2_NAR.SWDL.compatibility.txt
15 pkgdb/LIT3GP2_NAR.SWDL.version.txt
5 pkgdb/LIT3GP3_NAR.SWDL.compatibility.txt
15 pkgdb/LIT3GP3_NAR.SWDL.version.txt
5 pkgdb/LIT3GP4_NAR.SWDL.compatibility.txt
15 pkgdb/LIT3GP4_NAR.SWDL.version.txt
5 pkgdb/LIT3GP5_NAR.SWDL.compatibility.txt
15 pkgdb/LIT3GP5_NAR.SWDL.version.txt
5 pkgdb/LIT3GP_NAR.SWDL.compatibility.txt
15 pkgdb/LIT3GP_NAR.SWDL.version.txt
2063 pkgdb/MMI3GP_NAR_Hi_R_6_24_0.pkg
5 pkgdb/MMI3GP_NAR_Hi_R_6_24_0.pkg.SWDL.compatibility.txt
15 pkgdb/MMI3GP_NAR_Hi_R_6_24_0.pkg.SWDL.version.txt
128 pkgdb/MMI3GP_NAR_Hi_R_6_24_0.pkg.sig
5 pkgdb/MMI3GP_NAR_Hi_R_6_24_0.pkg.sig.SWDL.compatibility.txt
15 pkgdb/MMI3GP_NAR_Hi_R_6_24_0.pkg.sig.SWDL.version.txt
5 pkgdb/PIT_NAR.SWDL.compatibility.txt
15 pkgdb/PIT_NAR.SWDL.version.txt
5 pkgdb/PSD2_NAR.SWDL.compatibility.txt
15 pkgdb/PSD2_NAR.SWDL.version.txt
5 pkgdb/PSD_NAR.SWDL.compatibility.txt
15 pkgdb/PSD_NAR.SWDL.version.txt
5 pkgdb/SDS3GP_NAR.SWDL.compatibility.txt
15 pkgdb/SDS3GP_NAR.SWDL.version.txt
5 pkgdb/TER2_NAR.SWDL.compatibility.txt
15 pkgdb/TER2_NAR.SWDL.version.txt
5 pkgdb/TER3_NAR.SWDL.compatibility.txt
15 pkgdb/TER3_NAR.SWDL.version.txt
5 pkgdb/TER_NAR.SWDL.compatibility.txt
15 pkgdb/TER_NAR.SWDL.version.txt

26 Feb 2023
54

5 pkgdb/TMC3GP_NAR.SWDL.compatibility.txt
15 pkgdb/TMC3GP_NAR.SWDL.version.txt
5 pkgdb/TMC_NAR.SWDL.compatibility.txt
15 pkgdb/TMC_NAR.SWDL.version.txt
5 pkgdb/XAC2_NAR.SWDL.compatibility.txt
15 pkgdb/XAC2_NAR.SWDL.version.txt
5 pkgdb/XAC_NAR.SWDL.compatibility.txt
15 pkgdb/XAC_NAR.SWDL.version.txt

567130288 pkgdb/CTYS3TC_NAR/3PN203NA20343P1597a.4_4.ATLAS
503 pkgdb/CTYS3TC_NAR/CTYS3TC_NAR.conf

2147358156 pkgdb/GDB_NAR/AJ031_v36a.gdb
481 pkgdb/GDB_NAR/GDB_NAR.conf

782338350 pkgdb/GDB2_NAR/AJ031_v36a.gd2
481 pkgdb/GDB2_NAR/GDB2_NAR.conf

473 pkgdb/LABEL_NAR/LABEL_NAR.conf
2048 pkgdb/LABEL_NAR/Label.DB

2147379200 pkgdb/LIT3GP_NAR/AJ031Pa_L1.db
486 pkgdb/LIT3GP_NAR/LIT3GP_NAR.conf

2147377152 pkgdb/LIT3GP2_NAR/AJ031Pa_L2.db
487 pkgdb/LIT3GP2_NAR/LIT3GP2_NAR.conf

2147389440 pkgdb/LIT3GP3_NAR/AJ031Pa_L3.db
487 pkgdb/LIT3GP3_NAR/LIT3GP3_NAR.conf

1128742912 pkgdb/LIT3GP4_NAR/AJ031Pa_L4.db
487 pkgdb/LIT3GP4_NAR/LIT3GP4_NAR.conf

1783846912 pkgdb/LIT3GP5_NAR/AJ031Pa_L5.db
486 pkgdb/LIT3GP5_NAR/LIT3GP5_NAR.conf

11290519 pkgdb/PIT_NAR/AJ031a.PIT
475 pkgdb/PIT_NAR/PIT_NAR.conf

2097141456 pkgdb/PSD_NAR/APN203NA20343P1595a.5_1.0.ATLAS
498 pkgdb/PSD_NAR/PSD_NAR.conf

684799712 pkgdb/PSD2_NAR/APN203NA20343P1595a.5_1.1.ATLAS
498 pkgdb/PSD2_NAR/PSD2_NAR.conf

481 pkgdb/SDS3GP_NAR/SDS3GP_NAR.conf
625029120 pkgdb/SDS3GP_NAR/SDS_Data.iso

2097143696 pkgdb/TER_NAR/86_DTM_3G_NT_NAR.4_4.0.ATLAS
494 pkgdb/TER_NAR/TER_NAR.conf

2097149808 pkgdb/TER2_NAR/86_DTM_3G_NT_NAR.4_4.1.ATLAS
495 pkgdb/TER2_NAR/TER2_NAR.conf

26 Feb 2023
55

1202786576 pkgdb/TER3_NAR/86_DTM_3G_NT_NAR.4_4.2.ATLAS
495 pkgdb/TER3_NAR/TER3_NAR.conf

487 pkgdb/TMC3GP_NAR/TMC3GP_NAR.conf
3307 pkgdb/TMC3GP_NAR/info.xml
10115072 pkgdb/TMC3GP_NAR/kN203NAx01t01.db

479 pkgdb/TMC_NAR/TMC_NAR.conf
6526976 pkgdb/TMC_NAR/kN123NAx08T01.db

482 pkgdb/XAC_NAR/XAC_NAR.conf
2141927424 pkgdb/XAC_NAR/kN203NAx01_0.db

482 pkgdb/XAC2_NAR/XAC2_NAR.conf
837376000 pkgdb/XAC2_NAR/kN203NAx01_1.db

G.2 Reference - /efs-persist/navi/db/acios_db.ini File

# This file has been generated by the LVM (epoche 46)

ANY: /mnt/nav/db/pkgdb/PSD_NAR/APN203NA20343P1595a.5_1.0.ATLAS
ANY: /mnt/nav/db/pkgdb/TER3_NAR/86_DTM_3G_NT_NAR.4_4.2.ATLAS
ANY: /mnt/nav/db/pkgdb/GDB2_NAR/AJ031_v36a.gd2
ANY: /mnt/nav/db/pkgdb/PIT_NAR/AJ031a.PIT
ANY: /mnt/nav/db/pkgdb/TER_NAR/86_DTM_3G_NT_NAR.4_4.0.ATLAS
ANY: /mnt/nav/db/pkgdb/GDB_NAR/AJ031_v36a.gdb
ANY: /mnt/nav/db/pkgdb/LIT3GP_NAR/AJ031Pa_L1.db
ANY: /mnt/nav/db/pkgdb/XAC2_NAR/kN203NAx01_1.db
ANY: /mnt/nav/db/pkgdb/TMC3GP_NAR/kN203NAx01t01.db
ANY: /mnt/nav/db/pkgdb/PSD2_NAR/APN203NA20343P1595a.5_1.1.ATLAS
ANY: /mnt/nav/db/pkgdb/LIT3GP2_NAR/AJ031Pa_L2.db
#SDS: /mnt/nav/db/pkgdb/SDS3GP_NAR/SDS_Data.iso
#MNT(SDS): /mnt/nav/db/pkgdb/SDS3GP_NAR/SDS_Data.iso
ANY: /mnt/nav/db/pkgdb/CTYS3TC_NAR/3PN203NA20343P1597a.4_4.ATLAS
ANY: /mnt/nav/db/pkgdb/LIT3GP4_NAR/AJ031Pa_L4.db
ANY: /mnt/nav/db/pkgdb/LIT3GP3_NAR/AJ031Pa_L3.db
ANY: /mnt/nav/db/pkgdb/XAC_NAR/kN203NAx01_0.db
ANY: /mnt/nav/db/pkgdb/LABEL_NAR/Label.DB
ANY: /mnt/nav/db/pkgdb/TER2_NAR/86_DTM_3G_NT_NAR.4_4.1.ATLAS

26 Feb 2023
56

APPENDIX H

H.1 Notes on VAG Module Adaptation Using Xtool VAG401 Diagnostic Tool

With the VAG401 attached to the OBDII port and the ignition ON (engine OFF), open Module 5F:
Diagnosis systems >> Electrical system 2 >> 5f - Message options

After the module information is displayed, press [ENTER] to return to the function menu:

5f - Message options
===========================
>01-Control Unit Info
02-Read Fault Codes
05-Clear Fault Codes
08-Data block Measurement
03-Test actuator
04-Basic settings
10-Adaptation
07-Code Module
11-Code Module II
16-Access permission
15-Readiness

Use the arrow UP/DOWN keys to move the cursor (>) to “10-Adaptation” and press [ENTER] to
open the adaptation channel number input screen:

10-Adaptation
===========================

Input Channel Number (0~255):

----------------------------
000

Example 1 -- Enable Green Engineering Menu using Adaptation Channel 6:

Use the UP/DOWN arrow keys to change the number at the current cursor position [0-9] and the
LEFT/RIGHT arrow keys to move the cursor to another digit position:

10-Adaptation
===========================

Input Channel Number (0~255):

----------------------------

26 Feb 2023
57

006

With the correct channel number displayed (e.g., 006), press [ENTER] key to read the adaptation
channel:

Channel Number:006
===========================
>Matched data 00000
00000.00

When adaptation channel 6 value is ‘0’, the Green Engineering Menu is disabled. Press
[ENTER] key to proceed to adaptation value input:

10-Adaptation
===========================

Input matched data:

----------------------------
00000

Use the UP/DOWN arrow keys to change the number at the current cursor position [0-9] and the
LEFT/RIGHT arrow keys to move the cursor to another digit position to set the right-most digit
to ‘1’:

10-Adaptation
===========================

Input matched data:

----------------------------
00001

With the correct adaptation value entered (1), press [ENTER] key to review the adaptation
channel information:

Channel Number:006
===========================
>Matched data 00001
00000.00

Press the [ENTER] key to proceed:

26 Feb 2023
58

10-Adaptation
===========================

Save matched data?

Press the [ENTER] key to save the new adaptation value to the control module. VAG401 will
report success with the message:

10-Adaptation
===========================

Adaption_success!

Press the [ESCAPE] key to return to the module function menu. The GEM can be accessed
directly without restarting the MMI.

Example 2 -- Clearing DTC 03267 using Adaptation Channel 15:

Use the UP/DOWN arrow keys to change the number at the current cursor position [0-9] and the
LEFT/RIGHT arrow keys to move the cursor to another digit position:

10-Adaptation
===========================

Input Channel Number (0~255):

----------------------------
015

With the correct channel number displayed (e.g., 015), press [ENTER] key to read the adaptation
channel:

Channel Number:015
===========================
>Matched data 00000
22657.00

For clearing DTC 03267, record the highlighted value below the first “Matched data” line (e.g.,
22657) and use this value to determine the result of: <channel 15 value> XOR 51666. Press
[ENTER] key to proceed to adaptation value input:

26 Feb 2023
59

10-Adaptation
===========================

Input matched data:

----------------------------
00000

Use the UP/DOWN arrow keys to change the number at the current cursor position [0-9] and the
LEFT/RIGHT arrow keys to move the cursor to another digit position:

10-Adaptation
===========================

Input matched data:

----------------------------
37203

With the correct adaptation value entered (e.g., 37203), press [ENTER] key to review the
adaptation channel information:

Channel Number:015
===========================
>Matched data 37203
22657.00

Press the [ENTER] key to proceed:

10-Adaptation
===========================

Save matched data?

Press the [ENTER] key to save the new adaptation value to the module. VAG401 will report
success with the message:

10-Adaptation
===========================

Adaption_success!

Press the [ESCAPE] key to return to the module function menu to clear and re-read fault codes.

26 Feb 2023
60

APPENDIX J

J.1 Decrypted Activator Script copie_scr.sh

#!/bin/ksh
sdcard=`ls /mnt|grep sdcard.*t`
dstPath=/mnt/$sdcard
runtstamp=`date +"%m/%d/%Y ""%T"`
mount -uw $dstPath
cd $dstPath
XX=`ls *.fsc | sed -n 1p`
if [ "$XX" != "" ]; then
FullFile=$dstPath/$XX
FSC=`echo $XX | sed -n -e 's/^.*\(_\)/\2/p'`
Token=`echo $XX | sed -n -e 's/\(_\).*/\2/p'`
else
echo -ne "$runtstamp - The activation token is not found, please refer to the
instructions.\r\n" >> $dstPath/install.log
/bin/rm -f /tmp/copie_scr.sh
echo > /tmp/copie_scr.sh
exit 0
fi
mac=`ifconfig uap0 | /usr/bin/grep "address:" | sed -e 's/^.*address: //'`
if [ "$mac" == "" ]; then
echo -ne "$runtstamp - Failed to get mac-address, was the ignition switch on?
continue anyway\r\n" >> $dstPath/install.log
#/bin/rm -f /tmp/copie_scr.sh
#echo > /tmp/copie_scr.sh
#exit 0
fi
f1=`echo $mac | sed 's/\(.\{8\}\).*/\1/' | sed "s/[^0-9]//g"`
s2=`echo $mac | sed 's/.*\(........\)/\1/' | sed "s/[^0-9]//g"`
c3=`echo $(($f1+$s2+1984))`
if [ "$c3" != "$Token" ]
then
echo -ne "$runtstamp - The WLAN EEPROM token ($Token) is not valid for this MMI
($mac), but we know what we are dooing.\r\n" >> $dstPath/install.log
#/bin/rm -f /tmp/copie_scr.sh
#echo > /tmp/copie_scr.sh
#exit 0
fi
/bin/mount -uw /mnt/efs-system
if test -a /sbin/mme-becker.sh ; then
# check if second install
XX=`/usr/bin/grep acios_db.ini /sbin/mme-becker.sh`
if [ ! -z "$XX" ]
then
# already installed - uninstall first!
echo -ne "$runtstamp - The activation is already installed\r\n" >>
$dstPath/install.log
/bin/rm -f /tmp/copie_scr.sh
echo > /tmp/copie_scr.sh
exit 0

26 Feb 2023
61

fi
# backup mme-becker.sh for later uninstall
/bin/cp /sbin/mme-becker.sh /sbin/mme-becker.sh.pre-navdb.bak
# remove mme-becker launch line
/usr/bin/sed "/\/sbin\/mme-becker/ d" < /sbin/mme-becker.sh >
/sbin/mme-becker.sh.new
/bin/mv /sbin/mme-becker.sh.new /sbin/mme-becker.sh
cat << 'EOF' > /sbin/mme-becker.sh
#!/bin/ksh
if test -a /HBpersistence/DLinkReplacesPPP ; then
(while true
do
XX=`ifconfig uap0 2>/dev/null`
if [ ! -z "$XX" ]
then
while true
do
XX=`ifconfig uap0 | grep "alias"`
if [ ! "$XX" == "" ]
then
exit 0
fi
/usr/sbin/dhcp.client -a -i uap0 -m -u
sleep 1
done
fi
sleep 1
done) &
fi

(waitfor /mnt/lvm/acios_db.ini 180 && sleep 10 && slay vdev-logvolmgr) &

/sbin/mme-becker $@
EOF
chmod 777 /sbin/mme-becker.sh
else
# first install
/usr/bin/sed "s/\/mme-becker$/\/mme-becker.sh/" < /etc/mmelauncher.cfg >
/etc/mmelauncher.cfg.new
if ! test -a /etc/mmelauncher.cfg.orig ; then
# just keep original version - so just do this the first time
/bin/mv /etc/mmelauncher.cfg /etc/mmelauncher.cfg.pre-navdb.bak
fi
/bin/mv /etc/mmelauncher.cfg.new /etc/mmelauncher.cfg
cat << 'EOF' > /sbin/mme-becker.sh
#!/bin/ksh
if test -a /HBpersistence/DLinkReplacesPPP ; then
(while true
do
XX=`ifconfig uap0 2>/dev/null`
if [ ! -z "$XX" ]
then
while true
do
XX=`ifconfig uap0 | grep "alias"`

26 Feb 2023
62

if [ ! "$XX" == "" ]
then
exit 0
fi
/usr/sbin/dhcp.client -a -i uap0 -m -u
sleep 1
done
fi
sleep 1
done) &
fi

(waitfor /mnt/lvm/acios_db.ini 180 && sleep 10 && slay vdev-logvolmgr) &

/sbin/mme-becker $@
EOF
chmod 777 /sbin/mme-becker.sh
fi
mount -uw /mnt/efs-persist/
rm -R -f /mnt/efs-persist/FSC/*
cp $FullFile /mnt/efs-persist/FSC/$FSC
echo -ne "$runtstamp - Installation successful\r\n" >> $dstPath/install.log
slay -9 `pidin | grep -i 'navcore'`
/bin/rm -f /tmp/copie_scr.sh
echo > /tmp/copie_scr.sh

J.2 Updated Navigation Database Unblocker Patch Script

#!/bin/ksh
# Exit the script if patch installed previously
if test -n "$(grep 'acios_db.ini' /usr/bin/manage_cd.sh)"
then
echo; echo "[INFO] Found MMI3G NavUnblocker patch installed. Done."
else
mes=/mnt/efs-system
mount -uw $mes
# NavUnblocker patch not installed; look for old mme-becker patch to remove
if test -a ${mes}/sbin/mme-becker.sh
then
if test -n "$(grep 'acios_db.ini' ${mes}/sbin/mme-becker.sh)"
then
if test -a ${mes}/etc/mmelauncher.cfg.pre-navdb.bak
then
echo; echo "[ACTI] Removing old mme-becker activator patch."
mv -v ${mes}/etc/mmelauncher.cfg ${mes}/etc/mmelauncher.cfg-TMP
mv -v ${mes}/etc/mmelauncher.cfg.pre-navdb.bak ${mes}/etc/mmelauncer.cfg
rm -v ${mes}/etc/mmelauncher.cfg-TMP
rm -v ${mes}/sbin/mme-becker.sh
fi
fi
fi
# Patch /usr/bin/manage_cd.sh
echo; echo "[ACTI] Appending patch to /usr/bin/manage_cd.sh ..."
mv -v ${mes}/usr/bin/manage_cd.sh ${mes}/usr/bin/manage_cd.sh-ORIG

26 Feb 2023
63

cp -v ${mes}/usr/bin/manage_cd.sh-ORIG ${mes}/usr/bin/manage_cd.sh
echo '/usr/apps/bench/TimeLogger "Starting MMI3G NavUnblocker patch"' >> \
${mes}/usr/bin/manage_cd.sh
echo '(waitfor /mnt/lvm/acios_db.ini 180 && sleep 10 && slay vdev_logvolmgr) &' >> \
${mes}/usr/bin/manage_cd.sh
chmod 0777 ${mes}/usr/bin/manage_cd.sh
touch -r ${mes}/usr/bin/manage_cd.sh-ORIG ${mes}/usr/bin/manage_cd.sh

# Copy FSC and acios_db.ini files to SD card var dir:


echo; echo "[ACTI] Copy FSC and acios_db.ini files to $SDVAR"
cp -v /mnt/efs-persist/FSC/*.fsc ${SDVAR}/
cp -v /mnt/efs-persist/navi/db/acios_db.ini ${SDVAR}/
fi

J.3 Usage Text for QNX vdev-logvolmgr

vdev-logvolmgr - Logical Volume Manager

This is a virtual device driver for managing logical volumes and data carriers, as well as database
packages and definitions.

To allow debugging and usage, the LVM comes with a terminal to access LVM functions directly.
Starting the terminal won't start the LVM - you need another instance of the LVM to use the
terminal.

Options:
-v Increase verbosity level by one (max 5).

-t Start in LVM terminal mode.

-c Force the LVM to use cp instead of qkcp. Specify this option in case qkcp is not
available. Important: Copy progress information is not available without qkcp.

-b Bind packages strictly to file definitions that are on the same storage device. Use this
option to prevent that packages on storage devices with corrupt file definitions are
reported as 'GOOD', and prevent binding to other file definitions on other storage
devices.

-r Force remount of storage device if a config.nfm cannot be located and the storage
device is in read only mode. The LVM will remount the device to create a new
package database.

-l Force real pathnames in acios_db.ini - resolve links to directly accessible locations.


Use this when using acios_db.ini files previously generated by the LVM and the LVM
isn’t running while the generated acios_db.ini is used.

-L Specify fully qualified path to vdev-fsys-dbc. The default is the current working

26 Feb 2023
64

directory.

-m Redirect process stdout to multicore (/hbsystem/multicore/p)

-M Redirect process stdout to given path, e.g.:

-M /hbsystem/multicore/q

-h This option is not supported:


Enable high speed operation for compatible DVD devices. High speed mode will be
enabled during mounting and disabled during dismounting. At the moment, only
Fujitsu-Ten DV04 is supported (if mounted as */cd0*)

-k Automatically remove files that don't belong into the package database. Use this to
allow the LVM to automatically remove file definitions that have lost their .conf files
for whatever reason. This operation will be performed during a mount operation.
Additionally, file definitions with broken configuration files will also be removed.
Please keep in mind that the file will also be regarded as broken if the cipher key
doesn't match when using scrambled configuration files, so it is vital that this option is
not used with rewritable installation media such as USB sticks or SD cards without
write protection.

-U Override O_NONBLOCK in open modes and unblock console I/O after one second,
even if no data has arrived.

-H Skip header checks after copying a file to the package database. Do this when the file
system cannot garuantee cache coherency after Direct-IO operations.

-D When activating a package, put an acios_db.ini file into the root of the given storage
device. The file will be updated with every activation issued.

-A When activating a package, put an acios_db.ini file into the position specified by the
ACTIVATE PACKAGE command. This only works if the given location already exists and
is not implicitly created by the activation itself in the form of a symbolic link.

-R Force reclaim of space taken up by deleted files that were in use when a device is
being remounted.

-C Set directory for checkpoint files. Checkpoint files are stored at the given directory.
Make sure to specify the correct directory to prevent possible damage to other
directories - The directory will be destroyed after a successfull database activation.

The default for this value is /HBpersistence/lvm.checkpoints

-d Specify this parameter if you want to remove checkpoints in the checkpoint directory
from remaining installations that where never finished. This will occur after each
attempt to execute an ACTIVATE or DELETE PACKAGE command, as the LVM will

26 Feb 2023
65

assume that the installation has been completed and other checkpoint files are not
needed anymore.

-K Specify a cipher that will be used to decipher the configuration files. it is highly
recommended to set this option. It must be specified in hexadecimal without prefixes.
You may specify up to 40 bytes. It should differ between projects.

-p Specify a comma separated list of file definition types. Links to file definitions of the
given types will be put into the root directory of the storage device upon activation,
e.g.:

-p SDS,MAPSTYLE

The files will keep their original extension, but the name of the file will be that of its
type. Because of that, if multiple file definitions of the same type are activated, they
must have different extensions. It is therefore not recommended to use this for
multiple files.

-P Set a directory where the LVM can storage intermediate results from package checks.
These files are maintained by the LVM during runtime, and will be removed with the
file definitions. If the file definitions are not removed by the LVM, this directory may
accumulate files with a integrity_check* prefix. The user application should clear that
directory in that case. The files are also removed as soon as a storage device is
initialized. Alternatively, a non-existent directory or device may be specified.

-Q Execute quick check after each package installation. All file definitions belonging to
the package will be checked automatically according to the quick check information
stored in the file definition configuration.

-I Report INSTALLPKG progress information in percent instead of numbers of files


processed.

-n Set the size to be used when performing checks through the EXECUTE THOROUGH
CHECK command. If the value is smaller than the size of the file, the application can
repeat the test until all of the file has been checked. Use this to perform background
checks. The default value is 50000000. Set to 0xffffffff if all of the file should be
checked at once. Also see option -P for the checkpoints created by this function.

-z This option is not supported:


Invalidate file descriptors before removing file definitions. This is just a workaround
for applications that do not release the file descriptors during an update operation. Use
with caution, and validate on a per-project basis.

-a Put the names of the activated packages into the acios_db.ini.

-u Disable automatic acios_db.ini update after activation and deactivation.

-B Set alternate name for acios_db.ini files generated by the LVM. Do not specify a path

26 Feb 2023
66

here - just supply a file name.

-W Specify if packages ('p') or filedefs ('f') should be only loaded when they are
scrambled.

-i Prevent the installation of unscrambled packages.

-w Specify a list of storage device where automatic repair should take place. Only storage
devices specified here will be automatically repaired. Should only be specified if
option k is not specified.

-j Decompress files on the fly when installing a package.

-J Write compressed variant of file to acios_db.ini even if it has been instantiated to its
decompressed variant during runtime.

-g Automatic discard of orphaned file definitions. Will be attempted after each successful
package activation. This will also clear the checkpoint and file integrity check cache.
Following installations and file checking operations will start over.

-E Abort package installations on the first error encountered. Do not skip the file.

-Y Specify the maximum time for a read recovery. The recovery may take longer if the
underlying access operation takes too long.

-f Abort MOUNT operation on first IO-Error

Warning: The -h option is for testing purposes only.

Examples:
./vdev-logvolmgr -v -v -v -v -v Start LVM with highest verbosity level.
./vdev-logvolmgr -t Start LVM in terminal mode.
./vdev-logvolmgr -v -v -v -c Start LVM with medium verbosity and cp

There are no recommended settings, but the options d,C,K,l,r,b,n,k,Q,P should considered for
usage in a production environment.

LVM Location in the Systems


The LVM creates per default mount points for handled devices under /mnt/lvm. The
communication interface (console) is created at /dev/lvm, and is used for interaction with the
LVM. Database file locations are provided with the acios_db.ini IPC mechanism at
/dev/lvm/acios_db.ini.

LVM Message Format

26 Feb 2023
67

LVM messages consist of 7-bit ASCII characters, padded to 8-Bit. Extended character sets may be
used as long as they don't interfere with ASCII control codes, including CR, LF and NUL.
Messages coming from the LVM may be protected with a simple integrating checksum
mechanism:
checksum = 0
for each character in message
add ascii value of character to checksum modulo 256
next

The checksum delimiter ‘*’ will be included into the checksum. In this example, a message is
received by the user:
100 ABCDEF,*??
To confirm the checksum that is placed by the LVM into the positions marked by ??, the user
must calculate the checksum for the characters
100 ABCDEF,*
The checksum is given in uppercase hexadecimal notation without prefixes.

General Usage of the LVM


The LVM maintains a database of files for use by other applications on entities known in
LVM-lingo as 'Storage Devices'. A storage device can be any device that is accessible using
standard Filesystem functions, as long as it contains the structures needed by the LVM to actually
store and maintain the database. If the LVM encounters a storage device that is lacking these
structures, the LVM will try to initialize the storage device with the required settings. Data is
stored in the database in the form of “Definitions”. A definition contains information about the
files stored in the database, like their supposed size and checksums, and other user defined
information that the LVM will parse and present derived form - the checksum and size
information will be used by the LVM to verify that the file is in good shape.

Storage devices must be made accessible to the LVM by announcing their presence. Only then
the LVM will start to access the device. The announcement may be performed by sending a
MOUNT command to the LVM. See the command listing for details.

There are three main types of resources the LVM does handle:
1) Storage Devices
A storage devices is a device the LVM uses to store other resources
2) Packages
A package describes a list of file definitions that belong to each other logically. Users are
supposed to handle packages only - single file definitions are handled by the LVM
according to the specification inside the package definition.
3) Files

26 Feb 2023
68

A file is a user defined file that is described by a file definition. A file definition contains
additional information about a file that is normally not stored inside a file system, such as
checksums.

The LVM always tries to make packages complete. This is accomplished by trying to find valid
and working files that are referenced in the package description. Please note that the resolver
doesn't care if a file is on the same storage device as the packet definition. If the file is on the
same storage device, it will be preferred, but files from other storage devices may be used by the
package if no compatible and working file is found on the same storage device. Make sure to get
package details by using the DISPLAY PACKAGE command (details below) to check if all the files
that are currently referenced by the package are on the same storage device as the package.
Failing to do so may cause inoperability as soon as a storage device has been removed, leading to
an incomplete and inoperable package.

Option -b may be used to deactivate this kind of behavior. If the option is active, the LVM will
bind packages to file definitions on the same storage device the package is residing on.

Special Files Created by the LVM


/mnt/lvm/acios_db.ini (aka /dev/lvm/acios_db.ini)
This file is created dynamically and contains a list of the activated database files. Whenever a
packet is activated or deactivated, the content of the file changes. Normally, all files specified in
file definitions make it into this file in the following form:
ANY:<path to file>
One exception for this rule are .iso files, which are traditionally not included in the
acios_db.ini and are therefore made invisible by injecting them in the form of a comment:
#SDS:<path to file>
This provides an informal way to see which files are activated, even if there is no other IPC
mechanism to communicate a list of activated databases to the highlevel application. The SDS
tag stems from the assumption that all .iso files are SDS database files, which is not universally
correct.

/dev/lvm (aka /mnt/lvm/comif/console)


This is the console device of the LVM. The user can send commands into this device as specified
by the command summary in this use file.

/mnt/lvm/comif/sdh
This is the name of the solitary device handler, and other features that are used for debugging
and testing of the LVM. It provides a way to start an automatic installation of databases packages,
and also implements an automounter to automatically mount and use USB-Sticks, DVD-Media
and other sources to perform an installation.
THIS INTERFACE IS CURRENTLY NOT SUPPORTED.

26 Feb 2023
69

Commands Received Through /dev/lvm (Protocol Version 1.0.0):

MOUNT STORAGE DEVICE AS <storage name> FROM <device> TO <mountpoint>


[add_opt]
Create a new storage device handle named <storage name>, that is using the device specified at
<device> to create the mountpoint at <mountpoint>. Additional options may be passed to the
MOUNT command to modify the behavior of the command:
LINK - Only create a symbolic link from <device> to <mountpoint>. This should be used if the
device in question is already mounted. If LINK is NOT given, the LVM will always attempt to
mount the given device as if it contains a qnx4 file system.
READ - Treat the storage device as read only. This changes the behaviour of the LVM so that it
will try to remount devices as readable in case the user wants to install or copy something to a
storage device. If LINK is specified, nothing special will happen as soon as the mount command
is executed. The LVM will try to make sure it is able to write to the disk whenever a user
requests it, regardless of the LINK statement.
REPAIR - In case this option is specified, the LVM will attempt to remount read only storage
devices to repair file data bases. In case a the storage device isn't specified as RAW, remounting
will occur as soon as the LVM fails to load a config.nfm - in that case, the LVM will try to
generate a new package database on the storage device using a built-in default config.nfm. The
-r option may be specified on the command line to force this behavior even if the caller doesn't
specify this option. File system checks will not occur on devices that have been mounted as read
only.
RAW - By passing this option, the LVM will treat the storage device as a device that contains user
defined data only, and will not search for a package database when mounting it.
The outcome is undefined if other parameters are given.

DISMOUNT STORAGE DEVICE <storage name>


Dismounts the storage device specified by <storage name>. The caller should only attempt to
dismount storage devices that have been mounted before.

DISPLAY RESOURCES
Shows a list of resources currently maintained by the LVM. The list sent as a type 30x response
(see below), and holds the following comma separated data
(in order of appearance):
name of the resource
type of the resource (LVM_TPE_PACKAGE, LVM_TPE_STORAGE, LVM_TPE_FILEDEF)
residence of the resource (storage device it's residing on)
location of the resource (current system path)
version information

26 Feb 2023
70

condition (2 = GOOD, 3 = BAD, etc.. tbd.)


size of the resource
free space in the resource (set to zero for everything but LVM_TPE_STORAGE).
file type of the resource (as specified in the file definition)
user flags (TODO)
copy protection flag (TODO)

INSTALL PACKAGE <package name> [FROM STORAGE DEVICE <storage source>] TO


STORAGE DEVICE <storage target>
Installs a package that is residing on <storage source> to <storage target>. If the optional
source storage device is not given, the first package that is matching the name <package name>
will be used to attempt the installation. It’s recommended to always specify the source storage
device.
Note: The LVM currently does not check for storage space constrains. Please make sure that there
is enough space to install the requested file definitions. The information provided by the
DISPLAY RESOURCES and DISPLAY PACKAGES commands may be used to determine if there is
enough space to install a package.

REPLACE PACKAGE <package name> ON STORAGE DEVICE <storage target> WITH


PACKAGE <new package name> ON STORAGE DEVICE <storage source>
Installs a new package, but deletes another package in the process. Use this function if you plan
to do an incremental update and there is a package on the storage device that may share some file
definitions with the new package you're planning to install. Files that belong to the old package
only will be deleted, files belonging to both the old and the new package will remain on the
storage device. Additionally, all files of the new package will be installed in case they are not yet
on the specified target storage device.
Note: Additional notes of the INSTALL command also apply here.

REMOVE PACKAGE <package name> FROM <storage name>


Removes a package from a storage device. Also all file definitions that are referenced by the
package will be removed from the same storage device, as long as they are not currently
referenced by another package.

ACTIVATE PACKAGE <pkgname> ON STORAGE DEVICE <storage name> AT <activation


point>
Activate package <pkgname> residing on the storage device <storage name> into the device
tree. A package can only be activated once. The result of attempting to activate a package more
than once is not defined.

DISCARD ORPHANED FILE DEFINITIONS ON STORAGE DEVICE <storage name>

26 Feb 2023
71

Removes file definitions that are not referenced by a package from a storage device. May be
used to clean up a storage device with broken packet definitions.

INITIALISE STORAGE DEVICE <storage name>


Recreates structures on the storage device. ALL data on the storage device, starting from the path
given in the mount command, will be deleted.

EXECUTE QUICK CHECK OF PACKAGE <package name> ON STORAGE DEVICE <storage


name>
Checks the given package by executing a quick check. The file definition in the must contain
quick check information.

EXECUTE THOROUGH CHECK OF PACKAGE <package name> ON STORAGE DEVICE


<storage name>
Checks the given package by executing a thorough check. The file definition in the must contain
either a crc or md5 field. Md5 is preferred, while CRC32 is for testing only. Please consult the
description for Options -n and -P regarding the thorough check, which may be used as a
background check by specifying chunks that should be checked. As soon as all chunks are
checked, the LVM will decide if the file is OK for use or not.

DELETE FILE DEFINITION <fdef name> FROM STORAGE DEVICE <storage name>
Removes a file definition regardless of its state, as long the storage device specified is fully
operable. Use this to delete individual file definitions in case they are not referenced by a
package on the same storage device and they take up space needed by a new installation.

DISPLAY PACKAGE <package name> [ON STORAGE DEVICE <storage name>]


Shows information about a package. If no <storage name> is given, the first packet matching
the name will be used to display the information. The command outputs information about the
referenced file definitions and version information of the package.
The Data sent is in a KEY=VALUE format. Multiple sending of a KEY with the same name indicates
that there is more than one item of type KEY in the package.
Examples:
301 SEQ00,FILEDEF=XAC_ECE_12_0_2,/fs/cd0/pkgdb/XAC_ECE_12_0_2/XAC.DB,CD0
301 SEQ01,FILEDEF=GDB_ECE_12_0_2,/fs/cd0/pkgdb/GDB_ECE_12_0_2/GDB.GDB,CD0
301 SEQ02,FILEDEF=LIT_ECE_12_0_2,/fs/cd0/pkgdb/LIT_ECE_12_0_2/LIT.DB,CD0
301 SEQ03,FILEDEF=SPEECH_2000_12_0_2,/fs/cd0/pkgdb/SPEECH21202/SPEECH.DB,CD0
FILEDEF keys contain the name of the File Definition as referenced by the package, and
if a file definition with the required name exists in the system and is known to the LVM,
the path to the file(s) in the file definition, as well as the name of the storage device the
file is on. If the file definitions hasn't been found in the system, the fields will contain the
string ##INVALID##.
301 SEQ04, MARKET=ECE

26 Feb 2023
72

MARKET informs the client about the market the package is intended for.
301 SEQ05, VERSION=12.3.2
VERSION informs the user about the version of the package.
301 SEQ05, CUSTOMER=ExampleCustomer
CUSTOMER informs the user about the customer the package is intended for.
301 SEQ06, TYPE=base
TYPE informs the user about the type of the package.
301 SEQ07, SET=daisychain,2,1,<NEXTPACKAGENAME>
SET informs the user about the type of set, if there is any.

SET KEY <keyname> TO VALUE <value>


Set a configuration key to the given value.

+++ABORT
Abort the current operation. This command must be sent as a complete string, or abortion will
not occur. The operation may be finished before the abortion comes into effect.

Messages Sent by the LVM


The LVM generates messages (terminated by LF) if it receives messages. There are certain types
of messages, prefixed by a three digit number and a whitespace. The data following the
whitespace must be interpreted depending on the message prefix.

200 RESULT <errcode>,<errcodetxt>,<errreason>,<errdesc>


!!NOTE: The error codes have been changed. Please refer to the error code in the supplemental
information!!
The result of a user-triggered operation; errcode can be 1 or 0 depending on if an error occurred
or not. Field errcodetxt is either ERROR or OK. Field errreason is a decimal value assuming
the value of an extended error code, and gives the caller a possible explanation as to why the
error occurred:
0 No error occurred, or the error condition is not known
1 Not enough memory to perform the requested operation
2 There is an error in the command syntax
3 Internal failure
4 A resource referenced by the command does not exist.
5 The resource already exists
Field errdesc assumes any text, and may contain more detailed error information for human
users. It’s not intended to be checked by a machine.

201 <event>
This is an asynchronious event and informs the user about a changing condition in response to a
command. At the moment, there is only one event defined:

26 Feb 2023
73

201 CONFIGURATION CHANGED,<info>


This happens whenever the internal configuration, dependencies or conditions change. After
receiving that message, the users should re-read the resource list by sending a DISPLAY
RESOURCE command, and, if interested in packet relationships, a DISPLAY PACKAGE command
for every package the client is interested in.
This message will also be generated if a user on another LVM connection caused a configuration
change. In that case, the <info> field will be filled and set to REMOTE. Please note that the
comma will NOT appear in the message if there is no additional info to be sent.

203 START PROCESS <process>, STEPS <numsteps>


A new process named <process> has been started. The process is going to need <numsteps> to
complete. Processes are run nested, meaning that one process may result in another process being
spawned.

204 END PROCESS <process>


A process named <process> has been completed.

202 PROCESS PROGRESS <process>,<curstep> of <steps>


Status update on a currently running process named <process>. Step <curstep> of <steps> is
currently being processed.

205 LVM PROTOCOL VERSION <version>


Always sent after establishing a connection the LVM, this message informs the user about the
protocol specification currently used by the client. The version is transferred in the form of
MA.MI.CH, where MA is the major number of the protocol specification, MI is the minor version
and CH is a change index in the protocol handling that should not affect the compatibility
between two components. Added functions or added return data justifies a change in the MI
field, changes that affect the order of return data or removal/renaming of instructions requires a
change in the MA field. Additional data should be ignored as long as the MA field doesn't change.

206 <topic>
This message may be sent by the LVM to indicate the topic of the upcoming process, and may be
used by the user to find out what exactly is currently being handled by the LVM.

210 <percent>,<bytetotal>,<bytedone>,<timetotal>,<timedone>,<datarate>
This message may be sent by the LVM during an INSTALL operation. It indicates the overall
progress in percent with regard to the file size of all the file definitions being transferred. If a
value is not supported by the current LVM, there will be no characters between the commas.
This message may also be generated during REPLACE operations, as REPLACE operations will
invoke an INSTALL operation internally.

26 Feb 2023
74

3XX SEQ<seqno>,<anydata>
This message is sent in response to DISPLAY commands. Field anydata contains command
specific data. The caller is supposed to know the format of the response. Data is transferred in a
comma separated list, or in a KEY=VALUE fashion, depending on the command. The <seqno>
assumes the value of the current line in the output stream. This type of message is only sent if a
process sent a request command before. X may take a value from 00-99.

26 Feb 2023
75

INSTALLATION CHECKLIST: NAR Navigation Database Update 3GP/3G+

[ ] NAR MMI 3G+ software updated to K0942_6.


[ ] Nav update SD prepared on 32 GB SDHC formatted as FAT32.
[ ] (optional) Activator script SD prepared on SD formatted as FAT32.
[ ] Battery charged, battery maintainer connected.
[ ] All media removed from MMI; MMI ON; all functions loaded; GPS time set.
[ ] Enable Green Engineering Menu with VAG diag tool (VCDS, VAG401, Carista, etc.).
[ ] Enable User defined software update in GEM: [CAR]+[MENU]
[ ] Start REM: [CAR]+[BACK]
[ ] Blank SD card in MMI SD Slot 1; Nav update SD card in MMI SD Slot 2.
[ ] REM: [Update] >> SD2 >> NAR 6.x.y (MMI3GP) >> User defined
[ ] Scroll and select: AUDI_MMI3G_NAR
[ ] Select Application for applicable sub-entries & return to top device list.
[ ] Select if status is ?: MapStyles >> Application >> [BACK]
[ ] Scroll and select: Start update >> Start (record start time):
[ ] Updated: Database - LABEL
[ ] Updated: Database - [ ] XAC; [ ] XAC2
[ ] Updated: Database - TMC3GP
[ ] Updated: Database - [ ] GDB; [ ] GDB2
[ ] Updated: Database - PIT
[ ] Updated: Database - [ ] LIT3GP; [ ] LIT3GP2; [ ] LIT3GP3; [ ] LIT3GP4
[ ] Updated: Database - SDS3GP
[ ] Updated: Database - CTYS3TC
[ ] Updated: Database - [ ] TER; [ ] TER2; [ ] TER3
[ ] Updated: Database - [ ] PSD; [ ] PSD2
[ ] Updated: Database - config.nfm
[ ] Updated: Database - DBInfo.txt
[ ] Updated: Database - PKG
[ ] Updated: Database - SIG
[ ] (optional) Updated: MapStyles (if selected above for install)
[ ] Device Summary: confirm all OK; if any NOK, check SD card & repeat update.
[ ] Scroll and select: Continue >> Abort documentation
[ ] Confirm all MMI functions start properly after last reboot.
[ ] Nav database unblocking script (only if navigation data blocked).
[ ] DTC 03276 cleared with VAG diag tool; [ ] DTC 03623 cleared with GEM/script.
[ ] Update complete !

26 Feb 2023

You might also like