Better menu integration with AAIdrive

superwofy

Corporal
Jan 18, 2021
126
188
0
On ID3/ID4 this is handled in the main "HmiMain3D" binary.For security and to avoid nuisance, BMW hashes all resource files with sha256 and embeds these hashes inside a signed certificate. On EVO ID5/ID6 units, the hashes are verified by an HMI plugin file loaded as a library (OMAP: /opt/hmi/ID5/data/ro/hmiplugins/libhmiremoting.so).

For this reason, out-of-the box the AAIdrive app adds entries to the ConnectedDrive menu that have either no icons, labels or both:

351041025-1ff081e9-6894-4679-9b0a-644b5199da28.jpg



A simple patch of the "CRHMIAuthPermHandler::verifyResource" function to always return true allows custom resources to be loaded and displayed. Github discussion

351041858-797c5a1c-2d36-427e-841a-4a2e9dd680d2.png


351041975-1834a38c-69de-4a8d-b7de-52f7e83fd007.png


351435518-ac502469-b336-4a0d-a3f3-9fdf8bc4d023.jpg



To install the patched library:
Code:
mount -uw /fs/sda0 && \
cp -rv /fs/usb0/libhmiremoting.so /opt/hmi/ID5/data/ro/hmiplugins/ && \
sleep 5 && \
mount -ur /fs/sda0 && sleep 5 && OnOffDSICommander appreset
 

Attachments

  • libhmiremoting24-07.so.zip
    1.8 MB · Views: 73
  • libhmiremoting23-07.so.zip
    1.8 MB · Views: 45
  • Like
Reactions: zomboi09 and pRoxxx

zomboi09

New Member
Jun 25, 2024
6
0
0
Thank you very much, but I have a small question: Are 7-23 and 7-24 the level of the headunit? , does it work with 18-03 ?
 

pRoxxx

Private
Feb 9, 2021
39
6
0
does it require a working telematics module?
No, it doesn't. I saw this project almost a year ago but skipped it because I thought that it would require an active subscription of connecteddrive, lol.
Thank you very much, but I have a small question: Are 7-23 and 7-24 the level of the headunit? , does it work with 18-03 ?
No, it will not work, NBT Evo will crash and reboot once you run BMW Apps because of the difference in versions.
 

superwofy

Corporal
Jan 18, 2021
126
188
0
Thank you very much, but I have a small question: Are 7-23 and 7-24 the level of the headunit? , does it work with 18-03 ?

No, it will not work, NBT Evo will crash and reboot once you run BMW Apps because of the difference in versions.

Here you go, same patch applied to 18-03. I can't test it since I don't use this ilevel but the assembly is identical.

My changes are now merged into the main AAIdrive repo. Compile with AndroidAutoIdrive_SendUnsignedResources=true in gradle.properties.
 

Attachments

  • libhmiremoting18-03.so.zip
    1.8 MB · Views: 559
  • Like
Reactions: pRoxxx

pRoxxx

Private
Feb 9, 2021
39
6
0
Here you go, same patch applied to 18-03. I can't test it since I don't use this ilevel but the assembly is identical.

My changes are now merged into the main AAIdrive repo. Compile with AndroidAutoIdrive_SendUnsignedResources=true in gradle.properties.
Hm, I have build AAIdrive with AndroidAutoIdrive_SendUnsignedResources=true, now image and text appear for vehicle info and bmw one, but for maps, screenmirroring and notifications nope. I see that you had added texts.zip and images.zip, but don't understand how it works. How do you found these IDs for text and image?
 

Attachments

  • PXL_20240821_174136161.jpg
    PXL_20240821_174136161.jpg
    243.6 KB · Views: 21

superwofy

Corporal
Jan 18, 2021
126
188
0
Hm, I have build AAIdrive with AndroidAutoIdrive_SendUnsignedResources=true, now image and text appear for vehicle info and bmw one, but for maps, screenmirroring and notifications nope. I see that you had added texts.zip and images.zip, but don't understand how it works. How do you found these IDs for text and image?

Hey,

Follow these commits to get an understanding, it took me a while at first:

If you're speaking specifically about the resource IDs, they are assigned in the ui-description.xml files. Corresponding IDs are then loaded from images.zip and texts.zip for the given brand.

Screen mirroring still needs to be done. So far the changes for it are only in my private build. See attached apk. There will be an official pull request when I get the time. Same story with mapbox, the build I'm using at the moment does not use the map, that must be how I missed it. I will add that too, later.
 

Attachments

  • screen_mirror-release.zip
    4.5 MB · Views: 53
  • Like
Reactions: pRoxxx

pRoxxx

Private
Feb 9, 2021
39
6
0
Hey,

Follow these commits to get an understanding, it took me a while at first:

If you're speaking specifically about the resource IDs, they are assigned in the ui-description.xml files. Corresponding IDs are then loaded from images.zip and texts.zip for the given brand.

Screen mirroring still needs to be done. So far the changes for it are only in my private build. See attached apk. There will be an official pull request when I get the time. Same story with mapbox, the build I'm using at the moment does not use the map, that must be how I missed it. I will add that too, later.
Thank you for clarification! I had found every missed text and image, and added it.
 

Attachments

  • PXL_20240822_090951430.jpg
    PXL_20240822_090951430.jpg
    246.1 KB · Views: 19
  • Like
Reactions: superwofy