备份代理签名的不匹配期间恢复
-
28-10-2019 - |
题
[编辑]来自所有信息,我已经增加似乎有可能,这是由我的应用程序,注册本身作为一个新的应用程序在相同的UID尽管是同样的建立在相同的。任何想法从哪里开始固定,这将是极大的赞赏
我已经实现了一个 BackupAgent
在我的应用程序的使用辅助类,因为我只想要回来了一个共同的偏好的文件。
这似乎是做这是备份的电话好了。如果我做了一个'bmgr运行'之后的程序做一个 dataChanged()
, 我得到以下在系统日志:
06-17 09:58:41.618: DEBUG/PerformBackupThread(303): starting agent for backup of BackupRequest{app=ApplicationInfo{40d66190 uk.co.randomicon.rstb} full=false}
06-17 09:58:41.618: DEBUG/BackupManagerService(303): awaiting agent for ApplicationInfo{40d66190 uk.co.randomicon.rstb}
06-17 09:58:41.628: DEBUG/BackupHelperDispatcher(6720): handling existing helper 'rstb_prefs' android.app.backup.SharedPreferencesBackupHelper@408864e8
06-17 09:58:41.628: DEBUG/BackupManagerService(303): agentConnected pkg=uk.co.randomicon.rstb agent=android.os.BinderProxy@40b2f328
06-17 09:58:41.638: DEBUG/PerformBackupThread(303): starting agent for backup of BackupRequest{app=ApplicationInfo{40d75cc0 uk.co.randomicon.rstb} full=false}
06-17 09:58:41.648: DEBUG/BackupManagerService(303): awaiting agent for ApplicationInfo{40d75cc0 uk.co.randomicon.rstb}
06-17 09:58:41.648: DEBUG/BackupHelperDispatcher(6720): handling existing helper 'rstb_prefs' android.app.backup.SharedPreferencesBackupHelper@40708660
06-17 09:58:41.648: DEBUG/BackupManagerService(303): agentConnected pkg=uk.co.randomicon.rstb agent=android.os.BinderProxy@40b08e50
06-17 09:58:41.668: DEBUG/PerformBackupThread(303): starting agent for backup of BackupRequest{app=ApplicationInfo{40d6b420 uk.co.randomicon.rstb} full=false}
06-17 09:58:41.668: DEBUG/BackupManagerService(303): awaiting agent for ApplicationInfo{40d6b420 uk.co.randomicon.rstb}
06-17 09:58:41.668: DEBUG/BackupHelperDispatcher(6720): handling existing helper 'rstb_prefs' android.app.backup.SharedPreferencesBackupHelper@40789930
06-17 09:58:41.668: DEBUG/BackupManagerService(303): agentConnected pkg=uk.co.randomicon.rstb agent=android.os.BinderProxy@40ae3b70
06-17 09:58:41.688: DEBUG/PerformBackupThread(303): starting agent for backup of BackupRequest{app=ApplicationInfo{40d92b38 uk.co.randomicon.rstb} full=false}
06-17 09:58:41.688: DEBUG/BackupManagerService(303): awaiting agent for ApplicationInfo{40d92b38 uk.co.randomicon.rstb}
06-17 09:58:41.688: DEBUG/BackupHelperDispatcher(6720): handling existing helper 'rstb_prefs' android.app.backup.SharedPreferencesBackupHelper@408521c0
06-17 09:58:41.688: DEBUG/BackupManagerService(303): agentConnected pkg=uk.co.randomicon.rstb agent=android.os.BinderProxy@40acfd20
06-17 09:58:41.708: DEBUG/PerformBackupThread(303): starting agent for backup of BackupRequest{app=ApplicationInfo{40dd4c50 uk.co.randomicon.rstb} full=false}
06-17 09:58:41.708: DEBUG/BackupManagerService(303): awaiting agent for ApplicationInfo{40dd4c50 uk.co.randomicon.rstb}
06-17 09:58:41.708: DEBUG/BackupManagerService(303): agentConnected pkg=uk.co.randomicon.rstb agent=android.os.BinderProxy@40ababb0
06-17 09:58:41.718: DEBUG/BackupHelperDispatcher(6720): handling existing helper 'rstb_prefs' android.app.backup.SharedPreferencesBackupHelper@40887ee0
06-17 09:58:41.728: DEBUG/PerformBackupThread(303): starting agent for backup of BackupRequest{app=ApplicationInfo{40d725b0 uk.co.randomicon.rstb} full=false}
06-17 09:58:41.728: DEBUG/BackupManagerService(303): awaiting agent for ApplicationInfo{40d725b0 uk.co.randomicon.rstb}
06-17 09:58:41.728: DEBUG/BackupManagerService(303): agentConnected pkg=uk.co.randomicon.rstb agent=android.os.BinderProxy@40aaa058
06-17 09:58:41.728: DEBUG/BackupHelperDispatcher(6720): handling existing helper 'rstb_prefs' android.app.backup.SharedPreferencesBackupHelper@40835bd0
06-17 09:58:41.738: DEBUG/PerformBackupThread(303): starting agent for backup of BackupRequest{app=ApplicationInfo{40da2cd8 uk.co.randomicon.rstb} full=false}
06-17 09:58:41.748: DEBUG/BackupManagerService(303): awaiting agent for ApplicationInfo{40da2cd8 uk.co.randomicon.rstb}
06-17 09:58:41.748: DEBUG/BackupHelperDispatcher(6720): handling existing helper 'rstb_prefs' android.app.backup.SharedPreferencesBackupHelper@408769b8
06-17 09:58:41.748: DEBUG/BackupManagerService(303): agentConnected pkg=uk.co.randomicon.rstb agent=android.os.BinderProxy@40a99a20
06-17 09:58:41.768: DEBUG/PerformBackupThread(303): starting agent for backup of BackupRequest{app=ApplicationInfo{40d451b8 uk.co.randomicon.rstb} full=false}
06-17 09:58:41.768: DEBUG/BackupManagerService(303): awaiting agent for ApplicationInfo{40d451b8 uk.co.randomicon.rstb}
06-17 09:58:41.768: DEBUG/BackupHelperDispatcher(6720): handling existing helper 'rstb_prefs' android.app.backup.SharedPreferencesBackupHelper@40708440
06-17 09:58:41.768: DEBUG/BackupManagerService(303): agentConnected pkg=uk.co.randomicon.rstb agent=android.os.BinderProxy@40a89c58
然而,即使立即做,做一个'bmgr恢复行动结果在下列在系统日志:
06-17 09:38:36.002: DEBUG/BackupManagerService(303): MSG_RUN_RESTORE observer=android.app.backup.IRestoreObserver$Stub$Proxy@40c0ec50
06-17 09:38:36.682: WARN/BackupManagerService(303): Signature mismatch restoring uk.co.randomicon.rstb
控制台输出的恢复是:
restoreStarting: 2 packages
onUpdate: 0 = uk.co.randomicon.rstb
restoreFinished: 0
done
任何想法?这显然是相同的版本和签名,因为我还没卸/消灭/任何东西。我所有的签署了备份服务,关键是在正确,等等。
编辑:看来它作为一个调试密钥签署的建立,但没有这样在一个出口,模糊,zipaligned释放钥匙的签署。这将使感觉到我是不是试图恢复的数据"调试"造成释放的生成,但我不是。
edit2:已经尝试改变的助手的名称、等等,我仍然得到相同的行为。调试密钥签署apk完美的作品,可以备、卸载和重新安装恢复。释放钥匙的签署apk这不会每次。我还是有点感到关切的重复备份的电话用不同@数字,尽管只有一个内部职能的呼吁。"调试"一个这不会太多,然而,所以它不可能完全是这一点。
输出的dumpsys备份显示我的包裹四次...
Backup Manager is enabled / provisioned / not pending init
Auto-restore is enabled
Last backup pass: 1308330167956 (now = 1308330359754)
next scheduled: 1308333767956
Available transports:
* com.google.android.backup/.BackupTransportService
com.android.inputmethod.latin - 112 state bytes
com.android.browser - 20 state bytes
com.android.providers.userdictionary - 8 state bytes
com.android.vending - 0 state bytes
android - 172 state bytes
com.zegoggles.smssync - 100 state bytes
com.smartandroidapps.audiowidgetpro - 416 state bytes
org.connectbot - 260 state bytes
net.cachapa.libra - 96 state bytes
com.icenta.sudoku.ui - 52 state bytes
com.android.providers.settings - 36 state bytes
@pm@ - 378 state bytes
uk.co.randomicon.rstb - 164 state bytes
android/com.android.internal.backup.LocalTransport
Pending init: 0
Participants:
uid: 1000
com.android.providers.settings
android
uid: 10000
com.android.providers.userdictionary
uid: 10002
com.android.browser
uid: 10022
com.android.inputmethod.latin
uid: 10045
com.android.vending
uid: 10050
uk.co.randomicon.rstb
uk.co.randomicon.rstb
uk.co.randomicon.rstb
uk.co.randomicon.rstb
uid: 10058
com.zegoggles.smssync
uid: 10063
org.connectbot
uid: 10084
net.cachapa.libra
uid: 10094
com.smartandroidapps.audiowidgetpro
uid: 10111
com.icenta.sudoku.ui
Ancestral packages: 8
com.android.browser
com.zegoggles.smssync
org.connectbot
android
com.android.vending
com.android.providers.userdictionary
com.android.inputmethod.latin
com.android.providers.settings
Ever backed up: 12
org.connectbot
com.zegoggles.smssync
com.android.browser
com.icenta.sudoku.ui
com.smartandroidapps.audiowidgetpro
com.android.vending
android
net.cachapa.libra
uk.co.randomicon.rstb
com.android.providers.userdictionary
com.android.inputmethod.latin
com.android.providers.settings
Pending backup: 0
edit3:卸载和重新安装一直不断增加新的实例是我的应用程序在相同的UID。它是相同的建立的相同程序相同,但它只是不断做出新的实例本身在此列。那是正确的行为?有看过的 BackupManager
来源,似乎(如果我读了它的权利),在调试模式的管理并不真正关心的签名,这可能是为什么它跑那好吧.
解决方案 3
它只是固定的本身。所有的多个实例是存在的,但它现在的作品。只是突然停止抱怨签字不匹配。
教训我猜是如果你确定你所做的是正确的,只是等待:P
其他提示
禁的备份设置隐私权,它删除所有备份。然后使它的一切会的工作,再次。
我有同样的问题 bmgr wipe <transport> <package>
没有解决。
什么样的帮助我得到 切换的备份 从 adb shell
:
bmgr enable false
bmgr enable true
bmgr run
顺便说一句.而我是"正常的"用户它未能与这个错误:
java.lang.SecurityException: uid 2000 does not have android.permission.UPDATE_APP_OPS_STATS.
切换到与超级用户 su
和操作的通过。