Spurwechsel Kamera nachrüsten + Update der 360 Cam App

  • Hochachtung vor deiner Arbeit und deinem Können!

    Danke aber das war gar nicht schwer - ich würde behaupten ein Software Dev der hauptsächlich dieses low Level C++ Zeugs macht und vor allem nicht erst experimentieren muss bis das dann irgendwann mal läuft würde das in wenigen Stunden hinbekommen. Ich vermute mal das MG die Software nicht selber entwickelt, sondern das outsourced - Anders kann ich mir nicht erklären wie man solche "Free Features" nicht mitnimmt. Die Hardware ist ja da... Tesla und co kochen ja auch nur mit Wasser bzw. mit der Hardware die verbaut ist, aber die nutzen sie immerhin..

    Ich hatte schon mal Kontakt mit der Software und Rechtsabteilung von MG (hatte denen ein Datenleck gemeldet) und hatte auch angeboten denen zu helfen ihre Fahrzeugsoftware mal zu verbessern, aber das wollte man nicht 😔

  • OT: Falls ich es noch schaffe, den Poweramp mit den Multimediatasten zu steuern, würde ich gerne den originalen MG Medienplayer durch den Poweramp ersetzen. Ich gehe davon aus, dass man "nur" den Programmnamen in der Poweramp APK durch den des originalen MG Medienplayers ersetzen müsste, damit der MG Launcher den dann aufruft. Habe allerdings keine Ahnung, wie das geht, da ich mich nur mit Webprogrammierung auskenne.

  • OT: Falls ich es noch schaffe, den Poweramp mit den Multimediatasten zu steuern, würde ich gerne den originalen MG Medienplayer durch den Poweramp ersetzen. Ich gehe davon aus, dass man "nur" den Programmnamen in der Poweramp APK durch den des originalen MG Medienplayers ersetzen müsste, damit der MG Launcher den dann aufruft. Habe allerdings keine Ahnung, wie das geht, da ich mich nur mit Webprogrammierung auskenne.

    Es gibt da 2 Optionen entweder den Launcher anpassen (das der quasi statt dem default player PowerAMP aufruft) oder PowerAmp selber anpassen das der quasi die Signatur vom Original hat. Bei 1tem ist halt das Problem sobald der Wagen ein Software Update fürs Infotainment kriegt ist das wahrscheinlich wieder weg und 2tes ist viel Fummelarbeit bzw. keine Ahnung ob das überhaupt funktioniert.


    Du kannst dir bei Fdroid die App APK extractor holen und damit quasi alle Apps vom Auto ziehen auch den Launcher glaube ich. Dann mit APK Tool entpacken und verändern und anschließend wieder neu signieren und installieren. Den Launcher kann man nicht emulieren (bzw ich habe noch keinen Weg gefunden) und viele andere Apps wie auch die 360 Cam App laufen so halb im Sim, weil die Abhängigkeiten des echten Autos fehlen. Auf dem Weg ist nur die entpackte App von der Logik her in .smali


    Edit: das hier ist ja mehr oder weniger 1tens nur für den MG4 - MG4 Headunit UI Mod

    com.saicmotor.360camera.show

    Das ist z.B der Call für den Aufruf der 360cam - man muss also nur wissen wir der Call für den Mediaplayer aussieht und diese Stelle im Launcher ändern.

    https://github.com/jamakr4/MG4…n-to-the-MG4-infotainment
    https://github.com/jamakr4/MG4…d-gain-access-to-the-code?

  • Ja mein Repo ersetzt seins und nein meine App ist erstmal noch eigenständig- ich bin gerade am gucken wie es die originale MG App ablösen könnte, das gestaltet sich aktuell aber noch schwieriger als gedacht. Man kann die original App zwar extrahieren und mit APK Tool entpacken und dann verändert, aber dann ist der ganze Code in smali Dateien (aka der Android Assembler) - damit zu arbeiten ist die Hölle auf Erden..

    Eigenständige App ist mir persönlich lieber, da so easy auf "Werkszustand" gesetzt werden kann. Einfach die selbst hinzugefügten Apps deinstallieren und alles ist wieder original.

  • Eigenständige App ist mir persönlich lieber, da so easy auf "Werkszustand" gesetzt werden kann. Einfach die selbst hinzugefügten Apps deinstallieren und alles ist wieder original.

    Die andere App wird auch bleiben bzw ich weiß gar nicht ob man die überhaupt los wird. Die Idee war eher das die App dann automatisch an geht wenn der Gang eingelegt wird und das quasi so die alte ersetzt. Ich meine in den Einstellungen der alten App kann man das auch konfigurieren das die nicht immer automatisch angeht.

    Ersetzen bezieht sich hier nicht auf das Runterwerfen von einem der beiden sondern eher auf die Nutzung..

  • Ah, danke für die Aufklärung.

    Ja, ich habe in der originalen MG-360Camera-App bei mir das automatische angehen beim Blinken deaktiviert. Dafür kommt ja nun die App DriveHub_Kamera in de Vordergrund.

    Obs auch einen Switch gibt, damit beim wechseln in "R" die originale App nicht aufgeht, weiss ich gerade gar nicht.


    PS: Habe gerad dein Wiki durchgelesen. Super interessant! Wenn ich solche Sachen jeweils lese, bin ich nachher immer etwas frustriert, dass ich nicht programmieren kann.

    (Und ja, ich habe in meiner beruflichen Karriere schon unzählige Anläufe genommen.. liegt mir leider einfach nicht, fehlt mir wohl ein Gen für 8o )


    So langsam muss ich mir wohl Obtainium auf den MG4 laden, damit ich die verschiedenen Apps und Versionen auf den jeweiligen Git im Griff habe.

  • So langsam muss ich mir wohl Obtainium auf den MG4 laden, damit ich die verschiedenen Apps und Versionen auf den jeweiligen Git im Griff habe.

    Ich guck mal ob ich auch so ein OTA Feature wie bei der Control App baue. Theoretisch könnte man die installation auch automatisieren per Script, da müsste man mal gucken welche Rechte so ein Skript auf dem MG hat.

    PS: Habe gerad dein Wiki durchgelesen. Super interessant! Wenn ich solche Sachen jeweils lese, bin ich nachher immer etwas frustriert, dass ich nicht programmieren kann.

    Man muss da einmal rein kommen - die Grundlagen sind eigentlich immer die gleichen. Das ist für mich auch das erste Mal Android, hab davor mal swift gemacht (das iOS Pendant) und sonst eigentlich immer Web basiert - da kann man den Code mit so Sachen wie Expo auch mittlerweile quasi nativ von Web basiert aus übersetzen und so diesen Cross Platform Kram wie Flutter umgehen..

  • Kleines Update:

    v0.6 ist mehr oder weniger fertig, hier einmal die wichtigsten Neuerungen:


    Bessere Frame Rate:

    Jetzt quasi permanent flüssig, auch bei hohen Geschwindigkeiten.


    TileView schließbar:

    Lässt sich jetzt schließen, ohne den Blinker zu canceln (X-Button oben links im Overlay), falls wichtige UI-Elemente überdeckt werden.


    Settings UI:

    Wurde komplett neu gestaltet.


    OpenSource Credits:

    Hinzugefügt


    Schließen-Button:

    Oben links eingefügt (für die gesamte App).


    Design:

    TileView beim Blinken hat jetzt runde Ecken.


    Wartbarkeit:

    Diverse interne Optimierungen.


    Lokalisierung:

    Übersetzung von Türkisch auf Englisch oder Deutsch.


    Die Sprache wird automatisch basierend auf der Locale des Autos gewählt (Englisch als Fallback).


    Icons:

    App nutzt jetzt Google Material Icons.


    Ich teste das jetzt noch kurz und muss 2-3 Kleinigkeiten nachbessern, aber ich denke, Mittwochabend sollte das Update auf GitHub sein.

  • Ich könnte etwas Hilfe gebrauchen.

    Konkret geht es darum, den Fisheye-Effekt aus dem Kamerabild zu entfernen. OpenCV, das aktuell bereits für die Konvertierung nach RGBA genutzt wird, bietet auch ein Modul, mit dem sich dieser Effekt grundsätzlich korrigieren lässt.


    Das Problem dabei: Dafür braucht man eine Kalibrierung der Kameras. Da es aber ziemlich unrealistisch ist, dass jeder mit einer Schachbrett-Kalibrierungstafel um sein Auto herumrennt, hatte ich eine andere Idee:

    In der originalen 360Cam-App von MG/SAIC gibt es eine Datei, die nach aktuellem Stand sehr wahrscheinlich die Kalibrierungsdaten der 4 Kameras enthält.


    Es wäre super, wenn ich von dieser Datei ein paar Versionen aus verschiedenen Fahrzeugen bekommen könnte. Da man sie leider nicht direkt in OpenCV importieren kann muss man sie erst analysieren und verstehen, nicht zuletzt auch um zu schauen wie verschieden die einzelnen Fahrzeuge sind und ob eine universal Datei gut genug wäre.


    Konkret zu tun wäre:

    1. Die App aus dem MG extrahieren
    2. Die App mit apktool dekompilieren
    3. Die Datei camera_calibdata.bin heraussuchen und mir schicken

    Wer auf Schritt 2 und 3 keine Lust hat, kann mir auch einfach nur die extrahierte APK schicken, dann übernehme ich den Rest selbst.

    Der Sinn der Übung ist, mehrere dieser Dateien zu vergleichen, ein Muster zu erkennen und so das Format der Kalibrierungsdaten zu entschlüsseln.

    Die Datei liegt hier (in der dekompilierten apk):

    360Camera_eh32_com.saicmotor.hmi.aroundview/360Camera_eh32_360camera_eh32_eu_P/assets/camera_calibdata.bin


    Hier die Anleitung wie man die App extrahiert und dekombiliert: https://github.com/jamakr4/MG4…d-gain-access-to-the-code?

    Wer sich für Bits und Bytes begeistern kann, kann gerne hier lesen was ich glaube herausgefunden zu haben: https://github.com/jamakr4/MG4…ki/Correcting-the-fisheye

    Ich bin für jede einzelne Datei dankbar - Falls jemand Hilfe beim extrahieren braucht könnt ihr euch gerne per PN melden.

    Wer sich seine eigene Datei mal ansehen will nutzt am besten das VS Code Plugin Hex-Editor von Microsoft - das sieht dann ca so aus (ohne hex editor steht da nur Matsch)
    Screenshot 2026-05-12 at 20.59.26.png

  • Gerne werde ich dir die gewünschten Daten extrahieren. Bin aber aktuell knapp 3000km von meinem MG4 entfernt 🙃 (Urlaub) bis nächste Woche.