Я запустил adb backup
все флаги резервного копирования на своем OnePlus One (который я постепенно обновил с 44S до 05Q). Затем я стер его, переустановил новый образ 05Q и попытался восстановить свои SMS и журналы вызовов.
Мне удалось восстановить историю SMS, скопировав /data/data/com.android.providers.telephony/databases
папку обратно на мой новый телефон и установив соответствующие разрешения. Но хоть убей, я не могу понять, как восстановить мои журналы вызовов — я не могу понять, из какой папки восстанавливать, и не могу понять, куда его восстанавливать . Мне кажется, что они могут быть разными, потому что я изначально обновил телефон с немного более старой версии Cyanogenmod, тогда как свежая копия совершенно новая, но в любом случае я не могу понять, как это сделать. У меня есть неприятное ощущение, что журнал вызовов, возможно, даже не был скопирован, но это было бы странно, потому что журнал SMS был...
Есть идеи?
Примечание . OP уже знает ответ, но следующая информация предназначена для тех душ, которых может беспокоить та же проблема.
CM11 в OnePlus One (будь то обновление 44S или 05Q) не предусматривает резервного копирования и восстановления журналов контактов и вызовов с помощью ADB.
Так что, к сожалению, ответ прост: ваши контакты и журналы вызовов не были заархивированы ADB, потому что разработчики CM11 не разрешили это, и поэтому вам следует искать другие способы их восстановления ( подсказка : контакты Google Синхронизация ).
Также, если это важно:
/data/data/com.android.providers.telephony/databases
здесь вы найдете базу данных для SMS/MMS/data/data/com.android.providers.contacts/databases/
где вы увидите контакты и журналы вызововТеперь вы можете прекратить чтение, если вас удовлетворил ответ, и я рекомендую заняться поиском некоторых методов восстановления, чтобы восстановить доступ к контактам и журналам вызовов.
Однако некоторым душам нужна причина для события, несмотря ни на что, так что у нас есть одна такая причина!
Почему был скопирован личный контент, такой как SMS/MMS, но не контакты?
Вы должны отметить, что с момента запуска Jelly Bean это не было обычным поведением, проявляемым в Android с открытым исходным кодом (AOSP), и ни в большинстве стандартных ПЗУ, чтобы разрешить резервное копирование указанного частного контента с помощью ADB, то есть как провайдера телефонии ( имеет базу данных SMS / MMS) и поставщик контактов (имеет журналы контактов и вызовов) обычно разрабатываются, чтобы не участвовать в резервном копировании и восстановлении инфраструктуры системы Android. Тем не менее, в CM11 есть некоторые изменения, которые позволяют создавать резервные копии SMS/MMS, но оставляют контакты и журналы вызовов в грязи.
Мой вывод гласит, что в CM11 флаг named android:allowBackup="false"
был в конечном итоге удален из поставщика телефонии , но остался нетронутым в поставщике контактов . Этот флаг всегда вводится под файлом AndroidManifest.xml
.
Google здесь должен сказать следующее об этом флаге:
android:allowBackup
Разрешить ли приложению участвовать в инфраструктуре резервного копирования и восстановления. Если для этого атрибута установлено значение false, никакое резервное копирование или восстановление приложения никогда не будет выполняться, даже путем резервного копирования всей системы, которое в противном случае привело бы к сохранению всех данных приложения через adb . Значение по умолчанию этого атрибута — true.
(выделено мной)
Однако по какой-то причине CM12 отменил это решение, и теперь оба приложения вообще не разрешают резервное копирование из ADB.
Если вы хотите увидеть источник указанных пакетов, взгляните на AndroidManifest.xml
провайдеров телефонии для:
Но для поставщика контактов и CM11 , и CM12 флаг не тронут.
Вы можете дополнительно проверить эту информацию из AndroidManifest.xml
обоих пакетов, которые у вас есть в вашем CM11. Вы обнаружите, что флаг присутствует в одном приложении, а не в другом.
Обратите внимание , что поведение по умолчанию, как указано в исходном коде Android , заключается в том, чтобы запретить резервное копирование в обоих приложениях для выпуска Kitkat.
Что касается того, почему разработчики CM11 внесли такие изменения, я бы посоветовал спросить их напрямую.
Готово!
Вы можете проверить мой аналогичный ответ, упомянутый здесь, на вопрос: Резервное копирование / восстановление SMS / MMS через ADB на устройстве без рута? .
Повелитель огня
/data/data/com.android.providers.contacts/databases/contacts2.db
(в таблицеcalls
) Я подтвердил это на своем Oneplus One под управлением CM12. Но я не думаю, что ADB мог сделать резервную копию этого места . Пожалуйста, подтвердите, сделал ли ADB резервную копию, так как мне придется пересмотреть свой связанный ответ. // О, и кажется, что у вас есть root-доступ, так почему вы не использовали какой-нибудь хороший инструмент для резервного копирования, например, Titanium Backup или что-то в этом роде? Просто спрашиваю. :)пользователь541686
databases/
, а скорееdb/
. Вот почему я задаю вопрос здесь. В этом конкретном случае я вижуcom.android.contacts
-- который я пытался восстановить (но в котором нет подпапки базы данных) -- но неcom.android.providers.contacts
. Ноcom.android.providers.telephony
был бэкап, и вроде восстанавливал СМС.пользователь541686
adb
было бы недостаточно.Повелитель огня
databases
на,db
но ADB использует эти краткие формы в качестве соглашений практически при любом резервном копировании. Это вообще не связано с CM11 или CM12.пользователь541686
Повелитель огня
пользователь541686
Повелитель огня