Kopia zapasowa / przywracanie wiadomości SMS / MMS za pośrednictwem ADB na niezrootowanym urządzeniu?

10

Czy istnieje sposób na tworzenie kopii zapasowych / przywracanie wiadomości SMS i MMS przy użyciu ADB, gdy urządzenie nie jest zrootowane?

  • adb pulltutaj nie będzie działać, ponieważ odpowiednia baza danych ( /data/data/com.android.providers.telephony/databases/mmssms.db) nie może być odczytana przez ADB, jeśli nie działa w trybie niepewnym (root)
  • adb shell "cat /data/data/com.android.providers.telephony/databases/mmssms.db > /sdcard/mmssms.db nie działa też bez dostępu roota
  • adb backup z jakiegoś powodu nie obejmuje tej bazy danych na urządzeniu, z którym sprawdziłem (pusta kopia zapasowa - tylko 41 bajtów nagłówka kopii zapasowej w pliku wynikowym)

Szczególnie zastanawiam się, dlaczego adb backuptego nie obejmuje. Jeśli dzieje się tak z „powodów związanych z prywatnością”, to samo powinno mieć zastosowanie do bazy danych kontaktów - która jest wyraźnie utworzona.

Bibliografia:

Więc: jakieś rozwiązanie na urządzeniu niezrootowanym? Pamiętaj, że NIE proszę o rozwiązanie oparte na aplikacji. Jestem w pełni świadomy, że dostępnych jest kilka aplikacji do tego . W szczególności chcę „rozwiązania opartego na powłoce”, które będzie używane przez ADB.

Izzy
źródło
NIE pytam o rozwiązanie oparte na aplikacji ” - znowu kryminalistyka?
Firelord
1
Najlepiej tak (dla innych czytelników: preferowane rozwiązania nie wymagają niczego modyfikowanego na urządzeniu). Weź pod uwagę, że pytanie o urządzenie już informuje o „niewystarczającej pamięci”, więc nie można czegoś zainstalować. Ponieważ urządzenie zachowuje się również dziwnie w innym kontekście, konieczne jest przywrócenie ustawień fabrycznych - więc fajnie byłoby „zapisać” jak najwięcej danych. Udało mi się wykonać kopię zapasową większości rzeczy poprzez adb backup: kilka wyjątków, większość z nich jest ignorowalna, ale użytkownik bardzo lubi przechowywać SMS-y, których również nie uwzględniono.
Izzy
No hej! Przepraszam, że przeszkadzam, czy kiedykolwiek znalazłeś rozwiązanie tego problemu bez rootowania? BTW, doskonała lista aplikacji, dziękuję za ten link!
Gruber
1
@Gruber Nie, nadal nic nie znalazłem. // Cieszę się, że podoba Ci się moja lista aplikacji!
Izzy

Odpowiedzi:

6

Szczególnie zastanawiam się, dlaczego kopia zapasowa adb tego nie obejmuje.

Nie jest tak, że adb backupnie chce obejmować aplikacji com.android.providers.telephony. Ta aplikacja niewiele różni się od innych aplikacji systemowych opartych na tej aplikacji AndroidManifest.xml. Problem polega na tym, że flaga, którą programista zadeklarował w manifeście, jest z jakiegoś powodu domyślnym mechanizmem adb backup.

Ta flaga jest niczym innym jak android:allowBackup="false". To wyłącza aplikację zarówno z kopii zapasowej ADB, jak i przywracania. Google tutaj musi powiedzieć:

android:allowBackup

Określa, czy zezwolić aplikacji na uczestnictwo w infrastrukturze tworzenia kopii zapasowych i przywracaniu. Jeśli ten atrybut ma wartość false, nie zostanie wykonana kopia zapasowa ani przywracanie aplikacji, nawet w przypadku kopii zapasowej całego systemu, która w przeciwnym razie spowodowałaby zapisanie wszystkich danych aplikacji przez adb. Domyślna wartość tego atrybutu to true.

(Moje podkreślenie)

Sprawdź AndroidManifest.xmltę aplikację dla wersji Lollipop tutaj lub zobacz te dowody dla mojego Androida 4.2.1:

IMG: brak flagi zapasowej

Ta aplikacja oferuje coś więcej. Nie można nawet wyczyścić danych z ustawień → Aplikacje → Wszystkie aplikacje →,<THIS_APP> ponieważ również android:allowClearUserData="false"zostało zadeklarowane, a nie coś, co napotykamy co jakiś czas.

Jeśli dzieje się tak z „powodów związanych z prywatnością”, to samo powinno mieć zastosowanie do bazy danych kontaktów - która jest wyraźnie utworzona.

To dziwne, nie dlatego, że jesteś w stanie to zrobić, ale w jaki sposób twój system pozwala ci to zrobić tylko za pomocą adb backup!

Pamięć kontaktów jest obsługiwana przez aplikację „ContactsProvider”, która obsługuje pkg_name = com.android.providers.contacts. Flaga android:allowBackup="false"jest wyraźnie wymieniona w jej AndroidManifest.xmldla Jelly Bean (kliknij tutaj, aby zobaczyć inne wersje).

Czy używasz ICS lub jakiegokolwiek poprzednika JB?

Okazało się, że ta aplikacja nie posiada żadnych deklaracji tej flagi dla ICS tutaj . Możesz rzeczywiście usunąć tę tajemnicę, ponieważ nie mogę wykonać kopii zapasowej tej aplikacji w moim JB 4.2.1 zgodnie z definicją flagi i zawsze dostaje ten 41-bajtowy plik kopii zapasowej.


Podobnie jak w przypadku każdej innej metody wykonywania kopii zapasowej / przywracania SMS / MMS przy użyciu ADB bez dostępu do katalogu głównego - wszystkie ręce tutaj.

Firelord
źródło
Wiem, że to ta flaga. Ale zarówno ta aplikacja, jak i ADB są częścią systemu - nie mówimy tutaj o zewnętrznym dostawcy. Dla wyjaśnienia: urządzenie, o którym tu mówię, uruchamia JellyBean (4.1.2). Dzięki twojej podpowiedzi spróbuję ponownie z innymi urządzeniami (4.2 i 4.3). W odniesieniu do prywatności: może również istnieć wskazówka, aby użytkownik podał hasło. Dodatkowo SharedStorage może również zawierać „prywatne dane” - a ponadto Google zakłada, że ​​domyślnie chcę zsynchronizować moje kontakty / kalendarze podczas włączania konta Google, zamiast mnie pytać (więc nie ma możliwości zrezygnowania, jeśli dodasz je już tam) ).
Izzy
Grozi, że stanie się rantem: jeśli jest zbyt prywatny, aby można go było wykonać kopię zapasową - dlaczego zatem jest chroniony również przed „wyczyszczeniem danych”? „Nigdy nie przypisuj złośliwości, co można wytłumaczyć czystą głupotą”… // Tak więc nie jest możliwe bez roota: pozostawia tylko odpowiedni moduł Xposed („Utwórz kopię zapasową wszystkich aplikacji”). Które znowu musi zostać zainstalowane na urządzeniu - czego chciałem uniknąć ... Samo wyciągnięcie bazy danych (z rootem) byłoby obejściem - ale to nie pozwala na przywracanie na różnych urządzeniach (raz tego spróbowałem, nie było dobry pomysł, ponieważ uniemożliwiał korzystanie z SMS-ów, więc musiałem zresetować)
Izzy
1
Wiem @Izzy, że zdajesz sobie sprawę z takiej prostej flagi (nie stałeś się profesjonalistą z powietrza, ale dzięki badaniom i doświadczeniu :) ale inni szukający odpowiedzi na takie proste pytanie prawdopodobnie nie wiedzą o tym, i wszystko tych informacji nie nadaje się do komentarza. Właściwie miałem na myśli napisanie tego komentarza, ale zapomniałem o tym, pisząc tę ​​odpowiedź, przepraszam!
Firelord
1
// Jeśli chodzi o hasło, podczas gdy ADB zapewnia kopię zapasową chronioną hasłem, być może Google (IMO) uważa, że ​​uniemożliwienie dostępu do wrażliwych treści jest lepszą rzeczą niż zezwolenie na dostęp, który w przypadku utraty urządzenia może spowodować zrzut danych przez nieautoryzowane osoba, jeśli debugowanie USB zostało włączone przypadkowo, a następnie atak brutalny.
Firelord
1
- och, cóż, doszli do wniosku, że od początku, jak ograniczać wolność w imię biznesu, może być czymś innym. Zgłoszę coś dobrego (oczywiście nie rant), jeśli w jakiś sposób napotkam.
Firelord