Несоответствие подписи агента резервного копирования во время восстановления

StackOverflow https://stackoverflow.com/questions/6383557

Вопрос

[Edit] Судя по всей добавленной мною информации, похоже, что это вызвано тем, что мое приложение регистрируется как новое приложение с тем же UID, несмотря на то, что это та же сборка в том же apk. Мы будем очень признательны за любые идеи, с чего начать исправление.

Я реализовал в своем приложении код BackupAgent с помощью класса Helper, так как я хочу создать резервную копию только общего файла настроек.

Похоже, резервные вызовы выполняются нормально. Если я выполняю команду «bmgr run» после того, как приложение выполняет генерацию кода кода, я получаю в logcat следующее:

родовое слово

Однако, даже если это будет сделано немедленно, выполнение действия 'bmgr restore' приведет к следующему в logcat:

родовое слово

Вывод консоли для восстановления:

родовое слово

Есть идеи? Очевидно, это та же версия и подпись, поскольку я не удалял / не стирал / ничего. Я зарегистрирован в службе резервного копирования, ключ введен правильно и т. Д.

edit: Кажется, он отлично работает как сборка, подписанная отладочным ключом, но не работает, как это, в экспортированном, обфусцированном, zipaligned, подписанном ключом выпуска apk. Для меня это имело бы смысл, если бы я пытался восстановить данные из отладочной сборки в выпускную сборку, но это не так.

edit2: Попробовали изменить имена помощников и т. д., и я все еще получаю то же самое поведение. APK с подписью отладочного ключа работает отлично, может выполнять резервное копирование, удаление, переустановку и автоматическое восстановление. Выпуск подписанный ключом apk делает это каждый раз. Меня все еще немного беспокоят повторяющиеся вызовы резервного копирования с разными номерами @, несмотря на только один внутренний вызов функции. Однако отладочная версия тоже делает это, так что это не может быть полностью так.

Вывод резервной копии dumpsys показывает мой пакет четыре раза ...

родовое слово

edit3: При удалении и повторной установке постоянно добавляются новые экземпляры моего приложения с одним и тем же UID. Это та же сборка того же приложения из того же apk, но она просто продолжает создавать новые экземпляры себя в этом списке. Это правильное поведение? Посмотрев на исходный код dataChanged(), может показаться (если я правильно его прочитал), что в режиме отладки диспетчер на самом деле не заботится о подписях, и, вероятно, поэтому он работает нормально.

Это было полезно?

Решение 3

Он просто исправился.Все многочисленные экземпляры есть, но сейчас это работает.Просто вдруг перестал жаловаться на несоответствие подписей.

Я предполагаю, что усвоенный урок заключается в том, что если вы уверены, что все сделали правильно, просто подождите: P

Другие советы

Отключить резервное копирование в настройках -> конфиденциальность, удаляются все резервные копии.Затем включите его, и все снова заработает.

У меня была та же проблема, и генерация кода кода не решила ее.

Мне помогло переключение резервного копирования с генерального кода тега:

родовое слово

Кстати.пока я был "нормальным" пользователем, он не смог с этой ошибкой:

родовое слово

Переключен на суперпользователя с кодом сгенерированного кода и выполненными операциями.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top