Cadangkan / Kembalikan SMS / MMS melalui ADB pada perangkat yang tidak di-root?

10

Apakah ada cara untuk membuat cadangan / memulihkan pesan SMS dan MMS menggunakan ADB, ketika perangkat tidak di-root?

  • adb pulltidak akan berfungsi di sini, karena basis data yang sesuai ( /data/data/com.android.providers.telephony/databases/mmssms.db) tidak dapat dibaca oleh ADB jika tidak berjalan dalam mode tidak aman (root)
  • adb shell "cat /data/data/com.android.providers.telephony/databases/mmssms.db > /sdcard/mmssms.db tidak berfungsi baik tanpa akses root
  • adb backup untuk beberapa alasan tidak mencakup database ini pada perangkat yang saya periksa (cadangan kosong - hanya 41 byte header cadangan dalam file yang dihasilkan)

Saya terutama bertanya-tanya mengapa adb backuptidak membahas hal ini. Jika karena "alasan privasi", maka hal yang sama berlaku untuk basis data kontak - yang jelas-jelas didukung.

Referensi:

Jadi: Adakah solusi pada perangkat yang tidak di-root? Perhatikan bahwa saya TIDAK meminta solusi berbasis aplikasi. Saya sepenuhnya sadar ada beberapa aplikasi yang tersedia untuk ini . Saya secara khusus menginginkan "solusi berbasis shell", yang akan digunakan melalui ADB.

Izzy
sumber
" Saya TIDAK meminta solusi berbasis aplikasi " - Forensik lagi?
Firelord
1
Lebih disukai ya (untuk pembaca lain: solusi yang disukai tidak memerlukan apa pun yang dimodifikasi pada perangkat). Pertimbangkan perangkat yang dimaksud sudah melaporkan "memori tidak mencukupi", jadi tidak mungkin menginstal sesuatu. Karena perangkat ini juga berperilaku aneh dalam konteks lain, reset pabrik harus dilakukan - jadi alangkah baiknya untuk "menyimpan" data sebanyak mungkin. Saya dapat mem-backup sebagian besar hal melalui adb backup: beberapa pengecualian, sebagian besar diabaikan, tetapi pengguna sangat suka menyimpan SMS yang juga tidak tercakup.
Izzy
Hai yang disana! Maaf mengganggu apakah Anda pernah mendapatkan solusi untuk ini tanpa root? Daftar aplikasi Excellent BTW, terima kasih atas tautannya!
Gruber
1
@Ruber Tidak, masih tidak menemukan apa pun. // Senang Anda menyukai daftar aplikasi saya!
Izzy

Jawaban:

6

Saya terutama bertanya-tanya mengapa cadangan adb tidak mencakup ini.

Bukannya adb backuptidak mau menutup aplikasi com.android.providers.telephony. Aplikasi ini tidak jauh berbeda dari aplikasi sistem lain yang didasarkan pada aplikasi AndroidManifest.xml. Masalahnya adalah dengan bendera yang dinyatakan pengembangnya dalam manifes yang sebagai mekanisme default karena alasan tertentu adb backupharus dihormati.

Bendera ini tidak lain adalah android:allowBackup="false". Ini memilih keluar aplikasi dari cadangan dan pemulihan ADB. Google di sini harus mengatakan:

android:allowBackup

Apakah akan mengizinkan aplikasi untuk berpartisipasi dalam cadangan dan memulihkan infrastruktur. Jika atribut ini disetel ke false, tidak ada cadangan atau pengembalian aplikasi yang akan dilakukan, bahkan oleh cadangan sistem lengkap yang jika tidak akan menyebabkan semua data aplikasi disimpan melalui adb. Nilai default atribut ini benar.

(Penekanan milikku)

Lihat AndroidManifest.xmlaplikasi ini untuk versi Lollipop di sini , atau lihat bukti ini untuk Android 4.2.1 saya:

IMG: tidak ada flag cadangan

Masih ada lagi untuk aplikasi ini. Anda bahkan tidak dapat Menghapus Data dari Pengaturan → Aplikasi → Semua aplikasi →<THIS_APP> karena android:allowClearUserData="false"dinyatakan juga, bukan sesuatu yang kita temui setiap saat.

Jika karena "alasan privasi", maka hal yang sama berlaku untuk basis data kontak - yang jelas-jelas didukung.

Ini aneh, bukan bahwa Anda dapat melakukannya tetapi bagaimana sistem Anda bahkan memungkinkan Anda untuk melakukannya hanya dengan adb backup!

Penyimpanan kontak ditangani oleh aplikasi "KontakProvider" yang dijalankan oleh pkg_name = com.android.providers.contacts. Bendera android:allowBackup="false"disebutkan dengan jelas AndroidManifest.xmluntuk Jelly Bean (klik di sini untuk melihat versi lainnya).

Apakah Anda menggunakan ICS atau pendahulu JB?

Saya menemukan bahwa aplikasi ini tidak memiliki pernyataan bendera apa pun untuk ICS di sini . Anda benar-benar dapat menghapus misteri ini, karena saya tidak dapat mengambil cadangan aplikasi ini di JB 4.2.1 saya sesuai definisi bendera, dan selalu mendapatkan file cadangan 41 byte.


Adapun metode lain untuk mengambil backup / restore SMS / MMS menggunakan ADB tanpa akses root - semua tangan di sini.

Firelord
sumber
Saya sadar bahwa itu adalah bendera itu. Tetapi keduanya, aplikasi itu dan ADB adalah bagian dari sistem - kita tidak berbicara tentang vendor pihak ketiga di sini. Untuk klarifikasi: perangkat yang saya rujuk di sini menjalankan JellyBean (4.1.2). Berkat petunjuk Anda, saya akan mencoba lagi dengan perangkat saya yang lain (4.2 dan 4.3). Mengenai privasi: mungkin juga ada petunjuk untuk meminta pengguna memberikan kata sandi. Plus, SharedStorage mungkin juga berisi "data pribadi" - plus Google menganggap saya ingin menyinkronkan kontak / kalender saya secara default saat mengaktifkan akun Google, alih-alih bertanya kepada saya (jadi tidak ada cara untuk menyisih jika Anda menambahkannya dengan mereka yang sudah ada di sana). ).
Izzy
Dalam bahaya menjadi kata-kata kasar: jika terlalu pribadi untuk didukung - mengapa kemudian dilindungi terhadap "data yang jelas" juga? "Jangan pernah mengaitkan dengan kedengkian apa yang bisa dijelaskan dengan kebodohan murni" ... // Jadi, itu tidak mungkin tanpa root: hanya menyisakan modul Xposed yang sesuai ("Cadangkan semua Aplikasi"). Yang lagi-lagi perlu diinstal pada perangkat - yang ingin saya hindari ... Hanya dengan menarik basis data (dengan root) akan menjadi solusi - tetapi itu tidak memungkinkan pengembalian lintas perangkat (dicoba sekali, bukan ide bagus karena itu membuat SMS tidak dapat digunakan jadi saya harus mengatur ulang)
Izzy
1
Saya tahu @Izzy bahwa Anda sadar akan bendera sederhana seperti itu, (Anda tidak menjadi Pro kehabisan udara, tetapi dengan penelitian dan pengalaman :) tetapi orang lain mencari jawaban untuk pertanyaan sederhana seperti itu mungkin tidak tahu tentang hal itu, dan semua info ini tidak cocok untuk komentar. Sebenarnya saya ada dalam pikiran untuk menulis komentar ini, tetapi lupa bahwa pada akhirnya ketika menulis jawaban ini, maaf!
Firelord
1
// Adapun kata sandi, sementara ADB memang menyediakan cadangan yang dilindungi pass, mungkin Google (IMO) berpikir bahwa mencegah akses ke konten sensitif adalah hal yang lebih baik daripada mengizinkan akses yang jika perangkat hilang dapat mengakibatkan pembuangan data dengan tidak sah orang jika USB debugging diaktifkan karena kebetulan, diikuti oleh serangan brute force.
Firelord
1
- oh, well, mereka sudah memikirkannya sejak awal bagaimana membatasi kebebasan atas nama bisnis, mungkin sesuatu yang lain. Saya akan melaporkan sesuatu yang baik (bukan kata-kata kasar) jika saya menemukan sesuatu.
Firelord