MMI individuelles Startbild

Audi A6 C6/4F

Frohe Weihnachten wünsch ich euch noch.

Habe mir letztens beim MMI Update überlegt ob es möglich ist ein eigenes Startbild ins Update einzufügen und dann ein Update zu machen.
Klar das es passend konvertiert werden muß und die Auflösung geändert werden muß aber normal ist es doch auch "nur" ein Bild.

Hat das schon jemand probiert?

Grüße
Spike

Beste Antwort im Thema

So ... ich habe fertig 😎
Noch Fragen? 😉

133 weitere Antworten
133 Antworten

Zitat:

Original geschrieben von FredBauer


Ich versuche das gerade auch mal nachzuvollziehen und zu decodieren. Vielleicht kannst du mir ein paar Tips geben.
Ich bin gerade auf der Suche nach dem Offset für das RLE und die Zeilenendekennung. Ich muss doch auf alle Fälle 240 Zeilen finden oder denke ich da falsch?

Offset ist Filegröße - (Bilddatengröße + 4). (ich hatte die Position irgendwo vorher mal gepostet + hoffe ich vertue mich jetzt auswenig nicht mit den + 4 - könnten auch - 4 sein)

Die 4 kommen anscheinend durch das eigentliche Bilddatengröße, die 4 Bytes hat.

Es gibt keine Zeilenendenerkennung, daher kannst du sie auch nicht finden 😁

Ja, 240 Zeilen. Interessanter sind aber in meinen Augen die 480 Spalten. Diese kann man durch die klare Abgrenzung im Quellmaterial (Schwarzbereiche) sehr gut nachvollziehen und dann auch überprüfen, ob man auf dem richtigen Weg ist.

7F FF ist spannend. (und gleichzeitig auch der Startpunkt der Bilddaten - also der von dir gesuchte Offset)
Wenn man dazu noch die nächsten Counterbytes zuaddiert, dann ist es einen Versuch wert durch 480 zu teilen.
Wie gesagt, es sind 16bit Farbtiefe. Jedes Pixel hat also 2 Byte. Die RLE ist also über jeweils zwei Bytes.
Das sollte dich hoffentlich erst einmal weiter bringen 😉

Dann fehlt dir nur noch ein Sonderfall ... aber dazu kommen wir dann ... versuch erst einmal den Schwarzbereich und die danach folgenden Grauabstufungen (genauer gesagt Aufstufungen) hinzubekommen.

Edit: Die 7F FF beziehen sich auf das erste hier gepostete File. Das kenne ich halt schon fast auswendig und habe hier keinen Zugriff auf einen hexedit. (bin halt nicht zuhause und auch nicht an meinem eigenen Rechner ...)

Dennis, am Ende wird alles gut 😁 Hoffe ich!

Danke Kai. 7F FF hatte ich auch schonmal ins Auge gefasst, aber dann wieder verworfen.
Dann werde ich mich mal weiter damit beschäftigen.

So, wie versprochen habe ich heute das Encoding fertig gemacht.
Ein Sonderfall im verwendeten RLE-Algorithmus hat mich noch gut Nerven gekostet *grrr*
(nur gut, dass ich vom Gemüt her eher ruhiger bin, sonst hätte mein Notebook dran glaube müssen 😉)
Aber wie sage ich immer: Der Rechner verliert am Ende immer 😎

Getestet habe ich die komplette Wandelkette, indem ich einen Screen nach BMP und zurück gewandelt habe und das Ergebnis mit dem Original verglichen habe. Alle Wandlungen haben bitgenau das Original ergeben.
Von daher gehe ich mal davon aus, dass es auch mit einem beliebigen anderen Quellfile funktionieren wird.

Also, wenn mir jemand ein 480x240 (am besten .bmp mit 16bit Farbtiefe) postet, dann kann ich im daraus ein .yim erzeugen.
Angabe der gewünschten Screen-Nummer ist auch noch nötig, da sich die .yim Files bzgl. der im File angegebenen Storage-Adressen unterscheiden und ich demensprechend den richtigen Header erzeugen muss.

Ich kann nicht sagen, ob es am Ende auch klappen wird. Möglicherweise schrottet man sich damit dann auch das Display Interface - je nachdem ob größere Files nicht irgendetwas wichtiges überschreiben.
Die Ausgabegröße der Compression ist halt vom Quellmaterial abhängig. Die Audi Bilder haben sehr große Bereiche, die sehr sehr gut komprimiert werden können.
Ob und wo da eine Grenze ist - keine Ahnung. Kleiner / gleich der ursprünglichen Filegröße sollte auf jeden Fall funktionieren. Mehr muss man dann halt ausprobieren.

Also ... wer meldet sich als Testopfer freiwillig? (FredBauer? Die Checksummen kannst du ja anscheinend bereits neu berechnen?)

ein gesundes neues Jahr wünsch ich euch allen noch :-)

Wahnsinn wie du das kannst aber da ich eh nicht wüsste wie man das update neu drauf spielt muß sich wohl doch ein anderer als versuchskaninchen opfern :-)

Grüße

Ähnliche Themen

Zum Glück habe ich ja das MMI 2G 😁

Auf die 3G CDs habe ich immer noch nicht geschaut.
Wollte erst einmal die Rückwandlung fertig bekommen.

Habe die MMI3G CD durchgeackert, aber leider keine einzelnen Bilder Files gefunden, nur jede menge Waves für die Sprachsteuerung

Also Kai du brauchst jetzt jemanden auf dessen MMI der jenige das testet?

Na ich meld mich mal freiwillig. Wenns nicht klappt wenigstens ein Grund aufs 3G um zu rüsten. 😁

Also bitte lass es klappen. 😮

Ich habe gerade mal einen ersten Blick auf die 3G CD geworfen.
Es gibt dort .ifs und .efs Files.
Die .ifs sind nur interessant, wenn man z.B. Kernel Module zusätzlich verankern will, da diese praktisch einen gepackten Betriebssystemkern enthalten.
Interessanter finde ich da die .efs-Files.
Hinter die Adressierung bin ich noch nicht gekommen. Das Filenamengrößefeld konnte ich aber wenigstens schon einmal erkennen - neben den Timestamps (File-Creation und Last-Change).
Es handelt sich bei den .efs-Files um Flash-Filesystem Images, welche QNX dann später zur Laufzeit aus dem jeweiligen Flash-Speicher mountet.
Ausserdem liegen die Startscreens anscheinend auch dort drin und sind wahrscheinlich im PNG-Format.
(jedenfalls findet man im efs-Filesystem so einige PNGs - ob die Startscreens dabei sind weiss ich so natürlich noch nicht)
Wichtig wäre im nächsten Schritt insbesondere das Inode-Feld für die Filegröße zu finden.
Anscheinend ist immer erst ein Inode und dann im Anschluss direkt das File.
Möglicherweise könnte ich sogar schon so einen Extraktor schreiben, der die PNGs rauszieht und alle ablegt. (das ich dazu die Filegröße nicht unbedingt bräuchte liegt an dem PNG Magic und daran, dass die Struktur von PNGs natürlich sehr gut dokumentiert ist)
Ich würde aber gerne erst einmal hinter die FS-Struktur kommen ... also noch ein paar Stunden draufgucken und dann sehe ich wohl schon klarer ... 🙂

Die .ifs Files wären spannend, wenn man z.B. einen fat32 (Windows FS) Kernel-Treiber hinzufügen wollte, um z.B. ein Windows-Filesystem mounten zu können.

Auf jeden Fall sieht die Sache nicht extrem kompliziert aus. Weder gepackt, noch verschlüsselt etc. - also in ziemlich kurzer Zeit und mit einfachen Bordmitteln nachvollziehbar.
Wie gesagt, ich habe - bedingt durch die Arbeit, die ich schon in das HDD Filesystem gesteckt habe - ein extrem großes Interesse an die Daten zu kommen, damit ich dann die Größenbeschränkung der Jukebox anpassen kann.
Die .efs-Files sind da ganz klar der Weg vorwärts. Startscreens wären da nur ein Abfallprodukt - sorry 😉

@superprager: Ich schreibe dir gleich mal eine PN.

die Systemimages hatte ich noch nicht durchforstet, habe aber gerade die efs-system.efs angesehen, da stehen ja sehr interessante Infos drinnen!
die png´s hab ich nun auch schon gefunden und auch deine Vermutung, das die Musiktitel in einer SQL verwaltet werden. Gibt es an der Mainunit ein Rx/Tx nach aussen?, da im Image ein Terminal ist und auch ein fdisk, mkqnx6fs, was für dein Vorhaben interessant sein könnte.

Ja, die Dinge habe ich auch gesehen 🙂
Klar, einen UART zu finden wäre eine super Sache.
Mein Ziel ist es mittelfristig auch eher ein Terminal zu bekommen. Dann lassen sich viele Dinge deutlich einfacher erledigen, als jedes mal wieder ein FS reverse zu engineeren - keine Frage.
Noch spannender fände ich es aber Informationen über das WLAN Interface zu finden. Die 3G Unit scheint ja WLAN zu besitzen.
Wenn man dort ein Terminal bekommen könnte, dann wäre das natürlich erste Sahne, weil man dann noch nicht einmal ein Kabel und eine offene Unit bräuchte.

Bzgl. efs, wäre der nächste Schritt wie gesagt a) hinter die Filelängenberechnung kommen, b) die Adressierung zwischen den Inodes (dort, wo der Filename steht) und dem Anfang des Files zu ergründen und c) die Verknüpfung zwischen Inodes (Unterverzeichnisse) und den nächsten Inodes herauszubekommen.
Wenn man das geschafft hat, hat man schon so ziemlich gewonnen.
Es scheint in dem efs keine Speicherbelegungs-Bitmaps zu geben - wofür auch, da das FS ja einmal zusammengebaut wird und danach im Betrieb Read-Only gemountet wird.
Kleinigkeiten wie File-Permissions etc. kann man dann im Nachgang schnell abfrühstücken. Für einen ersten Treiber reicht schon das oben genannte aus.

Ich habe eigentlich vor mal ein efs unter QNX6 zu erzeugen und mit den Files von der Update-CD zu vergleichen.
Wenn ich erst einmal Test-Filesysteme erzeugen kann, dann lässt sich die restliche Struktur noch viel einfacher entschlüsseln.
Im ersten Schritt könnte man natürlich auch mal versuchen eins der efs-Files unter QNX zu mounten. Vielleicht sind an dieser Stelle ja keine Veränderungen, wie sie beim HDD-FS zwischen MMI und QNX existieren, vorgenommen und es klappt direkt.
Dann kann man sich nämlich gleich die ganze Arbeit sparen - oder macht sie nur noch aus Langeweile, weil man auf noch das QNX efs in Linux einbauen möchte 😁

Edit: Die WLAN und Terminal Thematik würde ich aber aus meinem bisherigen Verständnis eher im .ifs-Teil vermuten, habe in die .ifs aber bisher noch nicht reingesehen.

Edit2: Übrigens habe ich letzte Nacht auch Hinweise gefunden, dass nicht nur die Medieninformationen in einer SQL Datenbank gehalten werden. Anscheinend werden auch die Systemkonfigurationen in einer solchen Datenbank abgelegt 😉
Fiel mir nur gerade wieder ein ...

Leider ist kein WLAN Modul verbaut, das für das Terminal verwendbar währe, aber ich habe nun eine brauchbare Schnittselle gefunden:
IP over MOST ist mit fixer IP 10.0.0.100 vergeben und lauscht auf Port 8000. Nun brauchen wir nur noch eine Möglichkeit zu finden über das Gateway und CAN in den MOST zu schreiben

Oh. MOST ist schlecht.
Hatte irgendwann mal nach passenden Komponenten gesucht. Ohne Gewebe und/oder genügend Geldeinwurf sieht das schlecht aus.
Über das GW wird das wohl auch nichts. In meinen Augen jedenfalls noch schwieriger als sich direkt in den Ring zu hängen - jedenfalls ohne helfende Doku.

Was meinst du mit "Leider ist kein WLAN Modul verbaut, das für das Terminal verwendbar wäre"?
Du meinst ohne modifizierte Firmware oder auch nach Anpassungen in den demensprechenden Skripten?
Klar, das mit dem WLAN wird schon eine Nummer härter ...
Ich bin mir aber auch absolut sicher, dass ein UART vorhanden ist.
Weiter könnte man auch USB->Serial versuchen. Wahrscheinlich müsste man nur den passenden QNX Treiber hinzufügen. (der wird dann aber genau zum Kernel passen müssen ... einfach wird das leider auch nicht - erst recht ohne eine QNX Entwicklerlizenz)
Ja, UART ist der Anfang. Ist man erst auf der Konsole, dann kann man schauen was man generell so ansprechen kann.

Bisher habe ich die Unit auch noch nie so weit auseinander genommen, dass ich die CPU sehen konnte. An der Stelle sollte man auch mal dringend ansetzen. Vielleicht ergibt sich dann ja auch die Position eines UARTs 😉

Am Mehrfachsteckverbinder B sind nicht dokumentierte freie Pins 1,4,6,7,10 und 12. Ich werde mich morgen mal seriell reinhängen, beim VW RNS510 hat es ja auch geklappt 🙂

Bin voll eurer Meinung. 😁 Ruft an wenn ihr wieder raus wollt... 😁

Deine Antwort
Ähnliche Themen