summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2013-05-06 14:59:40 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-05-06 14:59:40 -0700
commitd3a57029e80073aa3c7dfe1dbc8945d32968f6ae (patch)
treeda125345bd88372a6b2d1f4744277fd508e16a22
parentd440ca76029ab6f0909fdd9495941e04b90e5da7 (diff)
parent1b0c9c95dc72ebeb8af73bc3ff44c313ebd788f4 (diff)
downloadbase-jb-mr1-dev.tar.gz
am 1b0c9c95: am 81c1d8d3: Ensure install-during-restore is like install-then-restorejb-mr1-dev
* commit '1b0c9c95dc72ebeb8af73bc3ff44c313ebd788f4': Ensure install-during-restore is like install-then-restore
-rw-r--r--services/java/com/android/server/BackupManagerService.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/services/java/com/android/server/BackupManagerService.java b/services/java/com/android/server/BackupManagerService.java
index 7ac314b8a7a9..6044eed8b3da 100644
--- a/services/java/com/android/server/BackupManagerService.java
+++ b/services/java/com/android/server/BackupManagerService.java
@@ -3591,7 +3591,16 @@ class BackupManagerService extends IBackupManager.Stub {
} else {
// So far so good -- do the signatures match the manifest?
Signature[] sigs = mManifestSignatures.get(info.packageName);
- if (!signaturesMatch(sigs, pkg)) {
+ if (signaturesMatch(sigs, pkg)) {
+ // If this is a system-uid app without a declared backup agent,
+ // don't restore any of the file data.
+ if ((pkg.applicationInfo.uid < Process.FIRST_APPLICATION_UID)
+ && (pkg.applicationInfo.backupAgentName == null)) {
+ Slog.w(TAG, "Installed app " + info.packageName
+ + " has restricted uid and no agent");
+ okay = false;
+ }
+ } else {
Slog.w(TAG, "Installed app " + info.packageName
+ " signatures do not match restore manifest");
okay = false;