Gibt es eine Möglichkeit, SMS- und MMS-Nachrichten mit ADB zu sichern/wiederherstellen, wenn das Gerät nicht gerootet ist?
adb pull
funktioniert hier nicht, da die entsprechende Datenbank ( /data/data/com.android.providers.telephony/databases/mmssms.db
) nicht von ADB gelesen werden kann, wenn sie nicht im unsicheren (root) Modus läuftadb shell "cat /data/data/com.android.providers.telephony/databases/mmssms.db > /sdcard/mmssms.db
geht auch nicht ohne Root-Zugriffadb backup
deckt diese Datenbank aus irgendeinem Grund nicht auf dem Gerät ab, mit dem ich überprüft habe (leeres Backup – nur die 41 Bytes des Backup-Headers in der resultierenden Datei)Ich frage mich besonders, warum adb backup
dies nicht abgedeckt wird. Wenn es aus "Datenschutzgründen" ist, dann sollte das gleiche für die Kontaktdatenbank gelten - die eindeutig gesichert ist.
Verweise:
Also: Irgendeine Lösung auf einem nicht gerooteten Gerät? Beachten Sie, dass ich NICHT nach einer App-basierten Lösung frage. Ich bin mir bewusst, dass es dafür mehrere Apps gibt . Ich möchte speziell eine "Shell-basierte Lösung", die über ADB verwendet werden kann.
Ich frage mich besonders, warum adb backup dies nicht abdeckt.
Es ist nicht das , was adb backup
die App nicht abdecken möchte com.android.providers.telephony
. Diese App unterscheidet sich nicht wesentlich von anderen System-Apps, die auf ihrer AndroidManifest.xml
. Das Problem ist das Flag, das sein Entwickler im Manifest deklariert hat, das aus irgendeinem Grund als Standardmechanismus adb backup
respektiert werden muss.
Dieses Flag ist nichts anderes als android:allowBackup="false"
. Die App wird sowohl von der ADB-Sicherung als auch von der Wiederherstellung ausgeschlossen. Google muss hier sagen:
android:allowBackup
Ob die Anwendung an der Sicherungs- und Wiederherstellungsinfrastruktur teilnehmen darf. Wenn dieses Attribut auf „false“ gesetzt ist, wird niemals eine Sicherung oder Wiederherstellung der Anwendung durchgeführt, auch nicht durch eine vollständige Systemsicherung, die ansonsten dazu führen würde, dass alle Anwendungsdaten über adb gespeichert werden. Der Standardwert dieses Attributs ist wahr.
(Hervorhebung von mir)
Sehen Sie sich hierAndroidManifest.xml
die Lollipop-Version dieser App an oder sehen Sie sich diesen Beweis für mein Android 4.2.1 an:
Diese App hat noch mehr zu bieten. Sie können nicht einmal Daten aus Einstellungen → Apps → Alle Apps → löschen<THIS_APP>
, da android:allowClearUserData="false"
dies auch deklariert ist, was uns ab und zu nicht begegnet.
Wenn es aus "Datenschutzgründen" ist, dann sollte das gleiche für die Kontaktdatenbank gelten - die eindeutig gesichert ist.
Es ist bizarr, nicht, dass Sie dazu in der Lage wären, aber wie erlaubt Ihnen Ihr System, das nur mit adb backup
!
Die Kontaktspeicherung wird von der "ContactsProvider"-App verwaltet, die den pkg_name= trägt com.android.providers.contacts
. Die Flagge android:allowBackup="false"
wird deutlich AndroidManifest.xml
für Jelly Bean erwähnt (klicken Sie hier , um die anderen Versionen zu sehen).
Verwenden Sie ICS oder einen Vorgänger von JB?
Ich habe festgestellt, dass diese App hier keine Deklaration dieses Flags für ICS hat . Sie können dieses Rätsel tatsächlich lösen, da ich gemäß der Definition des Flags kein Backup dieser App in meinem JB 4.2.1 erstellen kann und immer diese 41-Byte-Backup-Datei bekomme.
Wie bei jeder anderen Methode zum Sichern/Wiederherstellen von SMS/MMS mit ADB ohne Root-Zugriff – alle Hände hoch hier.
Feuerlord
Izzy
adb backup
: wenige Ausnahmen, die meisten davon ignorierbar, aber der Benutzer behält sehr gerne SMS, die ebenfalls nicht abgedeckt wurden.Gruber
Izzy