Audi MHI2 RVC fullscreen patch: Difference between revisions
(14 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
[[File:Audi MMI MHI2 RVC full screen mod.jpg|thumb|alt=Audi MHI2 RVC fullscreen hack|Audi MHI2 RVC fullscreen hack]] | [[File:Audi MMI MHI2 RVC full screen mod.jpg|thumb|alt=Audi MHI2 RVC fullscreen hack|Audi MHI2 RVC fullscreen hack]] | ||
Audi MMI MHI2 is set up in such a way that rear view camera is shown in split view. Camera stream is shown on the left side of the display, when the right side is occupied by parking sensors visualisation or AreaView image in equipped cars. | Audi MMI MHI2 is set up in such a way that rear view camera is shown in split screen view. Camera stream is shown on the left side of the display, when the right side is occupied by parking sensors visualisation or AreaView image in equipped cars. | ||
If your car is not equipped with AreaView (you have for example Audi A3 8V where AreaView was not available), you are stuck with RVC image not on fullscreen. Luckily there's a way around it! | If your car is not equipped with AreaView (you have for example Audi A3 8V where AreaView was not available), you are stuck with RVC image not on fullscreen. | ||
Luckily there's a way around it! And here's the repo with needed assets: https://github.com/mrfixpl/Audi-MHI2-RVC-fullscreen | |||
We need to change 3 things: | We need to change 3 things: | ||
* how the unit is processing video stream (crop and position) | * how the unit is processing video stream (crop and position) | ||
* OPS | * OPS textures opacity | ||
* OPS vehicle and radar lines textures inside <code>.kzb</code> container. | * OPS vehicle and radar lines textures inside <code>.kzb</code> container. | ||
== Access MHI2 main unit file system == | == Access MHI2 main unit file system == | ||
=== Connection === | === Connection === | ||
You can do this via WLAN, USB-to-Ethernet | You can do this via WLAN, USB-to-Ethernet [[D-Link DUB-E100]] adapter, or via TX/RX connection from QuadLock. | ||
=== Protocol === | === Protocol === | ||
Line 18: | Line 20: | ||
=== Root user password === | === Root user password === | ||
Root user | If you have installed the latest firmware for Audi A3 (<code>MHI2_ER_AU37X_P5089</code>), the root password is <code>4SapmKoq</code> | ||
Root user passwords for other firmwares and MU app versions can be found in the [https://github.com/Mr-MIBonk/M.I.B._More-Incredible-Bash/blob/main/Password_List_V4.0.pdf Password_List_V4.0.pdf] document from [https://github.com/Mr-MIBonk/M.I.B.%20More-Incredible-Bash More Incredible Bash repo]. | |||
You can also use More Incredible Bash to change the root password to <code>harman_f</code> for your convenience. | |||
== Backup original files == | == Backup original files == | ||
Choose one (or more) method to backup original assets in your unit, before you change anything. | |||
=== Local copy inside MHI2 unit === | === Local copy inside MHI2 unit === | ||
ssh root@10.173.189.1 | ssh root@10.173.189.1 | ||
mount -uw /net/mmx/mnt/app && mount -uw /net/mmx/mnt/system | mount -uw /net/mmx/mnt/app && mount -uw /net/mmx/mnt/system | ||
cp /etc/eso/production/displaymanager.json /etc/eso/production/displaymanager.json.original | cp /etc/eso/production/displaymanager.json /etc/eso/production/displaymanager.json.original | ||
Line 31: | Line 39: | ||
cp -r /eso/hmi/lsd/kzbs/HMISystemEvoHighScale /eso/hmi/lsd/kzbs/HMISystemEvoHighScale_original | cp -r /eso/hmi/lsd/kzbs/HMISystemEvoHighScale /eso/hmi/lsd/kzbs/HMISystemEvoHighScale_original | ||
exit | |||
=== Remote copy on your computer === | === Remote copy on your computer === | ||
mkdir ~/MHI2_backup | mkdir ~/MHI2_backup | ||
scp root@10.173.189.1:/mnt/system/etc/eso/production/displaymanager.json ~/MHI2_backup/displaymanager.json | scp -O root@10.173.189.1:/mnt/system/etc/eso/production/displaymanager.json ~/MHI2_backup/displaymanager.json | ||
scp root@10.173.189.1:/mnt/app/eso/hmi/lsd/images/HMIEarlyAppsEvoHighScale | scp -O -r root@10.173.189.1:/mnt/app/eso/hmi/lsd/images/HMIEarlyAppsEvoHighScale ~/MHI2_backup/HMIEarlyAppsEvoHighScale_original | ||
scp -r root@10.173.189.1:/mnt/app/eso/hmi/lsd/kzbs/HMISystemEvoHighScale ~/MHI2_backup/HMISystemEvoHighScale_original | scp -O -r root@10.173.189.1:/mnt/app/eso/hmi/lsd/kzbs/HMISystemEvoHighScale ~/MHI2_backup/HMISystemEvoHighScale_original | ||
== Modifications == | == Modifications == | ||
Line 45: | Line 55: | ||
That's easy. Duplicate the <code>displaymanager.json</code> file and call it <code>displaymanager_modified.json</code>. Now open the <code>displaymanager_modified.json</code> with text or code editor and look for section related to the rear view camera. It should look like this: | That's easy. Duplicate the <code>displaymanager.json</code> file and call it <code>displaymanager_modified.json</code>. Now open the <code>displaymanager_modified.json</code> with text or code editor and look for section related to the rear view camera. It should look like this: | ||
"rvc" : { | "rvc" : { | ||
"norm" : "AUTO", | "norm" : "AUTO", | ||
Line 98: | Line 97: | ||
=== Changing opacity of PNG file === | === Changing opacity of PNG file === | ||
Those textures are displayed on top of the video stream to create base for the rest of user interface. | |||
* <code>2100002.png</code> - OPS background | |||
* <code>2100003.png</code> - split screen divider | |||
* <code>2100137.png</code> - right drawer button frame | |||
* <code>2100145.png</code> to <code>2100156.png</code> - top view car image for cars with RVC and no parking sensors | |||
=== | With an image editor of your choice (GIMP, Photoshop, Affinity Designer, Paint...) modify opacity of the files. | ||
My personal choice: | |||
* OPS background: opacity 0% (invisible) | |||
* split screen divider: fading from opacity 25% (top) to 0% (bottom) | |||
* all other files: opacity 25% | |||
=== Changes inside KZB container === | |||
Some textures are not stored directly in the MHI2 filesystem, but are compressed into <code>.kzb</code> containers, most likely made with [https://rightware.com/product/kanzi-studio/ Kanzi Studio]. Free trail exists, but it's not freely available - you can request free trail and hope get a positive reply. | Some textures are not stored directly in the MHI2 filesystem, but are compressed into <code>.kzb</code> containers, most likely made with [https://rightware.com/product/kanzi-studio/ Kanzi Studio]. Free trail exists, but it's not freely available - you can request free trail and hope get a positive reply. | ||
Interesting files are the <code>OPS_AU*.kzb</code> packages with assets for the Optical Parking System for different body variants of the vehicle. | |||
<code> | I found a way to extract images from the <code>.kzb</code> package. You can try with DragonUnPACKer <ref>https://github.com/elbereth/DragonUnPACKer</ref> - game file resource explorer/unpacking tool. Once I had the files extracted, I modified couple of them by, once again, changing opacity to 25%. | ||
* <code>ops_trailer.png</code> - trailer image if vehicle equipped with tow bar and trailer is connected | |||
* <code>ops_bg_splitscreen.png</code> - parking sensors background | |||
* <code>ops_car_au*.png</code> - top-view images of vehicles in different body variants. | |||
How to pack the <code>.kzb</code> back? Well I have a messy way of doing it and I'm not going to show you that just yet. | |||
== Uploading already modified files to unit == | |||
<youtube>rX6YoU1oB2w</youtube> | |||
Enable write mode in your MIB | |||
ssh root@10.173.189.1 | |||
mount -uw /net/mmx/mnt/app && mount -uw /net/mmx/mnt/system | |||
scp - | exit | ||
Send modified assets to MIB | |||
git clone https://github.com/mrfixpl/Audi-MHI2-RVC-fullscreen.git | |||
cd Audi-MHI2-RVC-fullscreen/MHI2_AU37x/modification/ | |||
scp -O displaymanager.json root@10.173.189.1:/mnt/system/etc/eso/production/ | |||
scp -O *.png root@10.173.189.1:/mnt/app/eso/hmi/lsd/images/HMIEarlyAppsEvoHighScale/ | |||
scp -O OPS_*.kzb root@10.173.189.1:/mnt/app/eso/hmi/lsd/kzbs/HMISystemEvoHighScale/ | |||
Make sure files are synced with storage drive | |||
ssh root@10.173.189.1 | |||
sync | |||
exit | |||
Now reboot the unit with 3-button combination and check if it works. |
Latest revision as of 13:42, 10 September 2025

Audi MMI MHI2 is set up in such a way that rear view camera is shown in split screen view. Camera stream is shown on the left side of the display, when the right side is occupied by parking sensors visualisation or AreaView image in equipped cars.
If your car is not equipped with AreaView (you have for example Audi A3 8V where AreaView was not available), you are stuck with RVC image not on fullscreen.
Luckily there's a way around it! And here's the repo with needed assets: https://github.com/mrfixpl/Audi-MHI2-RVC-fullscreen
We need to change 3 things:
- how the unit is processing video stream (crop and position)
- OPS textures opacity
- OPS vehicle and radar lines textures inside
.kzb
container.
Access MHI2 main unit file system
Connection
You can do this via WLAN, USB-to-Ethernet D-Link DUB-E100 adapter, or via TX/RX connection from QuadLock.
Protocol
You can use TelNet (unit already supports it) or SSH (service needs to be installed via More Incredible Bash or MIB2 Toolbox).
Root user password
If you have installed the latest firmware for Audi A3 (MHI2_ER_AU37X_P5089
), the root password is 4SapmKoq
Root user passwords for other firmwares and MU app versions can be found in the Password_List_V4.0.pdf document from More Incredible Bash repo.
You can also use More Incredible Bash to change the root password to harman_f
for your convenience.
Backup original files
Choose one (or more) method to backup original assets in your unit, before you change anything.
Local copy inside MHI2 unit
ssh root@10.173.189.1 mount -uw /net/mmx/mnt/app && mount -uw /net/mmx/mnt/system cp /etc/eso/production/displaymanager.json /etc/eso/production/displaymanager.json.original cp -r /eso/hmi/lsd/images/HMIEarlyAppsEvoHighScale /eso/hmi/lsd/images/HMIEarlyAppsEvoHighScale_original cp -r /eso/hmi/lsd/kzbs/HMISystemEvoHighScale /eso/hmi/lsd/kzbs/HMISystemEvoHighScale_original exit
Remote copy on your computer
mkdir ~/MHI2_backup scp -O root@10.173.189.1:/mnt/system/etc/eso/production/displaymanager.json ~/MHI2_backup/displaymanager.json scp -O -r root@10.173.189.1:/mnt/app/eso/hmi/lsd/images/HMIEarlyAppsEvoHighScale ~/MHI2_backup/HMIEarlyAppsEvoHighScale_original scp -O -r root@10.173.189.1:/mnt/app/eso/hmi/lsd/kzbs/HMISystemEvoHighScale ~/MHI2_backup/HMISystemEvoHighScale_original
Modifications
Changing FBAS stream size and position
That's easy. Duplicate the displaymanager.json
file and call it displaymanager_modified.json
. Now open the displaymanager_modified.json
with text or code editor and look for section related to the rear view camera. It should look like this:
"rvc" : { "norm" : "AUTO", "deinterlace" : "WEAVE", "source":{ "x": 96, "y": 48, "w": 528, "h": 384 }, "target":{ "x": 0, "y": 54, "w": 528, "h": 384 }, "brightness": 0, "color": 0, "saturation": 0, "hue": 0 },
We are going to change two things: source
and target
parameters. source
defines how to crop the original video stream from the camera, and target
defines where and how to display it.
Let's start with expanding the source view. RVC camera uses an analog NTSC stream. Full resolution of such video source is 720 by 480 pixel, so let's remove the original cropping and expand the field of view.
"source":{ "x": 0, "y": 0, "w": 720, "h": 480 },
And now let's make sure that the image is stretched to the full width od the display..
"target":{ "x": 0, "y": 0, "w": 800, "h": 438 },
Changing opacity of PNG file
Those textures are displayed on top of the video stream to create base for the rest of user interface.
2100002.png
- OPS background2100003.png
- split screen divider2100137.png
- right drawer button frame2100145.png
to2100156.png
- top view car image for cars with RVC and no parking sensors
With an image editor of your choice (GIMP, Photoshop, Affinity Designer, Paint...) modify opacity of the files.
My personal choice:
- OPS background: opacity 0% (invisible)
- split screen divider: fading from opacity 25% (top) to 0% (bottom)
- all other files: opacity 25%
Changes inside KZB container
Some textures are not stored directly in the MHI2 filesystem, but are compressed into .kzb
containers, most likely made with Kanzi Studio. Free trail exists, but it's not freely available - you can request free trail and hope get a positive reply.
Interesting files are the OPS_AU*.kzb
packages with assets for the Optical Parking System for different body variants of the vehicle.
I found a way to extract images from the .kzb
package. You can try with DragonUnPACKer [1] - game file resource explorer/unpacking tool. Once I had the files extracted, I modified couple of them by, once again, changing opacity to 25%.
ops_trailer.png
- trailer image if vehicle equipped with tow bar and trailer is connectedops_bg_splitscreen.png
- parking sensors backgroundops_car_au*.png
- top-view images of vehicles in different body variants.
How to pack the .kzb
back? Well I have a messy way of doing it and I'm not going to show you that just yet.
Uploading already modified files to unit
Enable write mode in your MIB
ssh root@10.173.189.1 mount -uw /net/mmx/mnt/app && mount -uw /net/mmx/mnt/system exit
Send modified assets to MIB
git clone https://github.com/mrfixpl/Audi-MHI2-RVC-fullscreen.git cd Audi-MHI2-RVC-fullscreen/MHI2_AU37x/modification/ scp -O displaymanager.json root@10.173.189.1:/mnt/system/etc/eso/production/ scp -O *.png root@10.173.189.1:/mnt/app/eso/hmi/lsd/images/HMIEarlyAppsEvoHighScale/ scp -O OPS_*.kzb root@10.173.189.1:/mnt/app/eso/hmi/lsd/kzbs/HMISystemEvoHighScale/
Make sure files are synced with storage drive
ssh root@10.173.189.1 sync exit
Now reboot the unit with 3-button combination and check if it works.