Remove BACKUP_DATA permission and associated checks
Any package can now participate in backup/restore, without requiring any manifest-declared permission. *Control* of the backup manager is still guarded by the BACKUP permission, which is signatureOrSystem. Change-Id: I116fcfcd4cd255e3c976330da1c4dea7d4faae9d
This commit is contained in:
@@ -896,9 +896,7 @@ class BackupManagerService extends IBackupManager.Stub {
|
||||
try {
|
||||
ApplicationInfo app = pkg.applicationInfo;
|
||||
if (((app.flags&ApplicationInfo.FLAG_ALLOW_BACKUP) == 0)
|
||||
|| app.backupAgentName == null
|
||||
|| (mPackageManager.checkPermission(android.Manifest.permission.BACKUP_DATA,
|
||||
pkg.packageName) != PackageManager.PERMISSION_GRANTED)) {
|
||||
|| app.backupAgentName == null) {
|
||||
packages.remove(a);
|
||||
}
|
||||
else {
|
||||
@@ -1282,15 +1280,6 @@ class BackupManagerService extends IBackupManager.Stub {
|
||||
for (BackupRequest request : mQueue) {
|
||||
Log.d(TAG, "starting agent for backup of " + request);
|
||||
|
||||
// Don't run backup, even if requested, if the target app does not have
|
||||
// the requisite permission
|
||||
if (mPackageManager.checkPermission(android.Manifest.permission.BACKUP_DATA,
|
||||
request.appInfo.packageName) != PackageManager.PERMISSION_GRANTED) {
|
||||
Log.w(TAG, "Skipping backup of unprivileged package "
|
||||
+ request.appInfo.packageName);
|
||||
continue;
|
||||
}
|
||||
|
||||
IBackupAgent agent = null;
|
||||
int mode = (request.fullBackup)
|
||||
? IApplicationThread.BACKUP_MODE_FULL
|
||||
@@ -1760,12 +1749,6 @@ class BackupManagerService extends IBackupManager.Stub {
|
||||
|
||||
if (DEBUG) Log.d(TAG, "processOneRestore packageName=" + packageName);
|
||||
|
||||
// Don't restore to unprivileged packages
|
||||
if (mPackageManager.checkPermission(android.Manifest.permission.BACKUP_DATA,
|
||||
packageName) != PackageManager.PERMISSION_GRANTED) {
|
||||
Log.d(TAG, "Skipping restore of unprivileged package " + packageName);
|
||||
}
|
||||
|
||||
// !!! TODO: get the dirs from the transport
|
||||
File backupDataName = new File(mDataDir, packageName + ".restore");
|
||||
File newStateName = new File(mStateDir, packageName + ".new");
|
||||
|
||||
Reference in New Issue
Block a user