Backup fehlerhaft - Chat und Medien export?

Stelle deine Frage öffentlich an die Threema-Forum-Community - über 4.600 Mitglieder helfen dir weiter. > Frage stellen <
  • Hallo zusammen

    Ich nutze Threema schon sehr lange und bin eigentlich sehr zufrieden damit. Meiner Frau habe ich die App für ihr Handy auch gekauft, was 8|schon einige Jahre her ist.

    Als sie ein neues Handy bekommen hat und kurz davor auch den Nachnamen gewechselt hat, haben wir ein neues Google Konto angelegt, aber Threema mit dem alten Konto runtergeladen, da es Google nicht geschafft hat, die gekauften Apps von einem Konto auf das andere zu transferieren.

    Somit lief ihr Huawei P20 Pro mit der Threema Version 3.7 ohne sich regelmäßig Updates zu ziehen. Das ging so lange gut, bis sie zu mir gekommen ist, mit der Threema Meldung, dass sie ein Update machen muss, ansonsten funktioniert nichts mehr.

    Mein Fehler war, dass ich mich nicht mehr an die zwei Konten Problematik erinnern konnte und nach dem Handy-Umzug das zweite Google Konto vom Handy entfernt hatte.

    Also habe ich zuerst ein Backup gemacht und wollte dann Threema neu installieren, konnte es jedoch nur im Google Play Store kaufen. Einmal drüber schlafen und mir ist eingefallen, dass der Kauf schon so lange zurück lag, dass es ihr altes Google Konto war. Also Konto eingebunden, Threema installiert und Backup eingespielt:?:

    ...naja, das Einspielen ist das Problem. :(

    Ich bekomme immer die Meldung, dass das Backup-Einspielen nicht möglich ist. Also Backup auf den PC gezogen und mit dem richtigen Passwort entpackt. Das ging eigentlich, aber mit der 7zip Info, dass ein bisschen was beschädigt ist. Einige der entpackten Dateien kann ich aber lesen (csv Dateien) oder die Bilder ansehen.

    Letztes Jahr, als wir das Handy umstellten hatte ich auch ein Backup gemacht, das habe ich nun kontrolliert und siehe da, das Backup aus 2019 hat 1.7GB, das Backup von vor ein paar Tagen hat nur 500MB. Der Backup Vorgang scheint also nicht funktioniert zu haben.


    Das Passwort war eigentlich nur 10 Zeichen lang und der Energiesparmodus für die App deaktiviert. Eigentlich wäre ich nach drei Tagen zip repair, Tests usw. so weit und würde einfach das alte Backup einspielen und gut ist...wäre da nicht der Fall, dass ich das Passwort vom alten Backup vernichtet und vergessen hab. :(

    Jetzt kommt meine Frage: Ist es möglich, dass ich meine Threema-Konversation an ihr Threema irgendwie übertragen kann, damit zumindest diese wiederhergestellt ist? Dasselbe könnte ich für ihre Mutter und eine Freundin machen und die Chatverläufe und sämtliche Medien der drei wichtigsten Personen für sie wären somit wiederhergestellt.

    Danke für eine Rückmeldung!

    VG

    EDIT:

    Auch der Threema Safe lässt sich nicht bei ihr wiederherstellen. Somit bekomme ich auch nicht mehr die ID. Passwort stimmt aber.

  • Wenn das Backup fehlerhaft ist, dann wurde der Prozess leider doch irgendwie beendet, als das Backup erstellt wurde. Je nach Handymodell gibt es aggressiver Optimierer, die man ggf auch gar nicht mehr deaktivieren kann. Leider.

    Welche Dateien (Medien, message_*csv,...) im Backup sind denn beschädigt? Du kannst recht allgemein antworten und solltest eventuelle IDs entfernen.

    Vielleicht lässt sich da noch etwas machen. Sind wahrscheinlich hauptsächlich die Medien, die darin zum letzten Backup fehlen...

    Zu deiner Frage: Jein.

    Ich würde empfehlen, dass die jeweiligen Kontakte den Chat exportieren und ihn deiner Frau zuschicken. Das ist dann ähnlich wie ein Archiv, welches jedoch nicht wieder importiert werden kann. Man kann es also nutzen, um den Chat nochmal zu lesen oder ähnliches, aber zurück in die App geht es nicht.

    Man könnte nun mit viel Aufwand und Mühe versuchen(!) den Chat aus deinem Daten Backup und den der jeweils anderen (wenn möglich und sie euch das Backup bereitstellen) zusammen zu basteln. Das birgt jedoch sehr viele Hürden und ist den Aufwand dann doch sicher nicht wert.

    Waren wichtige Nachrichten dabei, dann kann sie der Kontakt sicher erneut schicken - er müsste sie ja noch haben :)

    Warum Threema Safe nicht möglich ist, einzuspielen, da weiß ich gerade ohne weitere Meldung auch nichts zu...

  • und siehe da, das Backup aus 2019 hat 1.7GB, das Backup von vor ein paar Tagen hat nur 500MB. Der Backup Vorgang scheint also nicht funktioniert zu haben.

    Das liegt in der Regel an den Energiesparoptionen der Smartphones. Daher ist es wichtig, die Integrität von Backups generell zu überprüfen, bevor man irgendwas löscht. Das gilt nicht nur für Threema, das gilt im Allgemeinen. Siehe dazu Backup-Grundregeln (3-2-1-0-Regel):

    -> https://www.veeam.com/blog/de/how-to…eplication.html

    Zitat

    Die Ziffer 0 steht dabei für „0 Fehler“ bei der automatischen Überprüfung aller Backups auf Wiederherstellbarkeit

    Auch der Threema Safe lässt sich nicht bei ihr wiederherstellen. Somit bekomme ich auch nicht mehr die ID. Passwort stimmt aber.

    Vielleicht kann man wenigstens die ID wiederherstellen. Befindet sich im Archiv eine Datei namens "identity"? Ist sie mit einem Texteditor zu öffnen? Wenn ja, befinden sich dort 20 Zeichengruppen zu je vier Zeichen?

  • Hallo und vielen Dank für die zahlreichen Antworten!

    LtCdr Data : Ja, das mit dem Überprüfen mache ich eigentlich immer. Der Teufel liegt im "eigentlich", da ich zu dem Zeitpunkt etwas im Stress war und es nur nebenbei gemacht hatte, ging das leider unter. Ist sicherlich ein Fehler von mir gewesen, das nicht zu tun, was mich schon ärgert. Wobei mich viel mehr ärgert, dass mir das mit den zwei Google Konten nicht vorher eingefallen ist. Dann wäre es gar nicht soweit gekommen. :(

    Das mit der ID werde ich mir gleich mal ansehen. Thx!

    Mogli : 7-zip meldet

    1 "Unexpected end of data; Warnings: There are some data after the end of the payload data"

    2 "Data error : Wrong password? : message_media_xxx"

    Wobei ich hier eher denke, dass die Fehlermeldung 1 die Meldung 2 hervorruft. Denn der Rest geht ja entpacken. Nachdem die Juli2019 Sicherung 1.7GB hat und diese nur 500MB spricht sehr viel für ein schiefgegangenes Backup. Leider...und das habe ich übersehen in der Eile.

    jnL : message_media_ meldet er wie oben geschrieben zumindest bei einer. Der Rest - ca. 1.2GB - scheint einfach zu fehlen. Das mit dem Export habe ich versucht. Bricht bei mir ab, obwohl genügend Speicher verfügbar ist. Mein Backup hat ca. 6GB wobei 70% der Chat mit meiner Frau inkl. der Medien sein wird.

    Die Wiederherstellung des Backups mit meinem, bzw. weiterer Backups, auf welche ich Zugriff habe, würde mich da schon eher interessieren, auch wenn es relativ aufwändig ist. Gibt es dazu eine ungefähre Anleitung?

    Danke nochmals für den Support!

  • Zusatz:

    LtCdr Data : die Identity Datei ist dabei und lässt sich im Editor öffnen. Der Code ist wie von dir beschrieben 100 Zeichen (Bindestriche inkl.) lang. Damit konnte ich die Identity zumindest wiederherstellen. Merci!

    Jetzt wäre noch das Backup vom Chat und die Medien interessant.

  • 1 "Unexpected end of data; Warnings: There are some data after the end of the payload data"

    2 "Data error : Wrong password? : message_media_xxx"

    Die zweite Meldung - wenn es denn nur die eine ist - besagt, dass das gesendete/empfangene Medium message_media_xxx in ihrem Backup nicht mehr wiederhergestellt werden kann, da defekt bzw. nicht korrekt gepackt.

    Der "Rest", der fehlt, der fehlt auch weiterhin und ist unwiederbringlich weg.

    Wenn du dir wirklich DIE ARBEIT machen möchtest, dann nimm dir schon einmal Urlaub oder bastle dir ein Skript, was dir folgende Änderungen umsetzt.

    Du nimmst die message_ABCD1234.csv Datei aus dem Daten-Backup des Chatkontakts deiner Frau (z. B. aus deinem Backup die zum Chat mit deiner Frau passenden message_ABCD1234.csv). Du findest nun viele Zeilen vor, die in etwa so aussehen:

    Code
    "6c4f40118b4c05b0","a88983f9-bfde-44df-8df3-49caa472128a","0","1","1","","1573740935000","1573740938832","","TEXT","Test","0","0","",""

    Diese Zeile besagt an 3. Stelle (die 0), dass die Nachricht empfangen wurde (nicht selbst verschickt). Nun passt du sie wie folgt an:

    Code
    "6c4f40118b4c05b0","a88983f9-bfde-44df-8df3-49caa472128a","1","1","1","READ","1573740935000","1573740938832","1573740938832","TEXT","Test","0","0","",""

    Geändert wurde:

    3. Feld: 0 -> 1

    6. Feld: -> READ (sagt aus, dass die Nachricht gelesen wurde. Andere Optionen sind USERACK, USERDEL, SENT, FAILED)

    9. Feld: -> gleicher (bzw. eigentlich höherer) Zeitstempel als im Feld 8

    Das musst du nun für jede einzelne Nachricht umsetzen. Und das war nur der Weg "Kontakt sendet dir eine Nachricht", der Rückweg "Du sendest eine Nachricht an Kontakt" muss dann im

    3. Feld: 1 -> 0

    6. Feld: * -> (nichts)

    9. Feld: Zeitstempel löschen

    Wenn das erledigt ist, hast du schon mal den ersten Chat geschafft. Nun noch mit Freundin, Mutter, ........

    Das dann ggf. noch zeitlich in den bereits vorhandenen Chat einsortieren oder den nun neuen Chat unten an das alte Backup anhängen, dann kannst du alles wieder mit 7-Zip in ein .zip Archiv packen (DEFLATE, AES-Verschlüsselung, selbes Kennwort, ohne das Verzeichnis im Archiv) und das Backup hoffentlich erfolgreich einspielen.

    Die Medien dürften bei deinem Backup und dem Backup deiner Frau übrigens unter anderen IDs geführt und gespeichert sein, sodass du bei Bedarf dann all die benötigten Medien aus deinem Backup in ihres kopieren oder ggf. ihre entsprechend umbenennen (ID steht in der message_ABCD1234.csv).

  • Als iOS-Nutzer kann ich diese ganzen Backup-Probleme natürlich nur "von außen" beobachten. Es scheint mir jedoch ein generelles Problem zu existieren, dass -- aus unterschiedlichen Gründen -- letztendlich die Threema-App unbemerkt defekte (!) ZIP-Archive als Daten-Backup erstellt.

    Wäre es nicht sinnvoll, dass Threema nach Ende der Backup-Erstellung das generierte ZIP-Archiv nochmal auf integrität prüft (à la C:\> 7z.exe t backupfile.zip)? Könnten so fehlerhaft erstellte Archive nicht gleich erkannt werden und folglich böse Erwachen im Ernstfall vermieden werden?

  • In der Theorie hast du recht, andyg, in der Praxis sieht es jedoch wieder so aus, dass wenn der Prozess des Backups schon im Hintergrund beendet wurde, wie soll dann die Überprüfung komplett durchlaufen werden, ohne beendet zu werden?

    Leider ein Katz und Maus Spiel der Entwickler und Handyhersteller mit ihren angepassten Android Versionen.

  • Es scheint mir jedoch ein generelles Problem zu existieren, dass -- aus unterschiedlichen Gründen -- letztendlich die Threema-App unbemerkt defekte (!) ZIP-Archive als Daten-Backup erstellt.

    Die Gründe liegen hierbei fast ausschließlich(!) in den Energiesparoptionen. Bei Android ist es leider herstellerspezifisch besonders restriktiv eingestellt. Siehe dazu auch:

    -> https://dontkillmyapp.com/


    Wie man sieht, Huawei -- und so ein Gerät ist ja hier im Einsatz -- ist hier ganz vorne mit dabei:

    -> https://dontkillmyapp.com/huawei

  • Die Gründe liegen hierbei fast ausschließlich(!) in den Energiesparoptionen. Bei Android ist es leider herstellerspezifisch besonders restriktiv eingestellt. Siehe dazu auch:

    -> https://dontkillmyapp.com

    Ja, das ist leider richtig, das Threema eigentlich nichts dafür kann.
    Dennoch, oder gerade deswegen, ist es besonders wichtig, dass der Nutzer zumindest einen Hinweis bekommt, wenn das generierte Backup unbrauchbar ist. Denn wenn die Daten erst mal weg sind und sich dann erst herausstellt, dass nur ein kaputtes Backup vorhanden ist, ist es egal, ob jetzt Threema oder der Handy-Hersteller nun daran „Schuld“ ist—der Schaden ist angerichtet.

    In der neuesten Android Version endet das Backup auf .incomplete wenn das Backup nicht vollständig durchgelaufen ist.

    Super! Auf jeden Fall ein Schritt in die richtige Richtung! ?

  • Danke für die Anleitung.

    Ich dachte, dass ich mal klein anfange mit ein paar Tests. Folgend bin ich vorgegangen:

    - Nach der Wiederherstellung der identity hab' ich ein Backup gemacht und auf den PC gezogen.

    - Entpackt und aus dem korrupten Backup einen Chat mit einer Freundin, welcher vollständig scheint, in das neue Backup kopiert.

    - Zip mit 7-zip, DEFLATE und AES256 mit PW in den Backupordner hochkopiert.

    - ID gelöscht und Daten-Backup wiederhergestellt.

    Problem dabei: der Chat bleibt leer. Aber warum? Die ID des Kontaktes ist korrekt, da ich die Freundin auch bei mir in Threema gegengeprüft habe.

    Zweiter Versuch war, ihr etwas zu schreiben, Backup ziehen und den Text unten einzuhängen. Aber selbst da ist nichts zu sehen, bis auf die neue Nachricht.

    Was sagen die Felder "apiid" und "uid" aus?

    Irgendwo passt noch etwas nicht. :?:

  • Wenn du Dateien (gerade Chats) aus älteren Backups in ein neueres kopieren möchtest, schau dir bitte die settings Datei an, ob sie die gleiche Version zeigen. Wenn nicht, dann liegt es oft daran, dass es neue Felder in der CSV Datei gibt. Die musst du dann aus einem neueren Chatbackup ausfindig machen und die alte CSV dahingehend anpassen (wenn denn möglich und nicht Infos dazu fehlen).

  • Wenn du Dateien (gerade Chats) aus älteren Backups in ein neueres kopieren möchtest, schau dir bitte die settings Datei an, ob sie die gleiche Version zeigen. Wenn nicht, dann liegt es oft daran, dass es neue Felder in der CSV Datei gibt. Die musst du dann aus einem neueren Chatbackup ausfindig machen und die alte CSV dahingehend anpassen (wenn denn möglich und nicht Infos dazu fehlen).

    Danke für den Hinweis, aber ich hatte schon kontrolliert, ob die Feldanzahl ident ist.

    Wie Du schreibst, stimmt das schon. Das alte Backup von der 3.7er Version hat in den Settings "version","13", das neue Backup hat "version","14".


    Die Felder sind aber bei beiden ident:

    "apiid","uid","isoutbox","isread","issaved","messagestae","posted_at","created_at","modified_at","type","body","isstatusmessage","isqueued","caption"


    Ich werde jetzt mal versuchen, den Backup Eintrag einer Message für einen Kontakt zu verdoppeln. Mal sehen, ob ich dann zweimal dieselbe Nachricht sehe, aber irgendwo passt was noch nicht. Da hänge ich gerade, aber ansonsten ist es mit deinen Infos kein Problem die Chats aus meinem Backup wiederherzustellen denke ich. Auch der Aufwand hält sich in Grenzen, wenn ich mein Script fertig hab.

    Wie gesagt scheitere ich leider schon an dem simpelsten Wiederherstellen, wenn das funktioniert, sollte der Rest auch klappen.

    Vielleicht liegt es an den Feldern apiid und uid.

    uid steht wahrscheinlich für user-id, aber die ist in demselben Chatprotokoll immer unterschiedlich, also eher nicht. Auch die apiid ist immer eine andere. Das bringt mich zur Zeit noch nicht weiter, warum das alte funktionierende Protokoll sich nicht wiederherstellen lässt.?(

  • Vielleicht liegt es an den Feldern apiid und uid.

    Die uid ist eine eindeutige ID (unique id) zu jeder Nachricht, die beim Sender und Empfänger jedoch auch wieder unterschiedlich ist.

    Die apiid ist auch eine eindeutige ID je Nachricht, die jedoch auf Sender- und Empfänger-Seite gleich sein dürfte (hiermit wird in der aktuellen Beta gerade scheinbar etwas gewerkelt).

    Ich vermute, dass doch irgendwo ein , oder " vergessen wurde oder die Werte um ein Feld verschoben sind.

    Vielleicht hast du ja unkritische Beispiele von einer Nachricht aus dem Backup und einer Nachricht, die du hinzufügen möchtest?

  • Die uid ist eine eindeutige ID (unique id) zu jeder Nachricht, die beim Sender und Empfänger jedoch auch wieder unterschiedlich ist.

    Die apiid ist auch eine eindeutige ID je Nachricht, die jedoch auf Sender- und Empfänger-Seite gleich sein dürfte (hiermit wird in der aktuellen Beta gerade scheinbar etwas gewerkelt).

    Ich vermute, dass doch irgendwo ein , oder " vergessen wurde oder die Werte um ein Feld verschoben sind.

    Vielleicht hast du ja unkritische Beispiele von einer Nachricht aus dem Backup und einer Nachricht, die du hinzufügen möchtest?

    Hey!

    Hab' jetzt nochmals alles gecheckt und die Nachrichten sind okay.

    Aber, und das finde ich sehr interessant:

    Ich hatte den kompletten Ordner gezippt und auf das Handy kopiert. Wiederhergestellt hat er dann zwar die Nachrichten nach der Neuinstallation, aber nicht die reinkopierten Nachrichten und alle Bilder, aus dem alten Backup. Sogar die Wiederherstellung der ID hat funktioniert.


    Mir ist dann aufgefallen, dass ich immer den kompletten Ordner gezippt und hochgeladen habe, was natürlich Schwachsinn ist, also habe ich die einzelnen Dateien markiert, verpackt und hochgeladen und siehe da, bis auf die zwei großen Chats und ein großteil von diesen Medien sind alle anderen Chats und Bilder wieder verfügbar. :)

    Trotzdem interessant, dass die neuen Chats und Medien, sowie die ID wiederherstellbar war, der Rest aber nicht.


    Vielen Dank für deine Hilfe.

    Werde mich heute Abend an die Wiederherstellung meines Chats machen, was etwas mehr Aufwand als ist, aber zumindest kenn ich jetzt die Knackpunkte. Insofern ist es super, dass es so möglich ist, bei verlorenem Backup doch noch alles wiederherstellen zu können.


    Btw. ist mir bei der Backup Erstellung von meinem Backup (trotz abstellen aller Stromsparmaßnahmen) aufgefallen, dass 7zip meckert, dass der Header nicht okay beim zip-File ist. Keine Ahnung, ob es an der Größe des 6GB Backup liegt oder noch etwas beim Backup-Prozess dazwischen gepfuscht hat.

  • 7zip meckert, dass der Header nicht okay beim zip-File ist. Keine Ahnung, ob es an der Größe des 6GB Backup liegt

    Das ist mir zuletzt bei größeren Backups auch aufgefallen. Solange jedoch nur der Header angemeckert wird und keine weiteren CRC-Fehler gemeldet werden, dürfte es in Ordnung sein.

    Dass das Backup wiederhergestellt werden konnte, obwohl du den Ordner gezippt hast, finde ich sehr interessant und frage mich auch, wie das gehen konnte...

    Wenn du im Chatverlauf eine Nachricht findest, dessen Medium (Bild, Video, Datei, Audio) nicht angezeigt werden kann, dann schau einmal in der CSV-Datei nach, welche uid das Medium hat und ob du die Datei im Verzeichnis findest: message_media_<uid> (Einzelchat)

  • Erste Erfolgsmeldung: mein Chatprotokoll konnte ich schon teilweise wiederherstellen - 7500 von 32000 Zeilen.

    Ein paar Mal hatte sich Threema direkt beendet bei Chat anklicken. Anscheinend können "carriage return line feeds" nicht gut beim Reimport mit meinem Script verarbeitet werden, wenn sie innerhalb eines längeren Texts vorkommen, aber das lässt sich mit notepad++ schnell verarbeiten.

    Sobald die restlichen 20000 Zeilen drinnen sind, kommen noch die Fotos rüber und der größte Chat ist fertig.

    Btw. hab ich mich gegen ein Script entschieden. Das Ganze funktioniert relativ easy, wenn man marginalste Excel Kenntnisse besitzt und notepad++ installiert hat. Denke, dass ich beim zweiten großen (und letzten) Chat max. 1h für das Wiederherstellen benötigen werde.

    Danke nochmals an alle Rückmeldung, speziell dir jnL .

    Edit:

    Hab die Spalteninhalte von posted und created vertauscht, dann passen die Zeiten imho auch ganz gut.

  • Jetzt muss ich doch noch was fragen, nachdem ich gerade die Bilder wiederherstelle.

    In meinem Backup ist ein Eintrag mit "image", d.h. hier wurde ein Bild verschickt. Dieser Eintrag hat eine "apiid" und eine "uid".

    Wenn ich das Bild in Threema speichere, bekommt es den "apiid" Text inklusive "threema-YYYYMMDD-apiid.jpg".

    Suche ich das Bild in dem Backup Ordner, finde ich es dort nicht. Dort hat es einen komplett anderen Namen "message_media_" (soweit klar), aber dann kommt ein ID, die sich nicht im Chat Protokoll findet, z.B. "message_media_643314f4-eda8-481e-a891-1234567812345" (letzten 13 Zeichen unkenntlich gemacht).

    Wird hier irgendetwas umgerechnet? Apiid und Uid?