$HOME/.local/share/commhistory

Begonnen von Basel, 28 Jun 2022, 22:43

Vorheriges Thema - Nächstes Thema

BaselTopic starter

Hallo

gemäß https://jolla.zendesk.com/hc/en-us/articles/203569178-How-to-export-SMS-and-MMS-messages-from-Sailfish-OS-to-PC-Excel liegen in der Datenbank unter $HOME/.local/share/commhistory z. B. die SMS.

Kann man die vor'm Update einfach als Backup kopieren? Mir fehlt das Wissen zu Datenbanken. Und was außer SMS und MMS ist da noch drin gespeichert?

Grüße

Basel
Sony Xperia 10 Dual Sim

Sailfish OS 4.4.0.72

bionade24

Zitat von: Basel am 28 Jun 2022, 22:43Kann man die vor'm Update einfach als Backup kopieren? Mir fehlt das Wissen zu Datenbanken. Und was außer SMS und MMS ist da noch drin gespeichert?

Datenbanken lassen sich grundsätzlich wie alles andere auch einfach kopieren, am Ende schreiben die ja auch nur in Dateien.
Informativ Informativ x 1 View List

BaselTopic starter

#2
Die Frage ist ja mehr, ob die hinterher noch funktioniert. Betriebssysteme kann man ja auch nicht einfach 1:1 kopieren und dann zurückkopieren. Und kommt man auch notfalls so dran ohne SF OS?
Sony Xperia 10 Dual Sim

Sailfish OS 4.4.0.72

volker

#3
Ob Du an alle Daten einer db dran kommst liegt an möglichen Verschlüsselungen. Ich z.b. kann gezielt verschiedene Tabellen einer db, oder auch die komplette db dieses Forums wieder herstellen, weiß aber trotzdem nicht, wie Eure Passwörter sind - weil diese nur verschlüsselt vorliegen.
Auch manch andere Daten, sind in einer ansonsten klar lesbaren Tabelle, darin verschlüsselt und wenn ich die db für ein anderes Forum/Domain herstellen wollte, geht das nicht wegen der Sicherheitsprotokolle/Zertifikate.
Aber eine db am selben Platz wieder herstellen, wo sie mal war ist absolut kein Problem und eine Datenbank, die einfach nur eine db ist (ohne Zertifikate) kannst Du überall hin kopieren.

Ausgelesen wird sie dann mit einem Prog für die "Sprache" der db (z.B. SQL).
Informativ Informativ x 1 View List
Xperia XA2+ (Dualsim + MicroSD)
Sailfish OS 4.5.0.18

BaselTopic starter

#4
Hallo,

wenn ich " cp .local/share/commhistory/commhistory.db  $HOME" eingebe in der Konsole, kommt keine Kopie an im Verzeichnis wo man nach dem Login landet (für mich $HOME), wo ich die DB dann rüber ziehen könnte im Medienübertragungsmodus.

Was ich nicht herausfinden konnte, war, wie ich mir alle Tabellen in der DB anzeigen kann, um zu gucken, was ich noch exportieren will zum sichern.

Grüße

Basel
Sony Xperia 10 Dual Sim

Sailfish OS 4.4.0.72

volker

Der Pfad sieht bei mir anders aus (/home/nemo/.local/share/commhistory/commhistory.db). Müsste also bei Dir
"cp /home/defaultuser/.local/share/commhistory/commhistory.db $HOME" heißen. Dann müsste die Datei im Verzeichnis defaultuser stehen.

Tabellen in Datenbanken stelle ich eigentlich nur auf meinem Server (Hoster) wieder her. Da habe ich dann ein Programm dazu - nennt sich MySQLDumper. Um nur da mal rein zu schauen stellt jeder Hoster spezielle Progs zur Verfügung (PHPMyAdmin -> siehe Foto im Anhang). Dort kann man bei jeder Tabelle sich genauesten alles anschauen und natürlich auch exportieren.

Wenn ich lokal hier auf dem PC (Linux) mal rein schauen möchte, dann nehme ich den "DB Browser für SQLite" und wandel die .db in .sql um, was dann jeder Editor lesen kann. Musst mal schauen was es für Windows für Progs gibt.
Hier mal meine umgewandelte commhistory.db in SQL-Befehle (oberhalb werden die Tabellen erstellt und darunter stehen die Werte, womit sie dann gefüllt werden. Ich habe natürlich nur ein paar Zeilen der Values gezeigt und Telefonnummern ausgeixt.
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "Groups" (
"id" INTEGER,
"localUid" TEXT,
"remoteUids" TEXT,
"type" INTEGER,
"chatName" TEXT,
"lastModified" INTEGER UNSIGNED,
PRIMARY KEY("id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "Events" (
"id" INTEGER,
"type" INTEGER,
"startTime" INTEGER,
"endTime" INTEGER,
"direction" INTEGER,
"isDraft" INTEGER,
"isRead" INTEGER,
"isMissedCall" INTEGER,
"isEmergencyCall" INTEGER,
"status" INTEGER,
"bytesReceived" INTEGER,
"localUid" TEXT,
"remoteUid" TEXT,
"parentId" INTEGER,
"subject" TEXT,
"freeText" TEXT,
"groupId" INTEGER,
"messageToken" TEXT,
"lastModified" INTEGER,
"vCardFileName" TEXT,
"vCardLabel" TEXT,
"isDeleted" INTEGER,
"reportDelivery" INTEGER,
"validityPeriod" INTEGER,
"contentLocation" TEXT,
"messageParts" TEXT,
"headers" TEXT,
"readStatus" INTEGER,
"reportRead" INTEGER,
"reportedReadRequested" INTEGER,
"mmsId" INTEGER,
"isAction" INTEGER,
"hasExtraProperties" BOOL DEFAULT 0,
"hasMessageParts" BOOL DEFAULT 0,
FOREIGN KEY("groupId") REFERENCES "Groups"("id") ON DELETE CASCADE,
PRIMARY KEY("id" AUTOINCREMENT)
);
CREATE TABLE IF NOT EXISTS "EventProperties" (
"eventId" INTEGER,
"key" TEXT,
"value" BLOB,
PRIMARY KEY("eventId","key") ON CONFLICT REPLACE,
FOREIGN KEY("eventId") REFERENCES "Events"("id") ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS "MessageParts" (
"id" INTEGER,
"eventId" INTEGER,
"contentId" TEXT,
"contentType" TEXT,
"path" TEXT,
FOREIGN KEY("eventId") REFERENCES "Events"("id") ON DELETE SET NULL,
PRIMARY KEY("id" AUTOINCREMENT)
);
INSERT INTO "Groups" VALUES (86,'/org/freedesktop/Telepathy/Account/ring/tel/ril_0','XXXXX',0,NULL,0);
INSERT INTO "Groups" VALUES (98,'/org/freedesktop/Telepathy/Account/ring/tel/ril_0','Amazon',0,NULL,0);
INSERT INTO "Groups" VALUES (100,'/org/freedesktop/Telepathy/Account/ring/tel/ril_0','5500',0,NULL,0);
INSERT INTO "Groups" VALUES (101,'/org/freedesktop/Telepathy/Account/ring/tel/ril_0','XXXXX',0,NULL,0);
INSERT INTO "Groups" VALUES (110,'/org/freedesktop/Telepathy/Account/ring/tel/ril_0','Google',0,NULL,0);

Mag ich Mag ich x 1 View List
Xperia XA2+ (Dualsim + MicroSD)
Sailfish OS 4.5.0.18

BaselTopic starter

#6
Bei mir ist es noch nemo und nicht defaultuser.

Aber so habe ich eine Sicherung zum Zurückkopieren, falls eine Neuinstallation nötig ist.

Mit dem anderen Anliegen wollte ich herausfinden, was da alles genau drin ist. Aus deinem Extrakt wird man auch nicht schlauer und die "Tables" habe ich auch so über die Konsole gesehen, aber irgendwo müssen ja die SMS etc. sein. Vielleicht ist das eine Ebene unter table. Da bin ich nicht firm drin.
Sony Xperia 10 Dual Sim

Sailfish OS 4.4.0.72

volker

Du kannst die Tabellen auch einzeln als .csv exportieren. Beim rein schauen, habe ich festgestellt, dass die SMS in der Tabelle "Events" drin stehen. Wenn ich diese in eine .csv exportiere sieht sie dann so aus, wie unten angezeigt. Hier mal nur die Spaltenüberschriften der einzelnen Zellen und die erste Zeile (wenn Du die .csv in Excel öffnest ist das natürlich viel einfacher zu lesen und weiter unten in der Tabelle stehen dann die lesbaren Textnachrichten).
id,type,startTime,endTime,direction,isDraft,isRead,isMissedCall,isEmergencyCall,status,bytesReceived,localUid,remoteUid,parentId,subject,freeText,groupId,messageToken,lastModified,vCardFileName,vCardLabel,isDeleted,reportDelivery,validityPeriod,contentLocation,messageParts,headers,readStatus,reportRead,reportedReadRequested,mmsId,isAction,hasExtraProperties,hasMessageParts
157,3,1603537156,1603537296,1,0,1,0,0,0,0,/org/freedesktop/Telepathy/Account/ring/tel/ril_0,+49XXXXX,,,,,,1603537303,,,,0,0,,,,0,0,0
Dieses Exportieren von Tabellen nach .csv macht dann auch mein "DB Browser von SQLite". So etwas gab es auch damals für Windows.

...aber in der Realität bringt Dir das eigentlich nichts. Datenbank sichern und zurück kopieren - das ist alles was Du brauchst. Klar kann man Tabellen entpacken, manipulieren, und wieder in die .db importieren. Aber warum?
Mag ich Mag ich x 1 View List
Xperia XA2+ (Dualsim + MicroSD)
Sailfish OS 4.5.0.18

BaselTopic starter

Auf der Hilfeseite von Jolla wird der Export von SMS/MMS beschrieben. Damit sichere ich aber nicht alles. Daher war meine Überlegung, nicht Auszüge, sondern die ganze DB zu sichern, um sie notfalls auf ein neu installiertes Gerät zurück zu schieben. Das reicht aus, wie du sagst. Nur weiß ich damit noch nicht, was ich da alles sichere und in Umkehrung, was ich getrennt sichern muss. Daher meine Überlegung, dass man doch manuell herausfinden können muss, wofür die db genutzt wird.

Ich bitte mein mangelndes Ausdrucksvermögen zu entschuldigen. Danke für Geduld und Support.

Grüße

Basel
Sony Xperia 10 Dual Sim

Sailfish OS 4.4.0.72

volker

#9
Was ich in der Datenbank gesehen habe sind das tatsächlich auch sehr alte SMS, die ich schon längst auf dem Device gelöscht hatte. Entweder stehen in dieser Datenbank auch active/deaktive Flags drin, so dass das Handy weiß, was noch angezeigt werden muss, oder das steht in den anderen Dateien drin.
€dit: Sehe gerade, das Flag steht in der .db ("IsDeleted") - somit müsste das Handy wissen was er anzeigen soll, und was nicht.

...würde die andern beiden Dateien (commhistory.db-shm und commhistory.db-wal) trotzdem mitsichern. Mir selber ist das aber Schnuppe. ;)

Xperia XA2+ (Dualsim + MicroSD)
Sailfish OS 4.5.0.18

BaselTopic starter

Die Software gibt es auch für Windows: https://www.heise.de/download/product/db-browser-for-sqlite-41685/download

Du darfst diesen Dateianhang nicht ansehen.

Nichts, um sich mal eben ein Überblick zu verschaffen, was so alles drin ist in der DB. Warum würdest du die anderen beiden auch kopieren?

Dass da gelöschte SMS noch vorhanden sind, finde ich nicht gut.
Sony Xperia 10 Dual Sim

Sailfish OS 4.4.0.72

BaselTopic starter

Update:

Ende letzten Monats habe ich mal bei Jolla nachgefragt, welche Daten wie Anruf, SMS, Kontakte in /home/nemo/.local/share/commhistory/commhistory.db bzw. /home/defaultuser/.local/share/commhistory/commhistory.db gespeichert werden und ob es eine andere Datenbank gibt, die private Daten enthält. Außerdem ob es dazu eine Dokumentation gibt und ob es stimmt, das SMS und Anrufe nicht aus der DB gelöscht werden, sondern nur versteckt werden und wie man einzelne Anrufe/SMS komplett löschen könne.

Anfang Nov. hat Jolla geschrieben, dass sie mal gucken müssten und ich solle in der Zwischenzeit im Jolla-Forum nachfragen.

Seitdem ist nichts mehr passiert.
Sony Xperia 10 Dual Sim

Sailfish OS 4.4.0.72

volker

...ich denke mal, dass Du dann eben nur die Option hast wie vorgeschlagen. Halt im offiziellen Forum nachfragen.
Denn da sitzen ja auch Entwickler...
Xperia XA2+ (Dualsim + MicroSD)
Sailfish OS 4.5.0.18

BaselTopic starter

Für mich klang die Antwort so, als ob sie sich nochmal melden.
Sony Xperia 10 Dual Sim

Sailfish OS 4.4.0.72