Резервное копирование / восстановление SMS / MMS через ADB на устройстве без рута?

10

Есть ли способ резервного копирования / восстановления SMS и MMS-сообщений с помощью ADB, когда устройство не рутировано?

  • adb pullздесь не будет работать, так как /data/data/com.android.providers.telephony/databases/mmssms.dbADB не может прочитать соответствующую базу данных ( ), если она не работает в небезопасном режиме (root)
  • adb shell "cat /data/data/com.android.providers.telephony/databases/mmssms.db > /sdcard/mmssms.db тоже не работает без рут-доступа
  • adb backup по какой-то причине не покрывает эту базу данных на устройстве, с которым я проверил (пустая резервная копия - только 41 байт заголовка резервной копии в результирующем файле)

Мне особенно интересно, почему adb backupэто не распространяется. Если это «по соображениям конфиденциальности», то то же самое должно относиться к базе данных контактов, которая явно резервируется.

Ссылки:

Итак: какое-нибудь решение на некорневом устройстве? Обратите внимание, что я НЕ прошу решение для приложения. Я полностью осознаю, что для этого есть несколько приложений . Я специально хочу "решение на основе оболочки", которое будет использоваться через ADB.

Иззи
источник
« Я НЕ прошу решение для приложения » - снова криминалистика?
Повелитель огня
1
Желательно да (для других читателей: предпочтительные решения не требуют изменений на устройстве). Предположим, что данное устройство уже сообщает о «недостаточной памяти», поэтому установить что-либо невозможно. Поскольку устройство также ведет себя странно в другом контексте, необходимо выполнить сброс к заводским настройкам, поэтому было бы неплохо «сохранить» как можно больше данных. Я был в состоянии сделать резервную копию большинства вещей через adb backup: несколько исключений, большинство из них игнорируются, но пользователь очень любит хранить SMS, которые также не были покрыты.
Иззи
Привет всем! Извините, что беспокою вас когда-нибудь решение этого без рута? Кстати, отличный список приложений, спасибо за эту ссылку!
Грубер
1
@ Грубер Нет, до сих пор ничего не нашел. // Рад, что вам нравятся мои списки приложений!
Иззи

Ответы:

6

Мне особенно интересно, почему резервное копирование ADB не покрывает это.

Это не то, adb backupчто не хочет покрывать приложениеcom.android.providers.telephony . Это приложение не сильно отличается от любого другого системного приложения на его основе AndroidManifest.xml. Проблема заключается в флаге, который его разработчик объявил в манифесте, который как механизм по умолчанию по какой-то причине adb backupобязан уважать.

Этот флаг не что иное, как android:allowBackup="false". Он отключает приложение от резервного копирования и восстановления ADB. Google здесь должен сказать:

android:allowBackup

Разрешить ли приложению участвовать в инфраструктуре резервного копирования и восстановления. Если для этого атрибута задано значение false, резервное копирование или восстановление приложения никогда не будет выполняться, даже если резервное копирование всей системы приведет к сохранению всех данных приложения через adb. Значение этого атрибута по умолчанию - true.

(Акцент мой)

Оформить заказ AndroidManifest.xmlэтого приложения для Lollipop версии здесь , или посмотрите это доказательство для моего Android 4.2.1:

IMG: нет резервного флага

Там больше к этому приложению. Вы не можете даже Очистить данные из Настройки → Приложения → Все приложения →<THIS_APP> такandroid:allowClearUserData="false" тоже объявлены, а не то, с чем мы сталкиваемся время от времени.

Если это «по соображениям конфиденциальности», то то же самое должно относиться к базе данных контактов, которая явно резервируется.

Это странно, не то, что вы можете это сделать, но как ваша система даже позволяет вам делать это только с adb backup !

Хранение контактов осуществляется приложением ContactsProvider, которое называется pkg_name = com.android.providers.contacts. Флаг android:allowBackup="false"явно упоминается для его AndroidManifest.xmlJelly Bean (нажмите здесь, чтобы увидеть другие версии).

Вы используете ICS или какой-либо предшественник JB?

Я обнаружил, что это приложение не имеет никакого объявления этого флага для ICS здесь . Вы можете действительно разгадать эту загадку, так как я не могу создать резервную копию этого приложения в моем JB 4.2.1 согласно определению флага, и всегда получаю этот 41-байтовый файл резервной копии.


Как и для любого другого метода резервного копирования и восстановления SMS / MMS с использованием ADB без рут-доступа - все здесь.

Повелитель огня
источник
Я знаю, что это тот флаг. Но и это приложение, и ADB являются частью системы - здесь мы не говорим о стороннем поставщике. Для пояснения: на устройстве, на которое я ссылаюсь, работает JellyBean (4.1.2). Благодаря вашей подсказке я попробую еще раз с другими моими устройствами (4.2 и 4.3). Относительно конфиденциальности: также может быть подсказка, чтобы пользователь предоставил пароль. Кроме того, SharedStorage может также содержать «личные данные». Кроме того, Google предполагает, что я хочу синхронизировать свои контакты / календари по умолчанию при включении учетной записи Google вместо того, чтобы спрашивать меня (поэтому нет возможности отказаться, если вы добавляете их с ними уже там). ).
Иззи
Риск того, что он станет бессмысленным: если он слишком частный, чтобы его можно было сохранить - почему тогда он защищен также от «чистых данных»? «Никогда не приписывайте злонамеренности то, что можно объяснить чистой глупостью»… // Итак, это невозможно без рута: это оставляет только соответствующий модуль Xposed («Резервное копирование всех приложений»). Который снова должен быть установлен на устройстве - чего я хотел избежать ... Простое извлечение базы данных (с правами root) было бы обходным путем - но это не учитывает восстановление с нескольких устройств (пробовал один раз, не было хорошая идея, так как это сделало SMS непригодным для использования, поэтому мне пришлось сбросить настройки)
Иззи
1
Я знаю @Izzy, что вы знаете о таком простом флаге (вы не стали Pro из ничего, но благодаря исследованиям и опыту :), но другие, ищущие ответы на такой простой вопрос, вероятно, не знают об этом, и все этой информации не подходит для комментария. Я действительно имел в виду, чтобы написать этот комментарий, но забыл, что в конце, когда писал этот ответ, извините!
Повелитель огня
1
// Что касается пароля, в то время как ADB предоставляет резервную копию с защитой от пропусков, Google (IMO) может подумать, что предотвращение доступа к конфиденциальному контенту лучше, чем разрешение доступа, которое в случае потери устройства может привести к сбросу данных несанкционированным пользователем. человек, если отладка по USB была включена случайно, после чего последовала атака методом перебора.
Повелитель огня
1
- о, хорошо, они поняли это с самого начала, как ограничить свободу во имя бизнеса, может быть, что-то еще. Я сообщу о чем-то хорошем (конечно же, не в разглагольствованиях), если столкнусь как-нибудь.
Повелитель огня