Don't run full-data backups when backup is disabled

If the scheduled job fires but backup is disabled or the device is
not yet provisioned (i.e. has not yet finished going through setup),
bow out gracefully without running any backup operations.  Also, even
if a backup is directly invoked (e.g. via adb), verify again right
before we start collecting app data, and abandon the operation in
that path as well.

(This is redundant; having only the latter test would suffice, but
this lets us distinguish in the logging more easily.)

Finally, make sure that if we were waiting on setup before permitting
backup operations to begin, that we startup the full-data scheduling
as well as the [separate] key/value scheduling.

Bug 19197062

Change-Id: I3d8fb650c50f946d8ed7ac7170df361c707f2528
This commit is contained in:
Christopher Tate
2015-01-29 13:17:37 -08:00
parent 6efc3ac6d2
commit e77c12ba37

View File

@@ -382,6 +382,7 @@ public class BackupManagerService {
// we're now good to go, so start the backup alarms
if (MORE_DEBUG) Slog.d(TAG, "Now provisioned, so starting backups");
startBackupAlarmsLocked(FIRST_BACKUP_INTERVAL);
scheduleNextFullBackupJob();
}
}
}
@@ -3853,6 +3854,16 @@ public class BackupManagerService {
PackageInfo currentPackage;
try {
if (!mEnabled || !mProvisioned) {
// Backups are globally disabled, so don't proceed.
if (DEBUG) {
Slog.i(TAG, "full backup requested but e=" + mEnabled
+ " p=" + mProvisioned + "; ignoring");
}
mUpdateSchedule = false;
return;
}
IBackupTransport transport = getTransport(mCurrentTransport);
if (transport == null) {
Slog.w(TAG, "Transport not present; full data backup not performed");
@@ -4150,6 +4161,17 @@ public class BackupManagerService {
long now = System.currentTimeMillis();
FullBackupEntry entry = null;
if (!mEnabled || !mProvisioned) {
// Backups are globally disabled, so don't proceed. We also don't reschedule
// the job driving automatic backups; that job will be scheduled again when
// the user enables backup.
if (MORE_DEBUG) {
Slog.i(TAG, "beginFullBackup but e=" + mEnabled
+ " p=" + mProvisioned + "; ignoring");
}
return false;
}
if (DEBUG_SCHEDULING) {
Slog.i(TAG, "Beginning scheduled full backup operation");
}