Beiträge von jamakr4

    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

    im Winter lästig, wenn man vorheizen will.

    Allerdings. Bei mir steht der Karren direkt vorm Küchenfenster, weshalb mein schneller Fix dann immer ist sich mit dem Schlüssel ans Fenster zu stellen und einmal auf und wieder abzuschließen - Die Nachbarn denken zwar mittlerweile wahrscheinlich das ich nen Knax habe (auch weil das Ding beim Vorheizen ja immer die Lampen anmacht) - aber funktioniert

    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.

    EVCC greift nur auf den saic-mqtt-gateway zu, wenn das Fahrzeug geladen werden soll, bzw. wenn es geladen wird.
    Da bei der Ladung die 12V Batterie gleich mit geladen wird, ist das kein Problem.
    Rufe ich die Fahrzeugdaten natürlich alle 10 Minuten ab, geht das natürlich auf die 12V Batterie, die aber normalerweise automatisch nachgeladen wird, auch wenn das Fahrzeug steht.

    Hast du nicht das Problem das die Kiste manchmal in diesen deep sleep mode geht?

    Gibt es dafür SoftwarSoftware Updates/Mods um sowas zu ermöglichen bzw das ganze zu verbessern

    Wie stellst du deinen ACC denn ein? Also wenn du den linken Stick nach oben schiebst um viel Kmh wird jeweils erhöht- 1er oder 5er Schritte? Die aktuelle Version von MG mach 1er Schritte, wenn deiner also 5er macht hast du definitiv eine alte Version.


    Oder was genau meinst du?

    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..

    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..

    Bei mir auch - fühlt sich son bisschen an wie ein Gummiband finde ich.. Aber fairerweise ist das auch schwer anders umzusetzen, denn soweit ich weiß nutz der ACC nur das Radar und nicht noch die Kamera oben vorm Innenspiegel.. Woher soll das Auto also in solchen Edge Cases sowas wissen bzw wie soll es das erkennen? Das Radar gibt harte Werte raus und wenn das Auto sofort reagieren würde, würden sich wahrscheinlich alle beschweren das der Wagen zu hart zu früh grundlos reagiert (das war ja in der alten ACC Version so mit den Kurven). Man könnte die Cam oben nutzen um zB via KI Echtzeiterkennung solche Fälle früher zu erkennen und entsprechend so zu reagieren - aber wahrscheinlich hat die MediaTek CPU dafür nicht genug Power damit beide System zusammen arbeiten..

    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?