Portierung eines chats von iOS zu Android

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.600 Mitglieder helfen dir weiter. > Frage stellen <
  • Hi @all,

    ich kann es einfach nicht glauben, dass eine cross platform Migration von Backups nicht möglich ist. Es sind stets alle Daten vorhanden, um stets in das Zielformat zu konvertieren, von daher ist es mir unbegreiflich.

    Ich hatte nun das konkrete Problem, dass ein Kumpel von iOS zu Android gewechselt hat. Threema statiert dazu: Pech gehabt, lass das mal lieber. Deine ID kann man mitnehmen aber die Hostorie aller Chats verliert man (ja, man kann natürlich das txt Export File öffnen und nachsehen, wer was geschrieben hat, die Bilder dazu sind super komfortabel als txt Referenz ausgewiesen, man oh man). Wir wollten aber dennoch unseren Chat (2 Jahre Historie) im Client haben und so habe ich mich mit dem Thema beschäftigen müssen.

    Da ich schon auf Android bin, existierte der gesamte Chat ja noch auf meinem Gerät. Entsprechend habe ich mit angesehen, was im Backup enthalten ist. Man findet dort eine CSV, welche offensichtlich das Ergebnis eines Exports aus einer relationalen Datenbank ist. Allerdings aus MEINER Persoektive, d.h. eingehende und ausgehende Nachrichten sind entsprechend für mich lesbar formatiert. In meinem Backup ist zudem natürlich jeder andere Chat ebenfalls enthalten, somit scheint es unmöglich, die zugehörigen Media Files zu finden. Folgendes habe ich damit gemacht:

    • MEIN Backup auf der Festplatte mit dem Passwort entpackt, welches ich in Threema angegeben habe (7Zip)
    • Ein Java Programm gebaut, welches die CSV Datei des Chats mit meinem Kumpel enthält (die ID ist im Dateinamen angegeben) einliest
    • im Programm bei IMAGE Referenzen nach der UID gesucht und diese mit den im extrahierten Backup gesucht. Die Treffer sollten eindeutig sein. Jeden Treffer habe ich genutzt, um das Bild in einen anderen Ordner zu kopieren. damit habe ich die Media Files sauber vom Rest getrennt
    • Spalte 3 und 4 (nach BWLer Zählung, also die erste Spalte ist Nummer 1) schlüsseln die Formatierung, ob der Eintrag als Ausgang (1) oder Eingang (0) gezeigt werden soll sowie ob der Eintrag gelesen wurde (1|0). im Java Programm invertiere ich diese Bits ganz simpel, um die Perspektive umzudrehen.
    • Im Programm schreibe ich eine Kopie der eingelesenen CSV Datei und berücksichtige dabei die geänderte Formatierung (siehe 4.) und gebe ihr den Namen mit MEINER Threema ID darin.
    • Backup der ID vom Kumpel gemacht und in Android importiert, den Client damit neu eingerichtet
    • Kumpel schnell eine kurze Nachricht senden, um die Funktionsweise zu überprüfen aber auch, um im folgenden Backup eine message csv Datei zu bekommen
    • Dann auf Android von dieser frisch aufgesetzten Version wieder ein Backup gebaut. Passwort vergeben und merken
    • Dieses Backup wieder in ein eigenes Verzeichnis entpacken (ich habe die Datei vorher auf meinen Mac überspielt, das ich deutlich! einfacher, als im Androiden zu arbeiten)
    • In diesem Verzeichnis ersetze ich jetzt die message csv Datei mit MEINER ID im Namen durch die unter 5. entstandene Datei
    • Nun kopiere ich zusätzlich alle unter 3. kopierten Media Files ebenfalls in diesen Ordner
    • Alle Datei in diesem Verzeichnis markieren und mit 7Zip ein Archiv anlegen (ZIP, AES256, dasselbe Passwort verwenden, dass zuvor beim Backup genommen wurde, name gerne auch wie das Backup durch Threema benannt wurde)
    • Anmerkung: ich vermute!, dass die Threema ID in dem File identity mit dem Passwort verschlüsselt wurde, daher muss das Passwort beim Zusammenpacken des Archives stimmen (@Threema könnt ihr das bestätigen?)
    • Das neue Archiv auf den Androiden vom Kumpel kopieren
    • Android Telefon vom Kumpel schnappen, Daten vom Client wegschmeißen (Anwendungsverwaltung) und den Client neu starten. Dann mit Datenbackup wiederherstellen starten und dabei das eben kopierte Archiv angeben.
    • Läuft


    Auf diese Weise kann man von jedem Chat-Partner mit einem Android Telefon seine Historie wieder zusammensammeln. Ätzend und aufwendig, aber es funktioniert.

    Probleme: ein paar Emoticons werden nur als Fragezeichen dargestellt. Viele andere hingegen nicht, weshalb ich ein Zeichenkodierungsproblem eher ausschließe. Ich denke eher, das ist ein Plattform-Thema. Der Chat wird beim Backup wieder einspielen stumm ignoriert, wenn mit der message csv irgendetwas nicht stimmt. Ich brauchte ein paar Anläufe.

    Dieses Szenario ist natürlich recht speziell. Vielleicht kann der ein oder andere damit aber zB den Chat mit seiner Liebsten retten :) Und das sollte es doch wert sein :)

    @Threema : bitte kümmert Euch um das dieses leidige Thema. Es gehört nicht viel dazu, cross Plattform zu denken. Ich biete mich gerne als alpha Tester an :)

    Euer Mirco

  • Ja die fehlende Backup-Kompatibiliät der verschiedenen OS war hier schon mehrmals ein Aufreger.

    In meinen Augen gehört das auch mal langsam behoben. Ebenso wie automatisierte inkrementelle Backups.

    Oder zumindest erklärt, warum dies auch Datenschutz? Plattform? Gründen nicht möglich ist.

  • Hi micro,

    denkst du, dass du eine Möglichkeit finden könntest, deinen Vorgang in die andere Richtung zu entwickeln?
    Ich möchte gern meine Daten von meinem alten Sony Z3 auf mein neues iPhone migrieren (wenn möglich Chats und Bilder).
    Ich würde mich sehr über jegliche Hilfe diesbezüglich freuen!

    Liebe Grüße,

    saenderss