Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

Keine SMS möglich nach Kopie von message.db
#1

Alles fing damit an dass ich die Daten der message.db ändern wollte. Warum ist jetzt erstmal unwichtig, auf jeden Fall hat das nicht so ganz funktioniert wie ich wollte. Also hab ich einfach wieder die alte unveränderte message.db zurück aufs Iphone kopiert.

Seit dem kann ich aber weder SMS empfangen noch senden. Beim Senden minimiert sich die SMS-App sofort. Also erstmal das Iphone wiederhergestellt und dabei gleich von 4.3 auf 4.3.3 geupdated und natürlich den neuen Jailbreak drauf. Funktionierte trotzdem nicht wie vorher.

Wenn ich jetzt die message.db komplett lösche und dann eine SMS schreibe wird diese komplett neu angelegt und alles funktioniert wie vorher. Natürlich will ich aber nicht auf meine alten gespeicherten SMS verzichten. Deshalb muss ich jetzt irgendwie wieder meine alte message.db aufs iPhone kopieren, aber auch so dass ich wieder normal SMS schreiben kann..

(Kurze Daten: Iphone 4, FW 4.3.3, redsn04 0.9.6rc16)

Hoffe es kann jemand helfen Smiley
Zitieren
#2

Verbinde mit Winscp und schau ob die Rechte für die message.db stimmen sonst funktioniert der sms versand nicht.

Gruß
Zitieren
#3

Hast du die Rechte eingestellt von der Datei? Sollte glaub 775 sein. Das Problem hatte ich auch mal und konnte es durch fixen der Rechte wieder hinbekommen.

Edit: Benna war schneller Zwinkern
Zitieren
#4

Wow, was ne schnelle Antwort! Großes Lob ans Forum, das sieht man nicht oft! Smiley


Und es klappt sofort wieder, danke Smiley


So nun würd ich nochmal zu meinem eigentlich Problem kommen, warum ich überhaupt die message.db kopiert hatte. Ich wollte einige SMS von meinem alten Handy ins iPhone einfügen. Also dachte ich mir ich editiere die message.db einfach mal.

Ich hab jedoch keine Ahnung von SQlite oder ähnlichem und das meiste was ich gemacht habe, war eher geraten:

Also ich hab die message.db kopiert und dann mit dem Programm "SQLite Data Browser" geöffnet. Über File>Export>Table as CSV File hab ich dann die Tabelle "message" aus der Datenbank raus kopiert. Diese konnte ich dann ganz einfach mit Excel öffnen.

Jetzt als Beispiel die letzen beiden Zeilen der Datei:

2045,"+49.....","1309350188","Text der SMS","2","0","","57","0","0","0","0","","de","","","1"

2046,"+49.....","1309351266","Text der SMS","2","0","","47","0","0","0","0","","de","","","1"


Also der Aufbau ist mir klar. Erst die Nummer der SMS, dann die Nummer des Absenders, dann der Timestamp, dann der Inahlt und dann noch diese Zahlenkombination die ich leider noch nicht ganz verstanden habe (was sagt die denn aus?)

Also hab ich einfach mal als Test eine ähnliche Zeile mit der Nummer 2047 dran gehangen.

Dannach wieder in SQLite die alte message-Tabelle gelöscht und über File>Import>Table from CSV File die veränderte Tabelle wieder zurück kopiert. Während vorher aber ganz viele Felder wie z.B. ROWID, address, date, text, flags usw. vorhanden waren, gibt es jetzt nurnoch das Feld "fields".

Nach dem zurück kopieren aufs iPhone wurde mir die neu eingefügt Nachricht auch nicht angezeigt.. :/

Wie ist es denn möglich dass ich diese Tabelle richtig editiere?
Zitieren
#5

Das ist halt eine Datenbank und keine Textdatei.
Die ROWID wird von der Datenbank selbst verwaltet und nach einem INSERT Statement selbständig gefüllt (in dem Fall der sms.db Datenbank über einen Trigger).
So wie es aussieht, hast Du die Tabelle "message" der sms.db komplett zerstört.
Wenn Du keine Sicherheitskopie mehr hast, war es das und die alten Nachrichten sind auch alle verschwunden.
Wie soll die SMS Applikation auch noch richtig funktionieren, wenn das Programm die benötigten Felder in der Tabelle nicht mehr findet? Da ist das File Rechte-Problem der sms.db Dein kleinstes Problem.

Ich möchte gar nicht wissen, aus welchen Motiven man einzelne SMS in eine Datenbank manuell einfügen möchte. Sieht immer so nach gefakter "Alibi-Beschaffung" aus. Naja. Nicht mein Bier.

Ohne das nötige Wissen über Datenbanken wird Dein Vorhaben schwer.

Der beste Weg ist sowieso direkt über SSH via Putty oder ähnlich die Datenbank direkt zu öffnen. Schau mal, ob Du
Code:
sqlite3 sms.db
ausführen kannst. Dann bist Du direkt auf der Datenbank und musst nicht hin- und her kopieren.

Wenn Du dann mal folgendes ausführst:
Code:
.header on
select * from message limit 5;
kannst Du alle Felder sehen.

Zitieren
#6

(02.07.2011, 02:54)N0KIA schrieb:  So wie es aussieht, hast Du die Tabelle "message" der sms.db komplett zerstört.
Wenn Du keine Sicherheitskopie mehr hast, war es das und die alten Nachrichten sind auch alle verschwunden.
Wie soll die SMS Applikation auch noch richtig funktionieren, wenn das Programm die benötigten Felder in der Tabelle nicht mehr findet? Da ist das File Rechte-Problem der sms.db Dein kleinstes Problem.

Nee, ich hatte doch ne Sicherheits-Kopie angelegt. Und die hab ich auch aufs iPhone zurück gespielt und trotzdem hat es nicht funktioniert, nach der Rechte Änderung aber schon. Das ist jetzt auch nichtmehr das Problem.

(02.07.2011, 02:54)N0KIA schrieb:  Ich möchte gar nicht wissen, aus welchen Motiven man einzelne SMS in eine Datenbank manuell einfügen möchte. Sieht immer so nach gefakter "Alibi-Beschaffung" aus. Naja. Nicht mein Bier.

Wie gesagt ich will meine SMS vom alten Handy aufs iPhone kopieren. Hat nichts mit Alibi-Beschaffung oder so zutun Biggrin

(02.07.2011, 02:54)N0KIA schrieb:  Ohne das nötige Wissen über Datenbanken wird Dein Vorhaben schwer.

Genau das war mein Problem, ich hab nicht wirklich Ahnung von Datenbanken. Bis auf nen bisschen MySQL mal vor 3 Jahren hab ich nie mit gearbeitet.


Also ich wollte das mal so versuchen wie du es beschrieben hast. Also ich hab einfach mal in WinSCP oben über "Open Session in PuTTY" das ganze hoffentlich richtig geöffnet. Dann halt Passwort eingegeben und dann den Befehl "sqlite3 sms.db" . Aber irgendwie bekomm ich die Fehledermeldung, dass der Befehl nicht gefunden wurde.

Hier mal ein Screenshot:

[Bild: puttyg.jpg]

Zitieren
#7

SQLite3 kannst Du Dir via Cydia nachinstallieren.
Du musst beim Aufruf dann aber noch im richtigen Verzeichnis sein:

/private/var/mobile/Library/SMS
Zitieren
#8

Gut, also "SQLite 3.x" sowie "SQLite 3.x Library" hab ich jetzt aus Cydia installiert. Da gibts noch Programme wie "libSQLiteManager", die brauch ich aber nicht, oder?

Also jetzt bekomm ich schonmal keine Fehlermeldung mehr, dass der Befehl nicht gefunden wurde, aber jetzt wird scheinbar die Tabelle "message" nicht gefunden, soweit ich das verstehe. Und irgendeine Datebank oder Felder oder so kann ich auch nicht sehe..

[Bild: puttyt.jpg]
Zitieren
#9

Tipp mal:
Code:
.tables
ein.

Dann siehst Du alle Tabellen. "message" sollte schon dabei sein.
Smiley
Zitieren
#10

Irgendwie scheint keiner der Befehle bei mir auch nur irgendeine Wirkung zu zeigen :helpsmilie:

[Bild: puttyz.jpg]

Wenn ich übrigens statt "sqlite3 sms.db" erstmal nur schreibe "sqlite3" und dann später noch "sms.db", werden alle Befehle hinter "...>" geschrieben. Wirkt für mich irgendwie so als ob das dann alles richtig auf die Datei sms.db wirkt, aber ist nur eine Vermutung, von Datenbanken und SQlite hab ich keine Ahnung. Und funktionieren tut es auch nicht..

[Bild: putty2w.jpg]
Zitieren
#11

Du musst zuvor auch schon in das Verzeichnis gehen:
/private/var/mobile/Library/SMS

und dann erst sqlite3 sms.db aufrufen, sonst erstellst du halt eine neue sms.db Datenbank im aktuellen Verzeichnis.
Zitieren
#12

Doch, ich war schon immer in dem Verzeichnis in WinSCP, aber trotzdem funktioniert der Befehl nicht.

(Rechtslick>"Grafik anzeigen", um das Bild richtig zu sehen)
[Bild: putty3.jpg]

Auch wenn ich den Pfand /private/var/mobile/Library/SMS nochmal in dem Fenster von PuTTY eingebe, wird mir nur angezeigt, dass dieses Verzeichnis existiert, aber sonst passiert auch nichts.

[Bild: putty4.jpg]
Zitieren
#13

Du musst das Verzeichnis im Terminal mit dem Befehl "CD" zuvor wechseln.

Code:
cd /private/var/mobile/Library/SMS
sqlite3 sms.db

Groß- und Kleinschreibung beachten(!)
Zitieren
#14

Super, der Befehl hat gefehlt, so funktionierts Smiley

Also mir werden dann alle Einträge aus der Tabelle message aufgelistet, ähnlich als wenn ich das ganze über einen Export in eine Excel-Tabelle mache.

Mir werden also die Daten angezeigt die vorhanden sind, aber editieren kann die diese ja trotzdem noch nicht. Wie würde das denn funktionieren?
Zitieren




Benutzer, die gerade dieses Thema anschauen: