Есть ли способ резервного копирования / восстановления SMS и MMS-сообщений с помощью ADB, когда устройство не рутировано?
adb pull
здесь не будет работать, так как/data/data/com.android.providers.telephony/databases/mmssms.db
ADB не может прочитать соответствующую базу данных ( ), если она не работает в небезопасном режиме (root)adb shell "cat /data/data/com.android.providers.telephony/databases/mmssms.db > /sdcard/mmssms.db
тоже не работает без рут-доступаadb backup
по какой-то причине не покрывает эту базу данных на устройстве, с которым я проверил (пустая резервная копия - только 41 байт заголовка резервной копии в результирующем файле)
Мне особенно интересно, почему adb backup
это не распространяется. Если это «по соображениям конфиденциальности», то то же самое должно относиться к базе данных контактов, которая явно резервируется.
Ссылки:
- Можно ли использовать adb для восстановления SMS-сообщений в постоянном «Безопасном режиме»? покрывает ту же тему - но кроме этого я не ограничен безопасным режимом
- резервное копирование полного содержимого смс / ммс через adb (на нашем дочернем сайте разработчиков) предназначено для «укоренившегося решения» (и, кроме того, немного старше: вопрос и ответы старше 3 лет)
Итак: какое-нибудь решение на некорневом устройстве? Обратите внимание, что я НЕ прошу решение для приложения. Я полностью осознаю, что для этого есть несколько приложений . Я специально хочу "решение на основе оболочки", которое будет использоваться через ADB.
adb backup
: несколько исключений, большинство из них игнорируются, но пользователь очень любит хранить SMS, которые также не были покрыты.Ответы:
Это не то,
adb backup
что не хочет покрывать приложениеcom.android.providers.telephony
. Это приложение не сильно отличается от любого другого системного приложения на его основеAndroidManifest.xml
. Проблема заключается в флаге, который его разработчик объявил в манифесте, который как механизм по умолчанию по какой-то причинеadb backup
обязан уважать.Этот флаг не что иное, как
android:allowBackup="false"
. Он отключает приложение от резервного копирования и восстановления ADB. Google здесь должен сказать:(Акцент мой)
Оформить заказ
AndroidManifest.xml
этого приложения для Lollipop версии здесь , или посмотрите это доказательство для моего Android 4.2.1:Там больше к этому приложению. Вы не можете даже Очистить данные из Настройки → Приложения → Все приложения →
<THIS_APP>
такandroid:allowClearUserData="false"
тоже объявлены, а не то, с чем мы сталкиваемся время от времени.Это странно, не то, что вы можете это сделать, но как ваша система даже позволяет вам делать это только с
adb backup
!Хранение контактов осуществляется приложением ContactsProvider, которое называется pkg_name =
com.android.providers.contacts
. Флагandroid:allowBackup="false"
явно упоминается для егоAndroidManifest.xml
Jelly Bean (нажмите здесь, чтобы увидеть другие версии).Вы используете ICS или какой-либо предшественник JB?
Я обнаружил, что это приложение не имеет никакого объявления этого флага для ICS здесь . Вы можете действительно разгадать эту загадку, так как я не могу создать резервную копию этого приложения в моем JB 4.2.1 согласно определению флага, и всегда получаю этот 41-байтовый файл резервной копии.
Как и для любого другого метода резервного копирования и восстановления SMS / MMS с использованием ADB без рут-доступа - все здесь.
источник