diff options
author | 2025-01-10 07:54:06 -0800 | |
---|---|---|
committer | 2025-01-10 07:54:06 -0800 | |
commit | f0e8cc6f23c5a38fd3881d5ed5cda325a46df39e (patch) | |
tree | f7010f94b529c9d9f0bd57759cd1303ad7d7fcce | |
parent | 7615f9b216e78d73b8df3e183d6c782d62cf448f (diff) | |
parent | 3682f501fb72835ec6a580377c2f610570573bd4 (diff) |
Merge changes I595fe26e,I117f7fe0 into main
* changes:
Move BackupWakeLock to its own file
Fix debug logging in the backup service
39 files changed, 492 insertions, 832 deletions
diff --git a/services/backup/java/com/android/server/backup/BackupAgentConnectionManager.java b/services/backup/java/com/android/server/backup/BackupAgentConnectionManager.java index 6ced096e8778..d8fbde4115d9 100644 --- a/services/backup/java/com/android/server/backup/BackupAgentConnectionManager.java +++ b/services/backup/java/com/android/server/backup/BackupAgentConnectionManager.java @@ -16,7 +16,7 @@ package com.android.server.backup; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; +import static com.android.server.backup.BackupManagerService.DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import android.annotation.Nullable; @@ -302,7 +302,7 @@ public class BackupAgentConnectionManager { // that the package being backed up doesn't get stuck in restricted mode until the // backup time-out elapses. for (int token : mOperationStorage.operationTokensForPackage(packageName)) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, mUserIdMsg + "agentDisconnected: will handleCancel(all) for token:" + Integer.toHexString(token)); diff --git a/services/backup/java/com/android/server/backup/BackupManagerConstants.java b/services/backup/java/com/android/server/backup/BackupManagerConstants.java index b753d01562ca..6aa5e2c05457 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerConstants.java +++ b/services/backup/java/com/android/server/backup/BackupManagerConstants.java @@ -16,8 +16,6 @@ package com.android.server.backup; -import static com.android.server.backup.BackupManagerService.DEBUG_SCHEDULING; - import android.app.AlarmManager; import android.app.job.JobInfo; import android.content.ContentResolver; @@ -168,85 +166,55 @@ public class BackupManagerConstants extends KeyValueSettingObserver { // group the calls of these methods in a block syncrhonized on // a reference of this object. public synchronized long getKeyValueBackupIntervalMilliseconds() { - if (DEBUG_SCHEDULING) { - Slog.v( - TAG, - "getKeyValueBackupIntervalMilliseconds(...) returns " - + mKeyValueBackupIntervalMilliseconds); - } + Slog.d(TAG, "getKeyValueBackupIntervalMilliseconds(...) returns " + + mKeyValueBackupIntervalMilliseconds); return mKeyValueBackupIntervalMilliseconds; } public synchronized long getKeyValueBackupFuzzMilliseconds() { - if (DEBUG_SCHEDULING) { - Slog.v( - TAG, - "getKeyValueBackupFuzzMilliseconds(...) returns " - + mKeyValueBackupFuzzMilliseconds); - } + Slog.d(TAG, "getKeyValueBackupFuzzMilliseconds(...) returns " + + mKeyValueBackupFuzzMilliseconds); return mKeyValueBackupFuzzMilliseconds; } public synchronized boolean getKeyValueBackupRequireCharging() { - if (DEBUG_SCHEDULING) { - Slog.v( - TAG, - "getKeyValueBackupRequireCharging(...) returns " - + mKeyValueBackupRequireCharging); - } + Slog.d(TAG, + "getKeyValueBackupRequireCharging(...) returns " + mKeyValueBackupRequireCharging); return mKeyValueBackupRequireCharging; } public synchronized int getKeyValueBackupRequiredNetworkType() { - if (DEBUG_SCHEDULING) { - Slog.v( - TAG, - "getKeyValueBackupRequiredNetworkType(...) returns " - + mKeyValueBackupRequiredNetworkType); - } + Slog.d(TAG, "getKeyValueBackupRequiredNetworkType(...) returns " + + mKeyValueBackupRequiredNetworkType); return mKeyValueBackupRequiredNetworkType; } public synchronized long getFullBackupIntervalMilliseconds() { - if (DEBUG_SCHEDULING) { - Slog.v( - TAG, - "getFullBackupIntervalMilliseconds(...) returns " - + mFullBackupIntervalMilliseconds); - } + Slog.d(TAG, "getFullBackupIntervalMilliseconds(...) returns " + + mFullBackupIntervalMilliseconds); return mFullBackupIntervalMilliseconds; } public synchronized boolean getFullBackupRequireCharging() { - if (DEBUG_SCHEDULING) { - Slog.v(TAG, "getFullBackupRequireCharging(...) returns " + mFullBackupRequireCharging); - } + Slog.d(TAG, "getFullBackupRequireCharging(...) returns " + mFullBackupRequireCharging); return mFullBackupRequireCharging; } public synchronized int getFullBackupRequiredNetworkType() { - if (DEBUG_SCHEDULING) { - Slog.v( - TAG, - "getFullBackupRequiredNetworkType(...) returns " - + mFullBackupRequiredNetworkType); - } + Slog.d(TAG, + "getFullBackupRequiredNetworkType(...) returns " + mFullBackupRequiredNetworkType); return mFullBackupRequiredNetworkType; } /** Returns an array of package names that should be notified whenever a backup finishes. */ public synchronized String[] getBackupFinishedNotificationReceivers() { - if (DEBUG_SCHEDULING) { - Slog.v( - TAG, - "getBackupFinishedNotificationReceivers(...) returns " - + TextUtils.join(", ", mBackupFinishedNotificationReceivers)); - } + Slog.d(TAG, "getBackupFinishedNotificationReceivers(...) returns " + TextUtils.join(", ", + mBackupFinishedNotificationReceivers)); return mBackupFinishedNotificationReceivers; } public synchronized long getWakelockTimeoutMillis() { - Slog.v(TAG, "wakelock timeout: " + mWakelockTimeoutMillis); + Slog.d(TAG, "wakelock timeout: " + mWakelockTimeoutMillis); return mWakelockTimeoutMillis; } } diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index 8804faf2d312..5edf08cc1d80 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -94,9 +94,7 @@ import java.util.Set; */ public class BackupManagerService extends IBackupManager.Stub implements BackupManagerInternal { public static final String TAG = "BackupManagerService"; - public static final boolean DEBUG = true; - public static final boolean MORE_DEBUG = false; - public static final boolean DEBUG_SCHEDULING = true; + public static final boolean DEBUG = false; @VisibleForTesting static final String DUMP_RUNNING_USERS_MESSAGE = "Backup Manager is running for users:"; @@ -187,9 +185,7 @@ public class BackupManagerService extends IBackupManager.Stub implements BackupM mUserRemovedReceiver, new IntentFilter(Intent.ACTION_USER_REMOVED)); UserHandle mainUser = getUserManager().getMainUser(); mDefaultBackupUserId = mainUser == null ? UserHandle.USER_SYSTEM : mainUser.getIdentifier(); - if (DEBUG) { - Slog.d(TAG, "Default backup user id = " + mDefaultBackupUserId); - } + Slog.d(TAG, "Default backup user id = " + mDefaultBackupUserId); } @VisibleForTesting diff --git a/services/backup/java/com/android/server/backup/BackupWakeLock.java b/services/backup/java/com/android/server/backup/BackupWakeLock.java new file mode 100644 index 000000000000..d839e7a1583b --- /dev/null +++ b/services/backup/java/com/android/server/backup/BackupWakeLock.java @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.backup; + +import static com.android.server.backup.BackupManagerService.TAG; + +import android.annotation.Nullable; +import android.os.PowerManager; +import android.os.WorkSource; +import android.util.Slog; + +/** + * Wrapper over {@link PowerManager.WakeLock} to prevent double-free exceptions on release() + * after quit(). + * + * <p>There should be a single instance of this class per {@link UserBackupManagerService}. + */ +public class BackupWakeLock { + private final PowerManager.WakeLock mPowerManagerWakeLock; + private boolean mHasQuit = false; + private final String mUserIdMessage; + private final BackupManagerConstants mBackupManagerConstants; + + public BackupWakeLock(PowerManager.WakeLock powerManagerWakeLock, int userId, + BackupManagerConstants backupManagerConstants) { + mPowerManagerWakeLock = powerManagerWakeLock; + mUserIdMessage = "[UserID:" + userId + "] "; + mBackupManagerConstants = backupManagerConstants; + } + + /** Acquires the {@link PowerManager.WakeLock} if hasn't been quit. */ + public synchronized void acquire() { + if (mHasQuit) { + Slog.d(TAG, mUserIdMessage + "Ignore wakelock acquire after quit: " + + mPowerManagerWakeLock.getTag()); + return; + } + // Set a timeout for the wakelock. Otherwise if we fail internally and never call + // release(), the device might stay awake and drain battery indefinitely. + mPowerManagerWakeLock.acquire(mBackupManagerConstants.getWakelockTimeoutMillis()); + Slog.d(TAG, mUserIdMessage + "Acquired wakelock:" + mPowerManagerWakeLock.getTag()); + } + + /** Releases the {@link PowerManager.WakeLock} if hasn't been quit. */ + public synchronized void release() { + if (mHasQuit) { + Slog.d(TAG, mUserIdMessage + "Ignore wakelock release after quit: " + + mPowerManagerWakeLock.getTag()); + return; + } + + if (!mPowerManagerWakeLock.isHeld()) { + Slog.w(TAG, mUserIdMessage + "Wakelock not held: " + mPowerManagerWakeLock.getTag()); + return; + } + + mPowerManagerWakeLock.release(); + Slog.d(TAG, mUserIdMessage + "Released wakelock:" + mPowerManagerWakeLock.getTag()); + } + + /** + * Returns true if the {@link PowerManager.WakeLock} has been acquired but not yet released. + */ + public synchronized boolean isHeld() { + return mPowerManagerWakeLock.isHeld(); + } + + /** Release the {@link PowerManager.WakeLock} till it isn't held. */ + public synchronized void quit() { + while (mPowerManagerWakeLock.isHeld()) { + Slog.d(TAG, mUserIdMessage + "Releasing wakelock: " + mPowerManagerWakeLock.getTag()); + mPowerManagerWakeLock.release(); + } + mHasQuit = true; + } + + /** Calls {@link PowerManager.WakeLock#setWorkSource} on the underlying wake lock. */ + public void setWorkSource(@Nullable WorkSource workSource) { + mPowerManagerWakeLock.setWorkSource(workSource); + } +} diff --git a/services/backup/java/com/android/server/backup/KeyValueAdbBackupEngine.java b/services/backup/java/com/android/server/backup/KeyValueAdbBackupEngine.java index b343ec8e709b..9f4407d99e18 100644 --- a/services/backup/java/com/android/server/backup/KeyValueAdbBackupEngine.java +++ b/services/backup/java/com/android/server/backup/KeyValueAdbBackupEngine.java @@ -180,9 +180,7 @@ public class KeyValueAdbBackupEngine { Slog.e(TAG, "Key-value backup failed on package " + packageName); return false; } - if (DEBUG) { - Slog.i(TAG, "Key-value backup success for package " + packageName); - } + Slog.i(TAG, "Key-value backup success for package " + packageName); return true; } catch (RemoteException e) { Slog.e(TAG, "Error invoking agent for backup on " + packageName + ". " + e); @@ -210,9 +208,7 @@ public class KeyValueAdbBackupEngine { AppMetadataBackupWriter writer = new AppMetadataBackupWriter(output, mPackageManager); - if (DEBUG) { - Slog.d(TAG, "Writing manifest for " + mPackage.packageName); - } + Slog.d(TAG, "Writing manifest for " + mPackage.packageName); writer.backupManifest( mPackage, @@ -223,9 +219,7 @@ public class KeyValueAdbBackupEngine { /* withApk */ false); mManifestFile.delete(); - if (DEBUG) { - Slog.d(TAG, "Writing key-value package payload" + mPackage.packageName); - } + Slog.d(TAG, "Writing key-value package payload" + mPackage.packageName); FullBackup.backupToTar(mPackage.packageName, FullBackup.KEY_VALUE_DATA_TOKEN, null, mDataDir.getAbsolutePath(), mBackupDataName.getAbsolutePath(), @@ -283,9 +277,7 @@ public class KeyValueAdbBackupEngine { if (!mBackupManagerService.waitUntilOperationComplete(token)) { Slog.e(TAG, "Full backup failed on package " + mCurrentPackage.packageName); } else { - if (DEBUG) { - Slog.d(TAG, "Full package backup success: " + mCurrentPackage.packageName); - } + Slog.d(TAG, "Full package backup success: " + mCurrentPackage.packageName); } } catch (IOException e) { Slog.e(TAG, "Error backing up " + mCurrentPackage.packageName + ": " + e); diff --git a/services/backup/java/com/android/server/backup/KeyValueAdbRestoreEngine.java b/services/backup/java/com/android/server/backup/KeyValueAdbRestoreEngine.java index 3184bd87601a..b68a0e42908b 100644 --- a/services/backup/java/com/android/server/backup/KeyValueAdbRestoreEngine.java +++ b/services/backup/java/com/android/server/backup/KeyValueAdbRestoreEngine.java @@ -89,10 +89,8 @@ public class KeyValueAdbRestoreEngine implements Runnable { ParcelFileDescriptor newState = ParcelFileDescriptor.open(newStateName, MODE_READ_WRITE | MODE_CREATE | MODE_TRUNCATE); - if (DEBUG) { - Slog.i(TAG, "Starting restore of package " + pkg + " for version code " + Slog.i(TAG, "Starting restore of package " + pkg + " for version code " + info.version); - } agent.doRestore(backupData, info.version, newState, mToken, mBackupManagerService.getBackupManagerBinder()); } catch (IOException e) { diff --git a/services/backup/java/com/android/server/backup/KeyValueBackupJob.java b/services/backup/java/com/android/server/backup/KeyValueBackupJob.java index 9a788be2f46d..30fdb65fc3cf 100644 --- a/services/backup/java/com/android/server/backup/KeyValueBackupJob.java +++ b/services/backup/java/com/android/server/backup/KeyValueBackupJob.java @@ -16,7 +16,6 @@ package com.android.server.backup; -import static com.android.server.backup.BackupManagerService.DEBUG_SCHEDULING; import static com.android.server.pm.PackageManagerService.PLATFORM_PACKAGE_NAME; import android.app.AlarmManager; @@ -92,9 +91,7 @@ public class KeyValueBackupJob extends JobService { if (delay <= 0) { delay = interval + new Random().nextInt((int) fuzz); } - if (DEBUG_SCHEDULING) { - Slog.v(TAG, "Scheduling k/v pass in " + (delay / 1000 / 60) + " minutes"); - } + Slog.d(TAG, "Scheduling k/v pass in " + (delay / 1000 / 60) + " minutes"); JobInfo.Builder builder = new JobInfo.Builder(getJobIdForUserId(userId), sKeyValueJobService) diff --git a/services/backup/java/com/android/server/backup/PackageManagerBackupAgent.java b/services/backup/java/com/android/server/backup/PackageManagerBackupAgent.java index 52108bf1568d..e17063ab7803 100644 --- a/services/backup/java/com/android/server/backup/PackageManagerBackupAgent.java +++ b/services/backup/java/com/android/server/backup/PackageManagerBackupAgent.java @@ -240,7 +240,7 @@ public class PackageManagerBackupAgent extends BackupAgent { try { if (!mExisting.contains(ANCESTRAL_RECORD_KEY)) { // The old state does not store info on ancestral record - Slog.v( + Slog.d( TAG, "No ancestral record version in the old state. Storing " + "ancestral record version key"); @@ -249,7 +249,7 @@ public class PackageManagerBackupAgent extends BackupAgent { upgradingAncestralRecordVersion = true; } else if (mStoredAncestralRecordVersion != ANCESTRAL_RECORD_VERSION) { // The current ancestral record version has changed from the old state - Slog.v( + Slog.d( TAG, "Ancestral record version has changed from old state. Storing" + "ancestral record version key"); diff --git a/services/backup/java/com/android/server/backup/ProcessedPackagesJournal.java b/services/backup/java/com/android/server/backup/ProcessedPackagesJournal.java index edc2379ff641..3a6f228a7f6f 100644 --- a/services/backup/java/com/android/server/backup/ProcessedPackagesJournal.java +++ b/services/backup/java/com/android/server/backup/ProcessedPackagesJournal.java @@ -46,7 +46,6 @@ import java.util.Set; final class ProcessedPackagesJournal { private static final String TAG = "ProcessedPackagesJournal"; private static final String JOURNAL_FILE_NAME = "processed"; - private static final boolean DEBUG = BackupManagerService.DEBUG; // using HashSet instead of ArraySet since we expect 100-500 elements range @GuardedBy("mProcessedPackages") @@ -136,9 +135,7 @@ final class ProcessedPackagesJournal { new BufferedInputStream(new FileInputStream(journalFile)))) { while (true) { String packageName = oldJournal.readUTF(); - if (DEBUG) { - Slog.v(TAG, " + " + packageName); - } + Slog.d(TAG, " + " + packageName); mProcessedPackages.add(packageName); } } catch (EOFException e) { diff --git a/services/backup/java/com/android/server/backup/TransportManager.java b/services/backup/java/com/android/server/backup/TransportManager.java index a792db0f7c78..d33bfecf1ba9 100644 --- a/services/backup/java/com/android/server/backup/TransportManager.java +++ b/services/backup/java/com/android/server/backup/TransportManager.java @@ -62,7 +62,7 @@ import java.util.function.Predicate; /** Handles in-memory bookkeeping of all BackupTransport objects. */ public class TransportManager { private static final String TAG = "BackupTransportManager"; - private static final boolean MORE_DEBUG = false; + private static final boolean DEBUG = false; @VisibleForTesting public static final String SERVICE_ACTION_TRANSPORT_HOST = "android.backup.TRANSPORT_HOST"; @@ -155,7 +155,7 @@ public class TransportManager { enabled = mPackageManager.getApplicationEnabledSetting(packageName); } catch (IllegalArgumentException ex) { // packageName doesn't exist: likely due to a race with it being uninstalled. - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, addUserIdToLogMessage(mUserId, "Package " + packageName + " was changed, but no longer exists.")); } @@ -163,7 +163,7 @@ public class TransportManager { } switch (enabled) { case COMPONENT_ENABLED_STATE_ENABLED: { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, addUserIdToLogMessage(mUserId, "Package " + packageName + " was enabled.")); } @@ -174,7 +174,7 @@ public class TransportManager { // Package is set to its default enabled state (as specified in its manifest). // Unless explicitly specified in manifest, the default enabled state // is 'enabled'. Here, we assume that default state always means enabled. - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, addUserIdToLogMessage(mUserId, "Package " + packageName + " was put in default enabled state.")); } @@ -182,7 +182,7 @@ public class TransportManager { return; } case COMPONENT_ENABLED_STATE_DISABLED: { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, addUserIdToLogMessage(mUserId, "Package " + packageName + " was disabled.")); } @@ -190,7 +190,7 @@ public class TransportManager { return; } case COMPONENT_ENABLED_STATE_DISABLED_USER: { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, addUserIdToLogMessage(mUserId, "Package " + packageName + " was disabled by user.")); } diff --git a/services/backup/java/com/android/server/backup/UserBackupManagerService.java b/services/backup/java/com/android/server/backup/UserBackupManagerService.java index ac1f50f85d64..5af2346650ed 100644 --- a/services/backup/java/com/android/server/backup/UserBackupManagerService.java +++ b/services/backup/java/com/android/server/backup/UserBackupManagerService.java @@ -19,8 +19,6 @@ package com.android.server.backup; import static android.content.pm.ApplicationInfo.PRIVATE_FLAG_BACKUP_IN_FOREGROUND; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.DEBUG_SCHEDULING; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import static com.android.server.backup.internal.BackupHandler.MSG_BACKUP_OPERATION_TIMEOUT; import static com.android.server.backup.internal.BackupHandler.MSG_FULL_CONFIRMATION_TIMEOUT; @@ -88,7 +86,6 @@ import android.os.RemoteException; import android.os.SELinux; import android.os.SystemClock; import android.os.UserHandle; -import android.os.WorkSource; import android.provider.Settings; import android.text.TextUtils; import android.util.ArraySet; @@ -174,88 +171,6 @@ import java.util.concurrent.atomic.AtomicInteger; /** System service that performs backup/restore operations. */ public class UserBackupManagerService { - /** - * Wrapper over {@link PowerManager.WakeLock} to prevent double-free exceptions on release() - * after quit(). - */ - public static class BackupWakeLock { - private final PowerManager.WakeLock mPowerManagerWakeLock; - private boolean mHasQuit = false; - private final int mUserId; - private final BackupManagerConstants mBackupManagerConstants; - - public BackupWakeLock(PowerManager.WakeLock powerManagerWakeLock, int userId, - BackupManagerConstants backupManagerConstants) { - mPowerManagerWakeLock = powerManagerWakeLock; - mUserId = userId; - mBackupManagerConstants = backupManagerConstants; - } - - /** Acquires the {@link PowerManager.WakeLock} if hasn't been quit. */ - public synchronized void acquire() { - if (mHasQuit) { - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, - "Ignore wakelock acquire after quit: " - + mPowerManagerWakeLock.getTag())); - return; - } - // Set a timeout for the wakelock. Otherwise if we fail internally and never call - // release(), the device might stay awake and drain battery indefinitely. - mPowerManagerWakeLock.acquire(mBackupManagerConstants.getWakelockTimeoutMillis()); - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, "Acquired wakelock:" + mPowerManagerWakeLock.getTag())); - } - - /** Releases the {@link PowerManager.WakeLock} if hasn't been quit. */ - public synchronized void release() { - if (mHasQuit) { - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, - "Ignore wakelock release after quit: " - + mPowerManagerWakeLock.getTag())); - return; - } - - if (!mPowerManagerWakeLock.isHeld()) { - Slog.w(TAG, addUserIdToLogMessage(mUserId, - "Wakelock not held: " + mPowerManagerWakeLock.getTag())); - return; - } - - mPowerManagerWakeLock.release(); - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, "Released wakelock:" + mPowerManagerWakeLock.getTag())); - } - - /** - * Returns true if the {@link PowerManager.WakeLock} has been acquired but not yet released. - */ - public synchronized boolean isHeld() { - return mPowerManagerWakeLock.isHeld(); - } - - /** Release the {@link PowerManager.WakeLock} till it isn't held. */ - public synchronized void quit() { - while (mPowerManagerWakeLock.isHeld()) { - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, "Releasing wakelock: " + mPowerManagerWakeLock.getTag())); - mPowerManagerWakeLock.release(); - } - mHasQuit = true; - } - } - // Persistently track the need to do a full init. private static final String INIT_SENTINEL_FILE_NAME = "_need_init_"; @@ -436,11 +351,7 @@ public class UserBackupManagerService { currentTransport = null; } - if (DEBUG) { - Slog.v( - TAG, - addUserIdToLogMessage(userId, "Starting with transport " + currentTransport)); - } + Slog.d(TAG, addUserIdToLogMessage(userId, "Starting with transport " + currentTransport)); TransportManager transportManager = new TransportManager(userId, context, transportWhitelist, currentTransport); @@ -450,11 +361,7 @@ public class UserBackupManagerService { HandlerThread userBackupThread = new HandlerThread("backup-" + userId, Process.THREAD_PRIORITY_BACKGROUND); userBackupThread.start(); - if (DEBUG) { - Slog.d( - TAG, - addUserIdToLogMessage(userId, "Started thread " + userBackupThread.getName())); - } + Slog.d(TAG, addUserIdToLogMessage(userId, "Started thread " + userBackupThread.getName())); return createAndInitializeService( userId, @@ -491,7 +398,7 @@ public class UserBackupManagerService { // if so delete expired events and do not print them to dumpsys BackupManagerMonitorDumpsysUtils backupManagerMonitorDumpsysUtils = new BackupManagerMonitorDumpsysUtils(); - if (backupManagerMonitorDumpsysUtils.deleteExpiredBMMEvents() && DEBUG){ + if (backupManagerMonitorDumpsysUtils.deleteExpiredBMMEvents()) { Slog.d(TAG, "BMM Events recorded for dumpsys have expired"); } return new UserBackupManagerService( @@ -766,20 +673,10 @@ public class UserBackupManagerService { mSetupComplete = setupComplete; } - public BackupWakeLock getWakelock() { + public BackupWakeLock getWakeLock() { return mWakelock; } - /** - * Sets the {@link WorkSource} of the {@link PowerManager.WakeLock} returned by {@link - * #getWakelock()}. - */ - @VisibleForTesting - public void setWorkSource(@Nullable WorkSource workSource) { - // TODO: This is for testing, unfortunately WakeLock is final and WorkSource is not exposed - mWakelock.mPowerManagerWakeLock.setWorkSource(workSource); - } - public Handler getBackupHandler() { return mBackupHandler; } @@ -937,7 +834,7 @@ public class UserBackupManagerService { } private void initPackageTracking() { - if (MORE_DEBUG) Slog.v(TAG, addUserIdToLogMessage(mUserId, "` tracking")); + if (DEBUG) Slog.v(TAG, addUserIdToLogMessage(mUserId, "` tracking")); // Remember our ancestral dataset mTokenFile = new File(mBaseStateDir, "ancestral"); @@ -959,7 +856,7 @@ public class UserBackupManagerService { } } catch (FileNotFoundException fnf) { // Probably innocuous - Slog.v(TAG, addUserIdToLogMessage(mUserId, "No ancestral data")); + Slog.d(TAG, addUserIdToLogMessage(mUserId, "No ancestral data")); } catch (IOException e) { Slog.w(TAG, addUserIdToLogMessage(mUserId, "Unable to read token file"), e); } @@ -1038,16 +935,12 @@ public class UserBackupManagerService { pkg.applicationInfo)) { schedule.add(new FullBackupEntry(pkgName, lastBackup)); } else { - if (DEBUG) { - Slog.i(TAG, addUserIdToLogMessage(mUserId, "Package " + pkgName + Slog.i(TAG, addUserIdToLogMessage(mUserId, "Package " + pkgName + " no longer eligible for full backup")); - } } } catch (NameNotFoundException e) { - if (DEBUG) { - Slog.i(TAG, addUserIdToLogMessage(mUserId, "Package " + pkgName + Slog.i(TAG, addUserIdToLogMessage(mUserId, "Package " + pkgName + " not installed; dropping from full backup")); - } } } @@ -1058,7 +951,7 @@ public class UserBackupManagerService { && mScheduledBackupEligibility.appIsEligibleForBackup( app.applicationInfo)) { if (!foundApps.contains(app.packageName)) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, addUserIdToLogMessage( @@ -1169,7 +1062,7 @@ public class UserBackupManagerService { if (!packageNames.isEmpty()) { String msg = "Stale backup journals: Scheduled " + packageNames.size() + " package(s) total"; - if (MORE_DEBUG) { + if (DEBUG) { msg += ": " + packageNames; } Slog.i(TAG, addUserIdToLogMessage(mUserId, msg)); @@ -1209,7 +1102,7 @@ public class UserBackupManagerService { public void recordInitPending( boolean isPending, String transportName, String transportDirName) { synchronized (mQueueLock) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, addUserIdToLogMessage( @@ -1276,20 +1169,11 @@ public class UserBackupManagerService { } private void onTransportRegistered(String transportName, String transportDirName) { - if (DEBUG) { - long timeMs = SystemClock.elapsedRealtime() - mRegisterTransportsRequestedTime; - Slog.d( - TAG, - addUserIdToLogMessage( - mUserId, - "Transport " - + transportName - + " registered " - + timeMs - + "ms after first request (delay = " - + INITIALIZATION_DELAY_MILLIS - + "ms)")); - } + long timeMs = SystemClock.elapsedRealtime() - mRegisterTransportsRequestedTime; + Slog.d(TAG, addUserIdToLogMessage(mUserId, + "Transport " + transportName + " registered " + timeMs + + "ms after first request (delay = " + INITIALIZATION_DELAY_MILLIS + + "ms)")); File stateDir = new File(mBaseStateDir, transportDirName); stateDir.mkdirs(); @@ -1313,7 +1197,7 @@ public class UserBackupManagerService { */ private BroadcastReceiver mPackageTrackingReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, addUserIdToLogMessage(mUserId, "Received broadcast " + intent)); } @@ -1344,7 +1228,7 @@ public class UserBackupManagerService { intent.getStringArrayExtra( Intent.EXTRA_CHANGED_COMPONENT_NAME_LIST); - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, addUserIdToLogMessage( @@ -1416,13 +1300,8 @@ public class UserBackupManagerService { mBackupHandler.post( () -> mTransportManager.onPackageAdded(packageName)); } catch (NameNotFoundException e) { - if (DEBUG) { - Slog.w( - TAG, - addUserIdToLogMessage( - mUserId, - "Can't resolve new app " + packageName)); - } + Slog.w(TAG, addUserIdToLogMessage(mUserId, + "Can't resolve new app " + packageName)); } } @@ -1454,7 +1333,7 @@ public class UserBackupManagerService { // Look for apps that define the android:backupAgent attribute List<PackageInfo> targetApps = allAgentPackages(); if (packageNames != null) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v( TAG, addUserIdToLogMessage( @@ -1464,7 +1343,7 @@ public class UserBackupManagerService { addPackageParticipantsLockedInner(packageName, targetApps); } } else { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, addUserIdToLogMessage(mUserId, "addPackageParticipantsLocked: all")); } addPackageParticipantsLockedInner(null, targetApps); @@ -1473,7 +1352,7 @@ public class UserBackupManagerService { private void addPackageParticipantsLockedInner(String packageName, List<PackageInfo> targetPkgs) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v( TAG, addUserIdToLogMessage( @@ -1489,10 +1368,10 @@ public class UserBackupManagerService { mBackupParticipants.put(uid, set); } set.add(pkg.packageName); - if (MORE_DEBUG) Slog.v(TAG, addUserIdToLogMessage(mUserId, "Agent found; added")); + if (DEBUG) Slog.v(TAG, addUserIdToLogMessage(mUserId, "Agent found; added")); // Schedule a backup for it on general principles - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, addUserIdToLogMessage( @@ -1512,7 +1391,7 @@ public class UserBackupManagerService { return; } - if (MORE_DEBUG) { + if (DEBUG) { Slog.v( TAG, addUserIdToLogMessage( @@ -1528,7 +1407,7 @@ public class UserBackupManagerService { if (set != null && set.contains(pkg)) { removePackageFromSetLocked(set, pkg); if (set.isEmpty()) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v( TAG, addUserIdToLogMessage( @@ -1549,7 +1428,7 @@ public class UserBackupManagerService { // Note that we deliberately leave it 'known' in the "ever backed up" // bookkeeping so that its current-dataset data will be retrieved // if the app is subsequently reinstalled - if (MORE_DEBUG) { + if (DEBUG) { Slog.v( TAG, addUserIdToLogMessage(mUserId, " removing participant " + packageName)); @@ -1627,15 +1506,13 @@ public class UserBackupManagerService { af.writeInt(-1); } else { af.writeInt(mAncestralPackages.size()); - if (DEBUG) { - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, "Ancestral packages: " + mAncestralPackages.size())); - } + Slog.d( + TAG, + addUserIdToLogMessage( + mUserId, "Ancestral packages: " + mAncestralPackages.size())); for (String pkgName : mAncestralPackages) { af.writeUTF(pkgName); - if (MORE_DEBUG) Slog.v(TAG, addUserIdToLogMessage(mUserId, " " + pkgName)); + if (DEBUG) Slog.v(TAG, addUserIdToLogMessage(mUserId, " " + pkgName)); } } } catch (IOException e) { @@ -1686,7 +1563,7 @@ public class UserBackupManagerService { } if (!shouldClearData) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, addUserIdToLogMessage( @@ -1761,7 +1638,7 @@ public class UserBackupManagerService { long token = mAncestralToken; synchronized (mQueueLock) { if (mCurrentToken != 0 && mProcessedPackagesJournal.hasBeenProcessed(packageName)) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, addUserIdToLogMessage( @@ -1770,7 +1647,7 @@ public class UserBackupManagerService { token = mCurrentToken; } } - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, addUserIdToLogMessage(mUserId, "getAvailableRestoreToken() == " + token)); } return token; @@ -1885,7 +1762,7 @@ public class UserBackupManagerService { EventLog.writeEvent(EventLogTags.BACKUP_REQUESTED, packages.length, kvBackupList.size(), fullBackupList.size()); - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, addUserIdToLogMessage( @@ -1909,7 +1786,7 @@ public class UserBackupManagerService { /** Cancel all running backups. */ public void cancelBackups() { mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "cancelBackups"); - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, addUserIdToLogMessage(mUserId, "cancelBackups() called.")); } final long oldToken = Binder.clearCallingIdentity(); @@ -1946,7 +1823,7 @@ public class UserBackupManagerService { + operationType)); return; } - if (MORE_DEBUG) { + if (DEBUG) { Slog.v( TAG, addUserIdToLogMessage( @@ -2025,12 +1902,8 @@ public class UserBackupManagerService { FullBackupJob.schedule(mUserId, mContext, latency, /* userBackupManagerService */ this); } else { - if (DEBUG_SCHEDULING) { - Slog.i( - TAG, - addUserIdToLogMessage( - mUserId, "Full backup queue empty; not scheduling")); - } + Slog.i(TAG, + addUserIdToLogMessage(mUserId, "Full backup queue empty; not scheduling")); } } } @@ -2098,13 +1971,8 @@ public class UserBackupManagerService { File stateDir = new File(mBaseStateDir, transportDirName); File pmState = new File(stateDir, PACKAGE_MANAGER_SENTINEL); if (pmState.length() <= 0) { - if (DEBUG) { - Slog.i( - TAG, - addUserIdToLogMessage( - mUserId, - "Full backup requested but dataset not yet initialized")); - } + Slog.i(TAG, addUserIdToLogMessage(mUserId, + "Full backup requested but dataset not yet initialized")); return false; } } catch (Exception e) { @@ -2143,7 +2011,7 @@ public class UserBackupManagerService { // 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) { + if (DEBUG) { Slog.i(TAG, addUserIdToLogMessage(mUserId, "beginFullBackup but enabled=" + mEnabled + " setupComplete=" + mSetupComplete + "; ignoring")); } @@ -2155,22 +2023,14 @@ public class UserBackupManagerService { final PowerSaveState result = mPowerManager.getPowerSaveState(ServiceType.FULL_BACKUP); if (result.batterySaverEnabled) { - if (DEBUG) { - Slog.i( - TAG, - addUserIdToLogMessage( - mUserId, "Deferring scheduled full backups in battery saver mode")); - } + Slog.i(TAG, addUserIdToLogMessage(mUserId, + "Deferring scheduled full backups in battery saver mode")); FullBackupJob.schedule(mUserId, mContext, keyValueBackupInterval, /* userBackupManagerService */ this); return false; } - if (DEBUG_SCHEDULING) { - Slog.i( - TAG, - addUserIdToLogMessage(mUserId, "Beginning scheduled full backup operation")); - } + Slog.i(TAG, addUserIdToLogMessage(mUserId, "Beginning scheduled full backup operation")); // Great; we're able to run full backup jobs now. See if we have any work to do. synchronized (mQueueLock) { @@ -2193,12 +2053,8 @@ public class UserBackupManagerService { // have emptied the queue. if (mFullBackupQueue.size() == 0) { // no work to do so just bow out - if (DEBUG) { - Slog.i( - TAG, - addUserIdToLogMessage( - mUserId, "Backup queue empty; doing nothing")); - } + Slog.i(TAG, + addUserIdToLogMessage(mUserId, "Backup queue empty; doing nothing")); runBackup = false; break; } @@ -2207,7 +2063,7 @@ public class UserBackupManagerService { String transportName = mTransportManager.getCurrentTransportName(); if (!fullBackupAllowable(transportName)) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, addUserIdToLogMessage( @@ -2226,7 +2082,7 @@ public class UserBackupManagerService { runBackup = (timeSinceRun >= fullBackupInterval); if (!runBackup) { // It's too early to back up the next thing in the queue, so bow out - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, addUserIdToLogMessage( @@ -2245,7 +2101,7 @@ public class UserBackupManagerService { // The head app isn't supposed to get full-data backups [any more]; // so we cull it and force a loop around to consider the new head // app. - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, addUserIdToLogMessage( @@ -2269,17 +2125,11 @@ public class UserBackupManagerService { final long nextEligible = System.currentTimeMillis() + BUSY_BACKOFF_MIN_MILLIS + mTokenGenerator.nextInt(BUSY_BACKOFF_FUZZ); - if (DEBUG_SCHEDULING) { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Slog.i( - TAG, - addUserIdToLogMessage( - mUserId, - "Full backup time but " - + entry.packageName - + " is busy; deferring to " - + sdf.format(new Date(nextEligible)))); - } + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Slog.i(TAG, addUserIdToLogMessage(mUserId, + "Full backup time but " + entry.packageName + + " is busy; deferring to " + sdf.format( + new Date(nextEligible)))); // This relocates the app's entry from the head of the queue to // its order-appropriate position further down, so upon looping // a new candidate will be considered at the head. @@ -2319,14 +2169,9 @@ public class UserBackupManagerService { } if (!runBackup) { - if (DEBUG_SCHEDULING) { - Slog.i( - TAG, - addUserIdToLogMessage( - mUserId, - "Nothing pending full backup or failed to start the " - + "operation; rescheduling +" + latency)); - } + Slog.i(TAG, addUserIdToLogMessage(mUserId, + "Nothing pending full backup or failed to start the " + + "operation; rescheduling +" + latency)); final long deferTime = latency; // pin for the closure FullBackupJob.schedule(mUserId, mContext, deferTime, /* userBackupManagerService */ this); @@ -2360,12 +2205,7 @@ public class UserBackupManagerService { } } if (pftbt != null) { - if (DEBUG_SCHEDULING) { - Slog.i( - TAG, - addUserIdToLogMessage( - mUserId, "Telling running backup to stop")); - } + Slog.i(TAG, addUserIdToLogMessage(mUserId, "Telling running backup to stop")); pftbt.handleCancel(true); } } @@ -2376,7 +2216,7 @@ public class UserBackupManagerService { /** Used by both incremental and full restore to restore widget data. */ public void restoreWidgetData(String packageName, byte[] widgetData) { // Apply the restored widget state and generate the ID update for the app - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, addUserIdToLogMessage(mUserId, "Incorporating restored widget data")); } AppWidgetBackupBridge.restoreWidgetState(packageName, widgetData, mUserId); @@ -2412,7 +2252,7 @@ public class UserBackupManagerService { // one already there, then overwrite it, but no harm done. BackupRequest req = new BackupRequest(packageName); if (mPendingBackups.put(packageName, req) == null) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d( TAG, addUserIdToLogMessage( @@ -2495,7 +2335,7 @@ public class UserBackupManagerService { public void initializeTransports(String[] transportNames, IBackupObserver observer) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP, "initializeTransport"); - Slog.v( + Slog.d( TAG, addUserIdToLogMessage( mUserId, "initializeTransport(): " + Arrays.asList(transportNames))); @@ -2517,7 +2357,7 @@ public class UserBackupManagerService { public void setAncestralSerialNumber(long ancestralSerialNumber) { mContext.enforceCallingPermission(android.Manifest.permission.BACKUP, "setAncestralSerialNumber"); - Slog.v( + Slog.d( TAG, addUserIdToLogMessage( mUserId, "Setting ancestral work profile id to " + ancestralSerialNumber)); @@ -2571,13 +2411,8 @@ public class UserBackupManagerService { /** Clear the given package's backup data from the current transport. */ public void clearBackupData(String transportName, String packageName) { - if (DEBUG) { - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, - "clearBackupData() of " + packageName + " on " + transportName)); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, + "clearBackupData() of " + packageName + " on " + transportName)); PackageInfo info; try { @@ -2601,7 +2436,7 @@ public class UserBackupManagerService { } else { // a caller with full permission can ask to back up any participating app // !!! TODO: allow data-clear of ANY app? - if (MORE_DEBUG) { + if (DEBUG) { Slog.v( TAG, addUserIdToLogMessage( @@ -2612,7 +2447,7 @@ public class UserBackupManagerService { if (apps.contains(packageName)) { // found it; fire off the clear request - if (MORE_DEBUG) { + if (DEBUG) { Slog.v( TAG, addUserIdToLogMessage(mUserId, "Found the app - running clear process")); @@ -2657,25 +2492,19 @@ public class UserBackupManagerService { final PowerSaveState result = mPowerManager.getPowerSaveState(ServiceType.KEYVALUE_BACKUP); if (result.batterySaverEnabled) { - if (DEBUG) { - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, "Not running backup while in battery save mode")); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, + "Not running backup while in battery save mode")); // Try again in several hours. KeyValueBackupJob.schedule(mUserId, mContext, /* userBackupManagerService */ this); } else { - if (DEBUG) { - Slog.v(TAG, addUserIdToLogMessage(mUserId, "Scheduling immediate backup pass")); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, "Scheduling immediate backup pass")); synchronized (getQueueLock()) { if (getPendingInits().size() > 0) { // If there are pending init operations, we process those and then settle // into the usual periodic backup schedule. - if (MORE_DEBUG) { + if (DEBUG) { Slog.v( TAG, addUserIdToLogMessage( @@ -2749,26 +2578,11 @@ public class UserBackupManagerService { return; } - if (DEBUG) { - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, - "Requesting backup: apks=" - + includeApks - + " obb=" - + includeObbs - + " shared=" - + includeShared - + " all=" - + doAllApps - + " system=" - + includeSystem - + " includekeyvalue=" - + doKeyValue - + " pkgs=" - + Arrays.toString(pkgList))); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, + "Requesting backup: apks=" + includeApks + " obb=" + includeObbs + " shared=" + + includeShared + " all=" + doAllApps + " system=" + includeSystem + + " includekeyvalue=" + doKeyValue + " pkgs=" + Arrays.toString( + pkgList))); Slog.i(TAG, addUserIdToLogMessage(mUserId, "Beginning adb backup...")); BackupEligibilityRules eligibilityRules = getEligibilityRulesForOperation( @@ -2782,11 +2596,7 @@ public class UserBackupManagerService { } // start up the confirmation UI - if (DEBUG) { - Slog.d( - TAG, - addUserIdToLogMessage(mUserId, "Starting backup confirmation UI")); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, "Starting backup confirmation UI")); if (!startConfirmationUi(token, FullBackup.FULL_BACKUP_INTENT_ACTION)) { Slog.e( TAG, @@ -2804,9 +2614,7 @@ public class UserBackupManagerService { startConfirmationTimeout(token, params); // wait for the backup to be performed - if (DEBUG) { - Slog.d(TAG, addUserIdToLogMessage(mUserId, "Waiting for backup completion...")); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, "Waiting for backup completion...")); waitForCompletion(params); } finally { try { @@ -2841,9 +2649,7 @@ public class UserBackupManagerService { mUserId, "Full backup not currently possible -- key/value backup not yet run?")); } else { - if (DEBUG) { - Slog.d(TAG, addUserIdToLogMessage(mUserId, "fullTransportBackup()")); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, "fullTransportBackup()")); final long oldId = Binder.clearCallingIdentity(); try { @@ -2886,9 +2692,7 @@ public class UserBackupManagerService { } } - if (DEBUG) { - Slog.d(TAG, addUserIdToLogMessage(mUserId, "Done with full transport backup.")); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, "Done with full transport backup.")); } /** @@ -2922,12 +2726,8 @@ public class UserBackupManagerService { } // start up the confirmation UI - if (DEBUG) { - Slog.d( - TAG, - addUserIdToLogMessage( - mUserId, "Starting restore confirmation UI, token=" + token)); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, + "Starting restore confirmation UI, token=" + token)); if (!startConfirmationUi(token, FullBackup.FULL_RESTORE_INTENT_ACTION)) { Slog.e( TAG, @@ -2945,9 +2745,7 @@ public class UserBackupManagerService { startConfirmationTimeout(token, params); // wait for the restore to be performed - if (DEBUG) { - Slog.d(TAG, addUserIdToLogMessage(mUserId, "Waiting for restore completion...")); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, "Waiting for restore completion...")); waitForCompletion(params); } finally { try { @@ -3022,7 +2820,7 @@ public class UserBackupManagerService { } private void startConfirmationTimeout(int token, AdbParams params) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, addUserIdToLogMessage(mUserId, "Posting conf timeout msg after " + TIMEOUT_FULL_CONFIRMATION + " millis")); } @@ -3055,13 +2853,8 @@ public class UserBackupManagerService { */ public void acknowledgeAdbBackupOrRestore(int token, boolean allow, String curPassword, String encPpassword, IFullBackupRestoreObserver observer) { - if (DEBUG) { - Slog.d( - TAG, - addUserIdToLogMessage( - mUserId, - "acknowledgeAdbBackupOrRestore : token=" + token + " allow=" + allow)); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, + "acknowledgeAdbBackupOrRestore : token=" + token + " allow=" + allow)); // TODO: possibly require not just this signature-only permission, but even // require that the specific designated confirmation-UI app uid is the caller? @@ -3088,7 +2881,7 @@ public class UserBackupManagerService { params.encryptPassword = encPpassword; - if (MORE_DEBUG) { + if (DEBUG) { Slog.d( TAG, addUserIdToLogMessage( @@ -3198,7 +2991,7 @@ public class UserBackupManagerService { scheduleNextFullBackupJob(0); } else if (!enable) { // No longer enabled, so stop running backups - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, addUserIdToLogMessage(mUserId, "Opting out of backup")); } @@ -3285,7 +3078,7 @@ public class UserBackupManagerService { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.BACKUP, "getCurrentTransport"); String currentTransport = mTransportManager.getCurrentTransportName(); - if (MORE_DEBUG) { + if (DEBUG) { Slog.v( TAG, addUserIdToLogMessage( @@ -3429,7 +3222,7 @@ public class UserBackupManagerService { final long oldId = Binder.clearCallingIdentity(); try { if (!mTransportManager.isTransportRegistered(transportName)) { - Slog.v( + Slog.d( TAG, addUserIdToLogMessage( mUserId, @@ -3441,7 +3234,7 @@ public class UserBackupManagerService { String previousTransportName = mTransportManager.selectTransport(transportName); updateStateForTransport(transportName); - Slog.v( + Slog.d( TAG, addUserIdToLogMessage( mUserId, @@ -3467,7 +3260,7 @@ public class UserBackupManagerService { final long oldId = Binder.clearCallingIdentity(); try { String transportString = transportComponent.flattenToShortString(); - Slog.v( + Slog.d( TAG, addUserIdToLogMessage( mUserId, @@ -3562,7 +3355,7 @@ public class UserBackupManagerService { "getConfigurationIntent"); try { Intent intent = mTransportManager.getTransportConfigurationIntent(transportName); - if (MORE_DEBUG) { + if (DEBUG) { Slog.d( TAG, addUserIdToLogMessage( @@ -3595,7 +3388,7 @@ public class UserBackupManagerService { try { String string = mTransportManager.getTransportCurrentDestinationString(transportName); - if (MORE_DEBUG) { + if (DEBUG) { Slog.d( TAG, addUserIdToLogMessage( @@ -3619,7 +3412,7 @@ public class UserBackupManagerService { try { Intent intent = mTransportManager.getTransportDataManagementIntent(transportName); - if (MORE_DEBUG) { + if (DEBUG) { Slog.d( TAG, addUserIdToLogMessage( @@ -3646,7 +3439,7 @@ public class UserBackupManagerService { try { CharSequence label = mTransportManager.getTransportDataManagementLabel(transportName); - if (MORE_DEBUG) { + if (DEBUG) { Slog.d( TAG, addUserIdToLogMessage( @@ -3682,20 +3475,11 @@ public class UserBackupManagerService { boolean skip = false; long restoreSet = getAvailableRestoreToken(packageName); - if (DEBUG) { - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, - "restoreAtInstall pkg=" - + packageName - + " token=" - + Integer.toHexString(token) - + " restoreSet=" - + Long.toHexString(restoreSet))); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, + "restoreAtInstall pkg=" + packageName + " token=" + Integer.toHexString(token) + + " restoreSet=" + Long.toHexString(restoreSet))); if (restoreSet == 0) { - if (MORE_DEBUG) Slog.i(TAG, addUserIdToLogMessage(mUserId, "No restore set")); + if (DEBUG) Slog.i(TAG, addUserIdToLogMessage(mUserId, "No restore set")); skip = true; } @@ -3705,7 +3489,7 @@ public class UserBackupManagerService { TransportConnection transportConnection = mTransportManager.getCurrentTransportClient("BMS.restoreAtInstall()"); if (transportConnection == null) { - if (DEBUG) Slog.w(TAG, addUserIdToLogMessage(mUserId, "No transport client")); + Slog.w(TAG, addUserIdToLogMessage(mUserId, "No transport client")); skip = true; } else if (Flags.enableIncreasedBmmLoggingForRestoreAtInstall()) { try { @@ -3729,12 +3513,8 @@ public class UserBackupManagerService { } if (!mAutoRestore) { - if (DEBUG) { - Slog.w( - TAG, - addUserIdToLogMessage( - mUserId, "Non-restorable state: auto=" + mAutoRestore)); - } + Slog.w(TAG, + addUserIdToLogMessage(mUserId, "Non-restorable state: auto=" + mAutoRestore)); skip = true; } @@ -3751,7 +3531,7 @@ public class UserBackupManagerService { mWakelock.release(); }; - if (MORE_DEBUG) { + if (DEBUG) { Slog.d( TAG, addUserIdToLogMessage(mUserId, "Restore at install of " + packageName)); @@ -3796,7 +3576,7 @@ public class UserBackupManagerService { } // Tell the PackageManager to proceed with the post-install handling for this package. - if (DEBUG) Slog.v(TAG, addUserIdToLogMessage(mUserId, "Finishing install immediately")); + Slog.d(TAG, addUserIdToLogMessage(mUserId, "Finishing install immediately")); try { mPackageManagerBinder.finishPackageInstall(token, false); } catch (RemoteException e) { /* can't happen */ } @@ -3812,13 +3592,8 @@ public class UserBackupManagerService { /** Hand off a restore session. */ public IRestoreSession beginRestoreSession(String packageName, String transport) { - if (DEBUG) { - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, - "beginRestoreSession: pkg=" + packageName + " transport=" + transport)); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, + "beginRestoreSession: pkg=" + packageName + " transport=" + transport)); boolean needPermission = true; if (transport == null) { @@ -3849,13 +3624,8 @@ public class UserBackupManagerService { mContext.enforceCallingOrSelfPermission( android.Manifest.permission.BACKUP, "beginRestoreSession"); } else { - if (DEBUG) { - Slog.d( - TAG, - addUserIdToLogMessage( - mUserId, - "restoring self on current transport; no permission needed")); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, + "restoring self on current transport; no permission needed")); } int backupDestination; @@ -3905,12 +3675,8 @@ public class UserBackupManagerService { if (currentSession != mActiveRestoreSession) { Slog.e(TAG, addUserIdToLogMessage(mUserId, "ending non-current restore session")); } else { - if (DEBUG) { - Slog.v( - TAG, - addUserIdToLogMessage( - mUserId, "Clearing restore session and halting timeout")); - } + Slog.d(TAG, addUserIdToLogMessage(mUserId, + "Clearing restore session and halting timeout")); mActiveRestoreSession = null; mBackupHandler.removeMessages(MSG_RESTORE_SESSION_TIMEOUT); } diff --git a/services/backup/java/com/android/server/backup/fullbackup/AppMetadataBackupWriter.java b/services/backup/java/com/android/server/backup/fullbackup/AppMetadataBackupWriter.java index d13f71116c81..1cd8d8146d92 100644 --- a/services/backup/java/com/android/server/backup/fullbackup/AppMetadataBackupWriter.java +++ b/services/backup/java/com/android/server/backup/fullbackup/AppMetadataBackupWriter.java @@ -1,6 +1,6 @@ package com.android.server.backup.fullbackup; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; +import static com.android.server.backup.BackupManagerService.DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_VERSION; import static com.android.server.backup.UserBackupManagerService.BACKUP_METADATA_VERSION; @@ -261,7 +261,7 @@ public class AppMetadataBackupWriter { new Environment.UserEnvironment(userId); File obbDir = userEnv.buildExternalStorageAppObbDirs(packageInfo.packageName)[0]; if (obbDir != null) { - if (MORE_DEBUG) { + if (DEBUG) { Log.i(TAG, "obb dir: " + obbDir.getAbsolutePath()); } File[] obbFiles = obbDir.listFiles(); diff --git a/services/backup/java/com/android/server/backup/fullbackup/FullBackupEngine.java b/services/backup/java/com/android/server/backup/fullbackup/FullBackupEngine.java index cf617a523bec..ebb1194c7c4a 100644 --- a/services/backup/java/com/android/server/backup/fullbackup/FullBackupEngine.java +++ b/services/backup/java/com/android/server/backup/fullbackup/FullBackupEngine.java @@ -17,7 +17,6 @@ package com.android.server.backup.fullbackup; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_FILENAME; import static com.android.server.backup.UserBackupManagerService.BACKUP_METADATA_FILENAME; @@ -111,7 +110,7 @@ public class FullBackupEngine { shouldWriteApk(mPackage.applicationInfo, mIncludeApks, isSharedStorage); if (!isSharedStorage) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Writing manifest for " + packageName); } @@ -137,9 +136,7 @@ public class FullBackupEngine { appMetadataBackupWriter.backupObb(mUserId, mPackage); } - if (DEBUG) { - Slog.d(TAG, "Calling doFullBackup() on " + packageName); - } + Slog.d(TAG, "Calling doFullBackup() on " + packageName); long timeout = isSharedStorage @@ -216,14 +213,14 @@ public class FullBackupEngine { public int preflightCheck() throws RemoteException { if (mPreflightHook == null) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "No preflight check"); } return BackupTransport.TRANSPORT_OK; } if (initializeAgent()) { int result = mPreflightHook.preflightFullBackup(mPkg, mAgent); - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "preflight returned " + result); } @@ -262,7 +259,7 @@ public class FullBackupEngine { if (!backupManagerService.waitUntilOperationComplete(mOpToken)) { Slog.e(TAG, "Full backup failed on package " + mPkg.packageName); } else { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Full package backup success: " + mPkg.packageName); } result = BackupTransport.TRANSPORT_OK; @@ -310,7 +307,7 @@ public class FullBackupEngine { private boolean initializeAgent() { if (mAgent == null) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Binding to full backup agent : " + mPkg.packageName); } mAgent = diff --git a/services/backup/java/com/android/server/backup/fullbackup/FullBackupObbConnection.java b/services/backup/java/com/android/server/backup/fullbackup/FullBackupObbConnection.java index be6ac26ba92a..93499b9d763b 100644 --- a/services/backup/java/com/android/server/backup/fullbackup/FullBackupObbConnection.java +++ b/services/backup/java/com/android/server/backup/fullbackup/FullBackupObbConnection.java @@ -16,7 +16,7 @@ package com.android.server.backup.fullbackup; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; +import static com.android.server.backup.BackupManagerService.DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import android.app.backup.IBackupManager; @@ -58,7 +58,7 @@ public class FullBackupObbConnection implements ServiceConnection { } public void establish() { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Initiating bind of OBB service on " + this); } Intent obbIntent = new Intent().setComponent(new ComponentName( @@ -124,14 +124,14 @@ public class FullBackupObbConnection implements ServiceConnection { private void waitForConnection() { synchronized (this) { while (mService == null) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "...waiting for OBB service binding..."); } try { this.wait(); } catch (InterruptedException e) { /* never interrupted */ } } - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Connected to OBB service; continuing"); } } @@ -141,7 +141,7 @@ public class FullBackupObbConnection implements ServiceConnection { public void onServiceConnected(ComponentName name, IBinder service) { synchronized (this) { mService = IObbBackupService.Stub.asInterface(service); - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "OBB service connection " + mService + " connected on " + this); } this.notifyAll(); @@ -152,7 +152,7 @@ public class FullBackupObbConnection implements ServiceConnection { public void onServiceDisconnected(ComponentName name) { synchronized (this) { mService = null; - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "OBB service connection disconnected on " + this); } this.notifyAll(); diff --git a/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java b/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java index 0ba0d710af38..0d4364e14e03 100644 --- a/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java +++ b/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java @@ -17,7 +17,6 @@ package com.android.server.backup.fullbackup; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import static com.android.server.backup.BackupPasswordManager.PBKDF_CURRENT; import static com.android.server.backup.UserBackupManagerService.BACKUP_FILE_HEADER_MAGIC; @@ -121,7 +120,7 @@ public class PerformAdbBackupTask extends FullBackupTask implements BackupRestor } else { mEncryptPassword = encryptPassword; } - if (MORE_DEBUG) { + if (DEBUG) { Slog.w(TAG, "Encrypting backup with passphrase=" + mEncryptPassword); } mCompress = doCompress; @@ -265,7 +264,7 @@ public class PerformAdbBackupTask extends FullBackupTask implements BackupRestor List<String> pkgs = AppWidgetBackupBridge.getWidgetParticipants(UserHandle.USER_SYSTEM); if (pkgs != null) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Adding widget participants to backup set:"); StringBuilder sb = new StringBuilder(128); sb.append(" "); @@ -297,16 +296,12 @@ public class PerformAdbBackupTask extends FullBackupTask implements BackupRestor if (!mBackupEligibilityRules.appIsEligibleForBackup(pkg.applicationInfo) || mBackupEligibilityRules.appIsStopped(pkg.applicationInfo)) { iter.remove(); - if (DEBUG) { - Slog.i(TAG, "Package " + pkg.packageName + Slog.i(TAG, "Package " + pkg.packageName + " is not eligible for backup, removing."); - } } else if (mBackupEligibilityRules.appIsKeyValueOnly(pkg)) { iter.remove(); - if (DEBUG) { - Slog.i(TAG, "Package " + pkg.packageName + Slog.i(TAG, "Package " + pkg.packageName + " is key-value."); - } keyValueBackupQueue.add(pkg); } } @@ -326,9 +321,7 @@ public class PerformAdbBackupTask extends FullBackupTask implements BackupRestor // Verify that the given password matches the currently-active // backup password, if any if (!mUserBackupManagerService.backupPasswordMatches(mCurrentPassword)) { - if (DEBUG) { - Slog.w(TAG, "Backup password mismatch; aborting"); - } + Slog.w(TAG, "Backup password mismatch; aborting"); return; } @@ -402,10 +395,8 @@ public class PerformAdbBackupTask extends FullBackupTask implements BackupRestor int N = backupQueue.size(); for (int i = 0; i < N; i++) { pkg = backupQueue.get(i); - if (DEBUG) { - Slog.i(TAG, "--- Performing full backup for package " + pkg.packageName + Slog.i(TAG, "--- Performing full backup for package " + pkg.packageName + " ---"); - } final boolean isSharedStorage = pkg.packageName.equals( SHARED_BACKUP_AGENT_PACKAGE); @@ -441,10 +432,8 @@ public class PerformAdbBackupTask extends FullBackupTask implements BackupRestor // And for key-value backup if enabled if (mKeyValue) { for (PackageInfo keyValuePackage : keyValueBackupQueue) { - if (DEBUG) { - Slog.i(TAG, "--- Performing key-value backup for package " + Slog.i(TAG, "--- Performing key-value backup for package " + keyValuePackage.packageName + " ---"); - } KeyValueAdbBackupEngine kvBackupEngine = new KeyValueAdbBackupEngine(out, keyValuePackage, mUserBackupManagerService, @@ -478,10 +467,8 @@ public class PerformAdbBackupTask extends FullBackupTask implements BackupRestor } sendEndBackup(); obbConnection.tearDown(); - if (DEBUG) { - Slog.d(TAG, "Full backup pass complete."); - } - mUserBackupManagerService.getWakelock().release(); + Slog.d(TAG, "Full backup pass complete."); + mUserBackupManagerService.getWakeLock().release(); } } @@ -499,9 +486,7 @@ public class PerformAdbBackupTask extends FullBackupTask implements BackupRestor @Override public void handleCancel(boolean cancelAll) { final PackageInfo target = mCurrentTarget; - if (DEBUG) { - Slog.w(TAG, "adb backup cancel of " + target); - } + Slog.w(TAG, "adb backup cancel of " + target); if (target != null) { mUserBackupManagerService.getBackupAgentConnectionManager().unbindAgent( target.applicationInfo, /* allowKill= */ true); diff --git a/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java b/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java index 990c9416e38d..bd34f33226a1 100644 --- a/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java +++ b/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java @@ -19,8 +19,6 @@ package com.android.server.backup.fullbackup; import static android.app.backup.BackupAnnotations.OperationType.BACKUP; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.DEBUG_SCHEDULING; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import android.annotation.Nullable; import android.app.IBackupAgent; @@ -201,9 +199,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba mBackupEligibilityRules = backupEligibilityRules; if (backupManagerService.isBackupOperationInProgress()) { - if (DEBUG) { - Slog.d(TAG, "Skipping full backup. A backup is already in progress."); - } + Slog.d(TAG, "Skipping full backup. A backup is already in progress."); mCancelAll = true; return; } @@ -219,7 +215,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba // that run as system-domain uids but do not define their own backup agents, // as well as any explicit mention of the 'special' shared-storage agent // package (we handle that one at the end). - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Ignoring ineligible package " + pkg); } mBackupManagerMonitorEventSender.monitorEvent( @@ -233,7 +229,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba } else if (!mBackupEligibilityRules.appGetsFullBackup(info)) { // Cull any packages that are found in the queue but now aren't supposed // to get full-data backup operations. - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Ignoring full-data backup of key/value participant " + pkg); } @@ -249,7 +245,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba // Cull any packages in the 'stopped' state: they've either just been // installed or have explicitly been force-stopped by the user. In both // cases we do not want to launch them for backup. - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Ignoring stopped package " + pkg); } mBackupManagerMonitorEventSender.monitorEvent( @@ -346,12 +342,10 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba if (!mUserBackupManagerService.isEnabled() || !mUserBackupManagerService.isSetupComplete()) { // Backups are globally disabled, so don't proceed. - if (DEBUG) { - Slog.i(TAG, "full backup requested but enabled=" + mUserBackupManagerService - .isEnabled() - + " setupComplete=" + mUserBackupManagerService.isSetupComplete() - + "; ignoring"); - } + Slog.i(TAG, + "full backup requested but enabled=" + mUserBackupManagerService.isEnabled() + + " setupComplete=" + mUserBackupManagerService.isSetupComplete() + + "; ignoring"); int monitoringEvent; if (mUserBackupManagerService.isSetupComplete()) { monitoringEvent = BackupManagerMonitor.LOG_EVENT_ID_BACKUP_DISABLED; @@ -405,10 +399,8 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba mBackupRunner = null; PackageInfo currentPackage = mPackages.get(i); String packageName = currentPackage.packageName; - if (DEBUG) { - Slog.i(TAG, "Initiating full-data transport backup of " + packageName - + " token: " + mCurrentOpToken); - } + Slog.i(TAG, "Initiating full-data transport backup of " + packageName + " token: " + + mCurrentOpToken); EventLog.writeEvent(EventLogTags.FULL_BACKUP_PACKAGE, packageName); transportPipes = ParcelFileDescriptor.createPipe(); @@ -462,7 +454,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba final long preflightResult = mBackupRunner.getPreflightResultBlocking(); // Preflight result is negative if some error happened on preflight. if (preflightResult < 0) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Backup error after preflight of package " + packageName + ": " + preflightResult + ", not running backup."); @@ -479,7 +471,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba int nRead = 0; do { nRead = in.read(buffer); - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "in.read(buffer) from app: " + nRead); } if (nRead > 0) { @@ -549,12 +541,12 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba backupPackageStatus = backupRunnerResult; } } else { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Transport-level failure; cancelling agent work"); } } - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Done delivering backup data: result=" + backupPackageStatus); } @@ -567,10 +559,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba // Also ask the transport how long it wants us to wait before // moving on to the next package, if any. backoff = transport.requestFullBackupTime(); - if (DEBUG_SCHEDULING) { - Slog.i(TAG, "Transport suggested backoff=" + backoff); - } - + Slog.i(TAG, "Transport suggested backoff=" + backoff); } // Roll this package to the end of the backup queue if we're @@ -581,13 +570,9 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba } if (backupPackageStatus == BackupTransport.TRANSPORT_PACKAGE_REJECTED) { - BackupObserverUtils - .sendBackupOnPackageResult(mBackupObserver, packageName, - BackupManager.ERROR_TRANSPORT_PACKAGE_REJECTED); - if (DEBUG) { - Slog.i(TAG, "Transport rejected backup of " + packageName - + ", skipping"); - } + BackupObserverUtils.sendBackupOnPackageResult(mBackupObserver, packageName, + BackupManager.ERROR_TRANSPORT_PACKAGE_REJECTED); + Slog.i(TAG, "Transport rejected backup of " + packageName + ", skipping"); EventLog.writeEvent(EventLogTags.FULL_BACKUP_AGENT_FAILURE, packageName, "transport rejected"); // This failure state can come either a-priori from the transport, or @@ -602,11 +587,8 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba BackupObserverUtils .sendBackupOnPackageResult(mBackupObserver, packageName, BackupManager.ERROR_TRANSPORT_QUOTA_EXCEEDED); - if (DEBUG) { - Slog.i(TAG, "Transport quota exceeded for package: " + packageName); - EventLog.writeEvent(EventLogTags.FULL_BACKUP_QUOTA_EXCEEDED, - packageName); - } + Slog.i(TAG, "Transport quota exceeded for package: " + packageName); + EventLog.writeEvent(EventLogTags.FULL_BACKUP_QUOTA_EXCEEDED, packageName); mUserBackupManagerService.getBackupAgentConnectionManager().unbindAgent( currentPackage.applicationInfo, /* allowKill= */ true); // Do nothing, clean up, and continue looping. @@ -675,9 +657,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba backupRunStatus = BackupManager.ERROR_BACKUP_CANCELLED; } - if (DEBUG) { - Slog.i(TAG, "Full backup completed with status: " + backupRunStatus); - } + Slog.i(TAG, "Full backup completed with status: " + backupRunStatus); BackupObserverUtils.sendBackupFinished(mBackupObserver, backupRunStatus); cleanUpPipes(transportPipes); @@ -708,7 +688,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba .getBackupAgentConnectionManager().clearNoRestrictedModePackages(); Slog.i(TAG, "Full data backup pass finished."); - mUserBackupManagerService.getWakelock().release(); + mUserBackupManagerService.getWakeLock().release(); } } @@ -781,7 +761,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba try { mUserBackupManagerService.prepareOperationTimeout( mCurrentOpToken, fullBackupAgentTimeoutMillis, this, OpType.BACKUP_WAIT); - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Preflighting full payload of " + pkg.packageName); } agent.doMeasureFullBackup(mQuota, mCurrentOpToken, @@ -799,7 +779,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba if (totalSize < 0) { return (int) totalSize; } - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "Got preflight response; size=" + totalSize); } @@ -807,7 +787,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba mTransportConnection.connectOrThrow("PFTBT$SPBP.preflightFullBackup()"); result = transport.checkFullBackupSize(totalSize); if (result == BackupTransport.TRANSPORT_QUOTA_EXCEEDED) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Package hit quota limit on preflight " + pkg.packageName + ": " + totalSize + " of " + mQuota); } @@ -830,7 +810,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba @Override public void operationComplete(long result) { // got the callback, and our preflightFullBackup() method is waiting for the result - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Preflight op complete, result=" + result); } mResult.set(result); @@ -840,7 +820,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba @Override public void handleCancel(boolean cancelAll) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Preflight cancelled; failing"); } mResult.set(BackupTransport.AGENT_ERROR); @@ -997,9 +977,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba @Override public void handleCancel(boolean cancelAll) { - if (DEBUG) { - Slog.w(TAG, "Full backup cancel of " + mTarget.packageName); - } + Slog.w(TAG, "Full backup cancel of " + mTarget.packageName); mBackupManagerMonitorEventSender.monitorEvent( BackupManagerMonitor.LOG_EVENT_ID_FULL_BACKUP_CANCEL, diff --git a/services/backup/java/com/android/server/backup/internal/BackupHandler.java b/services/backup/java/com/android/server/backup/internal/BackupHandler.java index 38c7dd1e230b..87cf8a313651 100644 --- a/services/backup/java/com/android/server/backup/internal/BackupHandler.java +++ b/services/backup/java/com/android/server/backup/internal/BackupHandler.java @@ -17,7 +17,6 @@ package com.android.server.backup.internal; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import android.app.backup.BackupAnnotations.BackupDestination; @@ -136,8 +135,8 @@ public class BackupHandler extends Handler { public void handleMessage(Message msg) { if (msg.what == MSG_STOP) { - Slog.v(TAG, "Stopping backup handler"); - backupManagerService.getWakelock().quit(); + Slog.d(TAG, "Stopping backup handler"); + backupManagerService.getWakeLock().quit(); mBackupThread.quitSafely(); } @@ -163,7 +162,7 @@ public class BackupHandler extends Handler { transportManager .disposeOfTransportClient(transportConnection, callerLogString); } - Slog.v(TAG, "Backup requested but no transport available"); + Slog.d(TAG, "Backup requested but no transport available"); break; } @@ -177,14 +176,12 @@ public class BackupHandler extends Handler { return; } - if (DEBUG) { - Slog.v(TAG, "Running a backup pass"); - } + Slog.d(TAG, "Running a backup pass"); // Acquire the wakelock and pass it to the backup thread. It will be released // once backup concludes. backupManagerService.setBackupRunning(true); - backupManagerService.getWakelock().acquire(); + backupManagerService.getWakeLock().acquire(); // Do we have any work to do? Construct the work queue // then release the synchronization lock to actually run @@ -193,9 +190,7 @@ public class BackupHandler extends Handler { for (BackupRequest b : backupManagerService.getPendingBackups().values()) { queue.add(b.packageName); } - if (DEBUG) { - Slog.v(TAG, "clearing pending backups"); - } + Slog.d(TAG, "clearing pending backups"); backupManagerService.getPendingBackups().clear(); // Start a new backup-queue journal file too @@ -249,7 +244,7 @@ public class BackupHandler extends Handler { staged = false; } } else { - Slog.v(TAG, "Backup requested but nothing pending"); + Slog.d(TAG, "Backup requested but nothing pending"); staged = false; } @@ -259,7 +254,7 @@ public class BackupHandler extends Handler { synchronized (backupManagerService.getQueueLock()) { backupManagerService.setBackupRunning(false); } - backupManagerService.getWakelock().release(); + backupManagerService.getWakeLock().release(); } break; } @@ -267,7 +262,7 @@ public class BackupHandler extends Handler { case MSG_BACKUP_RESTORE_STEP: { try { BackupRestoreTask task = (BackupRestoreTask) msg.obj; - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "Got next step for " + task + ", executing"); } task.execute(); @@ -324,16 +319,12 @@ public class BackupHandler extends Handler { synchronized (backupManagerService.getPendingRestores()) { if (backupManagerService.isRestoreInProgress()) { - if (DEBUG) { - Slog.d(TAG, "Restore in progress, queueing."); - } + Slog.d(TAG, "Restore in progress, queueing."); backupManagerService.getPendingRestores().add(task); // This task will be picked up and executed when the the currently running // restore task finishes. } else { - if (DEBUG) { - Slog.d(TAG, "Starting restore."); - } + Slog.d(TAG, "Starting restore."); backupManagerService.setRestoreInProgress(true); Message restoreMsg = obtainMessage(MSG_BACKUP_RESTORE_STEP, task); sendMessage(restoreMsg); @@ -471,11 +462,11 @@ public class BackupHandler extends Handler { case MSG_REQUEST_BACKUP: { BackupParams params = (BackupParams) msg.obj; - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "MSG_REQUEST_BACKUP observer=" + params.observer); } backupManagerService.setBackupRunning(true); - backupManagerService.getWakelock().acquire(); + backupManagerService.getWakeLock().acquire(); KeyValueBackupTask.start( backupManagerService, @@ -496,7 +487,7 @@ public class BackupHandler extends Handler { case MSG_SCHEDULE_BACKUP_PACKAGE: { String pkgName = (String) msg.obj; - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "MSG_SCHEDULE_BACKUP_PACKAGE " + pkgName); } backupManagerService.dataChangedImpl(pkgName); diff --git a/services/backup/java/com/android/server/backup/internal/LifecycleOperationStorage.java b/services/backup/java/com/android/server/backup/internal/LifecycleOperationStorage.java index a94167eb9fa7..0b974e2d0a8a 100644 --- a/services/backup/java/com/android/server/backup/internal/LifecycleOperationStorage.java +++ b/services/backup/java/com/android/server/backup/internal/LifecycleOperationStorage.java @@ -17,7 +17,6 @@ package com.android.server.backup.internal; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import android.annotation.UserIdInt; import android.util.Slog; @@ -206,7 +205,7 @@ public class LifecycleOperationStorage implements OperationStorage { * @return true if the operation was ACKed prior to or during this call. */ public boolean waitUntilOperationComplete(int token, IntConsumer callback) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "[UserID:" + mUserId + "] Blocking until operation complete for " + Integer.toHexString(token)); } @@ -227,7 +226,7 @@ public class LifecycleOperationStorage implements OperationStorage { } // When the wait is notified we loop around and recheck the current state } else { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "[UserID:" + mUserId + "] Unblocked waiting for operation token=" + Integer.toHexString(token)); @@ -244,7 +243,7 @@ public class LifecycleOperationStorage implements OperationStorage { if (op != null) { callback.accept(op.type); } - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "[UserID:" + mUserId + "] operation " + Integer.toHexString(token) + " complete: finalState=" + finalState); } @@ -263,7 +262,7 @@ public class LifecycleOperationStorage implements OperationStorage { * operation from PENDING to ACKNOWLEDGED state. */ public void onOperationComplete(int token, long result, Consumer<BackupRestoreTask> callback) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "[UserID:" + mUserId + "] onOperationComplete: " + Integer.toHexString(token) + " result=" + result); } @@ -277,10 +276,8 @@ public class LifecycleOperationStorage implements OperationStorage { op = null; mOperations.remove(token); } else if (op.state == OpState.ACKNOWLEDGED) { - if (DEBUG) { - Slog.w(TAG, "[UserID:" + mUserId + "] Received duplicate ack for token=" + Slog.w(TAG, "[UserID:" + mUserId + "] Received duplicate ack for token=" + Integer.toHexString(token)); - } op = null; mOperations.remove(token); } else if (op.state == OpState.PENDING) { @@ -317,7 +314,7 @@ public class LifecycleOperationStorage implements OperationStorage { Operation op = null; synchronized (mOperationsLock) { op = mOperations.get(token); - if (MORE_DEBUG) { + if (DEBUG) { if (op == null) { Slog.w(TAG, "[UserID:" + mUserId + "] Cancel of token " + Integer.toHexString(token) + " but no op found"); @@ -326,17 +323,13 @@ public class LifecycleOperationStorage implements OperationStorage { int state = (op != null) ? op.state : OpState.TIMEOUT; if (state == OpState.ACKNOWLEDGED) { // The operation finished cleanly, so we have nothing more to do. - if (DEBUG) { - Slog.w(TAG, "[UserID:" + mUserId + "] Operation already got an ack." + Slog.w(TAG, "[UserID:" + mUserId + "] Operation already got an ack." + "Should have been removed from mCurrentOperations."); - } op = null; mOperations.delete(token); } else if (state == OpState.PENDING) { - if (DEBUG) { - Slog.v(TAG, "[UserID:" + mUserId + "] Cancel: token=" + Slog.d(TAG, "[UserID:" + mUserId + "] Cancel: token=" + Integer.toHexString(token)); - } op.state = OpState.TIMEOUT; // Can't delete op from mOperations here. waitUntilOperationComplete may be // called after we receive cancel here. We need this op's state there. @@ -347,7 +340,7 @@ public class LifecycleOperationStorage implements OperationStorage { // If there's a TimeoutHandler for this event, call it if (op != null && op.callback != null) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "[UserID:" + mUserId + " Invoking cancel on " + op.callback); } op.callback.handleCancel(cancelAll); diff --git a/services/backup/java/com/android/server/backup/internal/PerformClearTask.java b/services/backup/java/com/android/server/backup/internal/PerformClearTask.java index de0177c1b62c..b9ac5648a5f4 100644 --- a/services/backup/java/com/android/server/backup/internal/PerformClearTask.java +++ b/services/backup/java/com/android/server/backup/internal/PerformClearTask.java @@ -75,7 +75,7 @@ public class PerformClearTask implements Runnable { } mListener.onFinished(callerLogString); // Last but not least, release the cpu - mBackupManagerService.getWakelock().release(); + mBackupManagerService.getWakeLock().release(); } } } diff --git a/services/backup/java/com/android/server/backup/internal/RunInitializeReceiver.java b/services/backup/java/com/android/server/backup/internal/RunInitializeReceiver.java index 160124b6f1d3..98563a7d7d8e 100644 --- a/services/backup/java/com/android/server/backup/internal/RunInitializeReceiver.java +++ b/services/backup/java/com/android/server/backup/internal/RunInitializeReceiver.java @@ -16,7 +16,6 @@ package com.android.server.backup.internal; -import static com.android.server.backup.BackupManagerService.DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import static com.android.server.backup.UserBackupManagerService.RUN_INITIALIZE_ACTION; @@ -47,9 +46,7 @@ public class RunInitializeReceiver extends BroadcastReceiver { synchronized (mUserBackupManagerService.getQueueLock()) { Set<String> pendingInits = mUserBackupManagerService.getPendingInits(); - if (DEBUG) { - Slog.v(TAG, "Running a device init; " + pendingInits.size() + " pending"); - } + Slog.d(TAG, "Running a device init; " + pendingInits.size() + " pending"); if (pendingInits.size() > 0) { String[] transports = pendingInits.toArray(new String[pendingInits.size()]); diff --git a/services/backup/java/com/android/server/backup/internal/SetupObserver.java b/services/backup/java/com/android/server/backup/internal/SetupObserver.java index f399fe9e7ab9..309fe29b6866 100644 --- a/services/backup/java/com/android/server/backup/internal/SetupObserver.java +++ b/services/backup/java/com/android/server/backup/internal/SetupObserver.java @@ -16,7 +16,7 @@ package com.android.server.backup.internal; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; +import static com.android.server.backup.BackupManagerService.DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import static com.android.server.backup.UserBackupManagerService.getSetupCompleteSettingForUser; @@ -57,7 +57,7 @@ public class SetupObserver extends ContentObserver { boolean resolvedSetupComplete = previousSetupComplete || newSetupComplete; mUserBackupManagerService.setSetupComplete(resolvedSetupComplete); - if (MORE_DEBUG) { + if (DEBUG) { Slog.d( TAG, "Setup complete change: was=" @@ -73,7 +73,7 @@ public class SetupObserver extends ContentObserver { if (resolvedSetupComplete && !previousSetupComplete && mUserBackupManagerService.isEnabled()) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Setup complete so starting backups"); } KeyValueBackupJob.schedule(mUserBackupManagerService.getUserId(), mContext, diff --git a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupReporter.java b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupReporter.java index 20c8cf6c6923..af0c895c1261 100644 --- a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupReporter.java +++ b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupReporter.java @@ -54,13 +54,10 @@ import java.util.List; @VisibleForTesting public class KeyValueBackupReporter { @VisibleForTesting static final String TAG = "KeyValueBackupTask"; - private static final boolean DEBUG = BackupManagerService.DEBUG; - @VisibleForTesting static final boolean MORE_DEBUG = BackupManagerService.MORE_DEBUG; + @VisibleForTesting static final boolean DEBUG = BackupManagerService.DEBUG; static void onNewThread(String threadName) { - if (DEBUG) { - Slog.d(TAG, "Spinning thread " + threadName); - } + Slog.d(TAG, "Spinning thread " + threadName); } private final UserBackupManagerService mBackupManagerService; @@ -87,9 +84,7 @@ public class KeyValueBackupReporter { } void onSkipBackup() { - if (DEBUG) { - Slog.d(TAG, "Skipping backup since one is already in progress"); - } + Slog.d(TAG, "Skipping backup since one is already in progress"); } void onEmptyQueueAtStart() { @@ -97,9 +92,7 @@ public class KeyValueBackupReporter { } void onQueueReady(List<String> queue) { - if (DEBUG) { - Slog.v(TAG, "Beginning backup of " + queue.size() + " targets"); - } + Slog.d(TAG, "Beginning backup of " + queue.size() + " targets"); } void onTransportReady(String transportName) { @@ -167,7 +160,7 @@ public class KeyValueBackupReporter { } void onAgentError(String packageName) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Agent failure for " + packageName + ", re-staging"); } BackupObserverUtils.sendBackupOnPackageResult( @@ -175,13 +168,11 @@ public class KeyValueBackupReporter { } void onExtractAgentData(String packageName) { - if (DEBUG) { - Slog.d(TAG, "Invoking agent on " + packageName); - } + Slog.d(TAG, "Invoking agent on " + packageName); } void onAgentFilesReady(File backupDataFile) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Data file: " + backupDataFile); } } @@ -216,7 +207,7 @@ public class KeyValueBackupReporter { null, BackupManagerMonitor.EXTRA_LOG_ILLEGAL_KEY, key)); BackupObserverUtils.sendBackupOnPackageResult( mObserver, packageName, BackupManager.ERROR_AGENT_FAILURE); - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, "Agent failure for " + packageName + " with illegal key " + key + ", dropped"); @@ -232,7 +223,7 @@ public class KeyValueBackupReporter { } void onWriteWidgetData(boolean priorStateExists, @Nullable byte[] widgetState) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, "Checking widget update: state=" @@ -243,13 +234,13 @@ public class KeyValueBackupReporter { } void onTransportPerformBackup(String packageName) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "Sending non-empty data to transport for " + packageName); } } void onEmptyData(PackageInfo packageInfo) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "No backup data written, not calling transport"); } mBackupManagerMonitorEventSender.monitorEvent( @@ -273,7 +264,7 @@ public class KeyValueBackupReporter { } void onPackageBackupQuotaExceeded(String packageName) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Package " + packageName + " hit quota limit on key-value backup"); } BackupObserverUtils.sendBackupOnPackageResult( @@ -319,7 +310,7 @@ public class KeyValueBackupReporter { } void onCancel() { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "Cancel received"); } } @@ -363,7 +354,7 @@ public class KeyValueBackupReporter { } void onRevertTask() { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Reverting backup queue, re-staging everything"); } } @@ -373,7 +364,7 @@ public class KeyValueBackupReporter { } void onRemoteCallReturned(RemoteResult result, String logIdentifier) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "Agent call " + logIdentifier + " returned " + result); } } @@ -388,7 +379,7 @@ public class KeyValueBackupReporter { void onTransportNotInitialized(@Nullable String transportName) { EventLog.writeEvent(EventLogTags.BACKUP_RESET, transportName); - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Transport requires initialization, rerunning"); } } diff --git a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java index 689c43a1cc96..494b9d59a238 100644 --- a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java +++ b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java @@ -826,7 +826,7 @@ public class KeyValueBackupTask implements BackupRestoreTask, Runnable { } mTaskFinishedListener.onFinished(callerLogString); mReporter.onBackupFinished(getBackupFinishedStatus(mCancelled, status)); - mBackupManagerService.getWakelock().release(); + mBackupManagerService.getWakeLock().release(); } private int getBackupFinishedStatus(boolean cancelled, int transportStatus) { @@ -878,12 +878,13 @@ public class KeyValueBackupTask implements BackupRestoreTask, Runnable { * the transport or not. It's the caller responsibility to do the clean-up or delegate it. */ private void extractAgentData(PackageInfo packageInfo) throws AgentException, TaskException { - mBackupManagerService.setWorkSource(new WorkSource(packageInfo.applicationInfo.uid)); + mBackupManagerService.getWakeLock().setWorkSource( + new WorkSource(packageInfo.applicationInfo.uid)); try { mAgent = bindAgent(packageInfo); extractAgentData(packageInfo, mAgent); } finally { - mBackupManagerService.setWorkSource(null); + mBackupManagerService.getWakeLock().setWorkSource(null); } } diff --git a/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java b/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java index 9f7b62763ed3..41134d68916a 100644 --- a/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java +++ b/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java @@ -17,7 +17,6 @@ package com.android.server.backup.restore; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import static com.android.server.backup.internal.BackupHandler.MSG_RESTORE_SESSION_TIMEOUT; import static com.android.server.backup.internal.BackupHandler.MSG_RUN_GET_RESTORE_SETS; import static com.android.server.backup.internal.BackupHandler.MSG_RUN_RESTORE; @@ -41,6 +40,7 @@ import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; import com.android.server.LocalServices; +import com.android.server.backup.BackupWakeLock; import com.android.server.backup.Flags; import com.android.server.backup.TransportManager; import com.android.server.backup.UserBackupManagerService; @@ -121,7 +121,7 @@ public class ActiveRestoreSession extends IRestoreSession.Stub { // comes in. mBackupManagerService.getBackupHandler().removeMessages(MSG_RESTORE_SESSION_TIMEOUT); - UserBackupManagerService.BackupWakeLock wakelock = mBackupManagerService.getWakelock(); + BackupWakeLock wakelock = mBackupManagerService.getWakeLock(); wakelock.acquire(); // Prevent lambda from leaking 'this' @@ -150,10 +150,8 @@ public class ActiveRestoreSession extends IRestoreSession.Stub { android.Manifest.permission.BACKUP, "performRestore"); - if (DEBUG) { - Slog.d(TAG, "restoreAll token=" + Long.toHexString(token) + Slog.d(TAG, "restoreAll token=" + Long.toHexString(token) + " observer=" + observer); - } if (mEnded) { throw new IllegalStateException("Restore session already ended"); @@ -213,40 +211,38 @@ public class ActiveRestoreSession extends IRestoreSession.Stub { android.Manifest.permission.BACKUP, "performRestore"); - if (DEBUG) { - StringBuilder b = new StringBuilder(128); - b.append("restorePackages token="); - b.append(Long.toHexString(token)); - b.append(" observer="); - if (observer == null) { - b.append("null"); - } else { - b.append(observer.toString()); - } - b.append(" monitor="); - if (monitor == null) { - b.append("null"); - } else { - b.append(monitor.toString()); - } - b.append(" packages="); - if (packages == null) { - b.append("null"); - } else { - b.append('{'); - boolean first = true; - for (String s : packages) { - if (!first) { - b.append(", "); - } else { - first = false; - } - b.append(s); + StringBuilder b = new StringBuilder(128); + b.append("restorePackages token="); + b.append(Long.toHexString(token)); + b.append(" observer="); + if (observer == null) { + b.append("null"); + } else { + b.append(observer.toString()); + } + b.append(" monitor="); + if (monitor == null) { + b.append("null"); + } else { + b.append(monitor.toString()); + } + b.append(" packages="); + if (packages == null) { + b.append("null"); + } else { + b.append('{'); + boolean first = true; + for (String s : packages) { + if (!first) { + b.append(", "); + } else { + first = false; } - b.append('}'); + b.append(s); } - Slog.d(TAG, b.toString()); + b.append('}'); } + Slog.d(TAG, b.toString()); if (mEnded) { throw new IllegalStateException("Restore session already ended"); @@ -325,10 +321,8 @@ public class ActiveRestoreSession extends IRestoreSession.Stub { public synchronized int restorePackage(String packageName, IRestoreObserver observer, IBackupManagerMonitor monitor) { - if (DEBUG) { - Slog.v(TAG, "restorePackage pkg=" + packageName + " obs=" + observer + Slog.d(TAG, "restorePackage pkg=" + packageName + " obs=" + observer + "monitor=" + monitor); - } if (mEnded) { throw new IllegalStateException("Restore session already ended"); @@ -379,18 +373,14 @@ public class ActiveRestoreSession extends IRestoreSession.Stub { // Check whether there is data for it in the current dataset, falling back // to the ancestral dataset if not. long token = mBackupManagerService.getAvailableRestoreToken(packageName); - if (DEBUG) { - Slog.v(TAG, "restorePackage pkg=" + packageName + Slog.d(TAG, "restorePackage pkg=" + packageName + " token=" + Long.toHexString(token)); - } // If we didn't come up with a place to look -- no ancestral dataset and // the app has never been backed up from this device -- there's nothing // to do but return failure. if (token == 0) { - if (DEBUG) { - Slog.w(TAG, "No data available for this package; not restoring"); - } + Slog.w(TAG, "No data available for this package; not restoring"); return -1; } @@ -431,9 +421,9 @@ public class ActiveRestoreSession extends IRestoreSession.Stub { Handler backupHandler = mBackupManagerService.getBackupHandler(); backupHandler.removeMessages(MSG_RESTORE_SESSION_TIMEOUT); - UserBackupManagerService.BackupWakeLock wakelock = mBackupManagerService.getWakelock(); + BackupWakeLock wakelock = mBackupManagerService.getWakeLock(); wakelock.acquire(); - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, callerLogString); } @@ -473,9 +463,7 @@ public class ActiveRestoreSession extends IRestoreSession.Stub { } public synchronized void endRestoreSession() { - if (DEBUG) { - Slog.d(TAG, "endRestoreSession"); - } + Slog.d(TAG, "endRestoreSession"); if (mTimedOut) { Slog.i(TAG, "Session already timed out"); diff --git a/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedLatch.java b/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedLatch.java index cfc0f203e6ec..cb491c6f384e 100644 --- a/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedLatch.java +++ b/services/backup/java/com/android/server/backup/restore/AdbRestoreFinishedLatch.java @@ -17,7 +17,6 @@ package com.android.server.backup.restore; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import android.util.Slog; @@ -72,7 +71,7 @@ public class AdbRestoreFinishedLatch implements BackupRestoreTask { @Override public void operationComplete(long result) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.w(TAG, "adb onRestoreFinished() complete"); } mLatch.countDown(); @@ -81,9 +80,7 @@ public class AdbRestoreFinishedLatch implements BackupRestoreTask { @Override public void handleCancel(boolean cancelAll) { - if (DEBUG) { - Slog.w(TAG, "adb onRestoreFinished() timed out"); - } + Slog.w(TAG, "adb onRestoreFinished() timed out"); mLatch.countDown(); mOperationStorage.removeOperation(mCurrentOpToken); } diff --git a/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java b/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java index 237ffa3bdb21..19e565dab719 100644 --- a/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java +++ b/services/backup/java/com/android/server/backup/restore/FullRestoreEngine.java @@ -17,7 +17,6 @@ package com.android.server.backup.restore; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_FILENAME; import static com.android.server.backup.UserBackupManagerService.BACKUP_METADATA_FILENAME; @@ -215,12 +214,12 @@ public class FullRestoreEngine extends RestoreEngine { FileMetadata info; try { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "Reading tar header for restoring file"); } info = tarBackupReader.readTarHeaders(); if (info != null) { - if (MORE_DEBUG) { + if (DEBUG) { info.dump(); } @@ -249,9 +248,7 @@ public class FullRestoreEngine extends RestoreEngine { // Clean up the previous agent relationship if necessary, // and let the observer know we're considering a new app. if (mAgent != null) { - if (DEBUG) { - Slog.d(TAG, "Saw new package; finalizing old one"); - } + Slog.d(TAG, "Saw new package; finalizing old one"); // Now we're really done tearDownPipes(); tearDownAgent(mTargetApp, mIsAdbRestore); @@ -307,9 +304,7 @@ public class FullRestoreEngine extends RestoreEngine { // If we're in accept-if-apk state, then the first file we // see MUST be the apk. if (info.domain.equals(FullBackup.APK_TREE_TOKEN)) { - if (DEBUG) { - Slog.d(TAG, "APK file; installing"); - } + Slog.d(TAG, "APK file; installing"); // Try to install the app. String installerPackageName = mPackageInstallers.get(pkg); boolean isSuccessfullyInstalled = RestoreUtils.installApk( @@ -336,9 +331,7 @@ public class FullRestoreEngine extends RestoreEngine { case ACCEPT: if (info.domain.equals(FullBackup.APK_TREE_TOKEN)) { - if (DEBUG) { - Slog.d(TAG, "apk present but ACCEPT"); - } + Slog.d(TAG, "apk present but ACCEPT"); // we can take the data without the apk, so we // *want* to do so. skip the apk by declaring this // one file not-okay without changing the restore @@ -364,11 +357,11 @@ public class FullRestoreEngine extends RestoreEngine { // If the policy is satisfied, go ahead and set up to pipe the // data to the agent. - if (MORE_DEBUG && okay && mAgent != null) { + if (DEBUG && okay && mAgent != null) { Slog.i(TAG, "Reusing existing agent instance"); } if (okay && mAgent == null) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Need to launch agent for " + pkg); } @@ -389,20 +382,18 @@ public class FullRestoreEngine extends RestoreEngine { boolean forceClear = shouldForceClearAppDataOnFullRestore( mTargetApp.packageName); if (mTargetApp.backupAgentName == null || forceClear) { - if (DEBUG) { - Slog.d(TAG, + Slog.d(TAG, "Clearing app data preparatory to full restore"); - } mBackupManagerService.clearApplicationDataBeforeRestore(pkg); } else { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "backup agent (" + mTargetApp.backupAgentName + ") => no clear"); } } mClearedPackages.add(pkg); } else { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "We've initialized this app already; no clear " + "required"); } @@ -459,10 +450,8 @@ public class FullRestoreEngine extends RestoreEngine { OpType.RESTORE_WAIT); if (FullBackup.OBB_TREE_TOKEN.equals(info.domain)) { - if (DEBUG) { - Slog.d(TAG, "Restoring OBB file for " + pkg + Slog.d(TAG, "Restoring OBB file for " + pkg + " : " + info.path); - } mObbConnection.restoreObbFile(pkg, mPipes[0], info.size, info.type, info.path, info.mode, info.mtime, token, @@ -470,10 +459,8 @@ public class FullRestoreEngine extends RestoreEngine { } else if (FullBackup.KEY_VALUE_DATA_TOKEN.equals(info.domain)) { // This is only possible during adb restore. // TODO: Refactor to clearly separate the flows. - if (DEBUG) { - Slog.d(TAG, "Restoring key-value file for " + pkg + Slog.d(TAG, "Restoring key-value file for " + pkg + " : " + info.path); - } // Set the version saved from manifest entry. info.version = mAppVersion; KeyValueAdbRestoreEngine restoreEngine = @@ -483,7 +470,7 @@ public class FullRestoreEngine extends RestoreEngine { mAgent, token); new Thread(restoreEngine, "restore-key-value-runner").start(); } else { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "Invoking agent to restore file " + info.path); } // fire up the app's agent listening on the socket. If @@ -519,7 +506,7 @@ public class FullRestoreEngine extends RestoreEngine { // Copy over the data if the agent is still good if (okay) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, " copying to restore agent: " + toCopy + " bytes"); } boolean pipeOkay = true; @@ -586,7 +573,7 @@ public class FullRestoreEngine extends RestoreEngine { // dropped file, or an already-ignored package: skip to the // next stream entry by reading and discarding this file. if (!okay) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "[discarding file content]"); } long bytesToConsume = (info.size + 511) & ~511; @@ -603,9 +590,7 @@ public class FullRestoreEngine extends RestoreEngine { } } } catch (IOException e) { - if (DEBUG) { - Slog.w(TAG, "io exception on restore socket read: " + e.getMessage()); - } + Slog.w(TAG, "io exception on restore socket read: " + e.getMessage()); logBMMEvent(BackupManagerMonitor.LOG_EVENT_ID_FAILED_TO_READ_DATA_FROM_TRANSPORT, onlyPackage); setResult(RestoreEngine.TRANSPORT_FAILURE); @@ -614,7 +599,7 @@ public class FullRestoreEngine extends RestoreEngine { // If we got here we're either running smoothly or we've finished if (info == null) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "No [more] data for this package; tearing down"); } tearDownPipes(); @@ -713,7 +698,7 @@ public class FullRestoreEngine extends RestoreEngine { mBackupManagerService.prepareOperationTimeout( token, fullBackupAgentTimeoutMillis, latch, OpType.RESTORE_WAIT); if (mTargetApp.processName.equals("system")) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "system agent - restoreFinished on thread"); } Runnable runner = new AdbRestoreFinishedRunnable(mAgent, token, @@ -749,7 +734,7 @@ public class FullRestoreEngine extends RestoreEngine { return true; } if (FullBackup.CACHE_TREE_TOKEN.equals(info.domain)) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Dropping cache file path " + info.path); } return false; @@ -761,7 +746,7 @@ public class FullRestoreEngine extends RestoreEngine { // API. Respect the no-backup intention and don't let the data get to // the app. if (info.path.startsWith("no_backup/")) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Dropping no_backup file path " + info.path); } return false; @@ -774,7 +759,7 @@ public class FullRestoreEngine extends RestoreEngine { private static boolean isCanonicalFilePath(String path) { if (path.contains("..") || path.contains("//")) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.w(TAG, "Dropping invalid path " + path); } return false; diff --git a/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java b/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java index 2374dee7755e..5a3494c2bc6e 100644 --- a/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java +++ b/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java @@ -17,7 +17,6 @@ package com.android.server.backup.restore; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import static com.android.server.backup.BackupPasswordManager.PBKDF_CURRENT; import static com.android.server.backup.BackupPasswordManager.PBKDF_FALLBACK; @@ -93,9 +92,7 @@ public class PerformAdbRestoreTask implements Runnable { FileInputStream rawInStream = null; try { if (!mBackupManagerService.backupPasswordMatches(mCurrentPassword)) { - if (DEBUG) { - Slog.w(TAG, "Backup password mismatch; aborting"); - } + Slog.w(TAG, "Backup password mismatch; aborting"); return; } @@ -122,7 +119,7 @@ public class PerformAdbRestoreTask implements Runnable { tarInputStream); mEngineThread.run(); - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "Done consuming input tarfile."); } } catch (Exception e) { @@ -144,7 +141,7 @@ public class PerformAdbRestoreTask implements Runnable { mObbConnection.tearDown(); mObserver = FullBackupRestoreObserverUtils.sendEndRestore(mObserver); Slog.d(TAG, "Full restore pass complete."); - mBackupManagerService.getWakelock().release(); + mBackupManagerService.getWakeLock().release(); } } diff --git a/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java b/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java index ec9d340abe45..707ae03b3964 100644 --- a/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java +++ b/services/backup/java/com/android/server/backup/restore/PerformUnifiedRestoreTask.java @@ -19,7 +19,6 @@ package com.android.server.backup.restore; import static android.app.backup.BackupAnnotations.OperationType.RESTORE; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import static com.android.server.backup.UserBackupManagerService.KEY_WIDGET_STATE; import static com.android.server.backup.UserBackupManagerService.PACKAGE_MANAGER_SENTINEL; @@ -253,9 +252,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { mUserId, backupEligibilityRules); filterSet = packagesToNames(apps); - if (DEBUG) { - Slog.i(TAG, "Full restore; asking about " + filterSet.length + " apps"); - } + Slog.i(TAG, "Full restore; asking about " + filterSet.length + " apps"); } mAcceptSet = new ArrayList<>(filterSet.length); @@ -315,7 +312,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { } } - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "Restore; accept set size is " + mAcceptSet.size()); for (PackageInfo info : mAcceptSet) { Slog.v(TAG, " " + info.packageName); @@ -335,7 +332,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { // Execute one tick of whatever state machine the task implements @Override public void execute() { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "*** Executing restore step " + mState); } switch (mState) { @@ -517,7 +514,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { mCurrentPackage.applicationInfo.uid = Process.SYSTEM_UID; mPmAgent = backupManagerService.makeMetadataAgent(null); mAgent = IBackupAgent.Stub.asInterface(mPmAgent.onBind()); - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "initiating restore for PMBA"); } initiateOneRestore(mCurrentPackage, 0); @@ -596,9 +593,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { return; } else if (mRestoreDescription == RestoreDescription.NO_MORE_PACKAGES) { // Yay we've reached the end cleanly - if (DEBUG) { - Slog.v(TAG, "No more packages; finishing restore"); - } + Slog.d(TAG, "No more packages; finishing restore"); int millis = (int) (SystemClock.elapsedRealtime() - mStartRealtime); EventLog.writeEvent( EventLogTags.RESTORE_SUCCESS, mRestoreAttemptedAppsCount, millis); @@ -606,9 +601,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { return; } - if (DEBUG) { - Slog.i(TAG, "Next restore package: " + mRestoreDescription); - } + Slog.i(TAG, "Next restore package: " + mRestoreDescription); mRestoreAttemptedAppsCount++; sendOnRestorePackage(mRestoreAttemptedAppsCount, pkgName); @@ -715,7 +708,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { } } - if (MORE_DEBUG) { + if (DEBUG) { Slog.v( TAG, "Package " @@ -776,7 +769,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { /* extras= */ addRestoreOperationTypeToEvent(/* extras= */ null)); if (mCurrentPackage.applicationInfo.backupAgentName == null || "".equals(mCurrentPackage.applicationInfo.backupAgentName)) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, "Data exists for package " @@ -852,9 +845,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { private void initiateOneRestore(PackageInfo app, long appVersionCode) { final String packageName = app.packageName; - if (DEBUG) { - Slog.d(TAG, "initiateOneRestore packageName=" + packageName); - } + Slog.d(TAG, "initiateOneRestore packageName=" + packageName); // !!! TODO: get the dirs from the transport mBackupDataName = new File(backupManagerService.getDataDir(), packageName + ".restore"); @@ -1010,9 +1001,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { // is this a special key? if (key.equals(KEY_WIDGET_STATE)) { - if (DEBUG) { - Slog.i(TAG, "Restoring widget state for " + packageName); - } + Slog.i(TAG, "Restoring widget state for " + packageName); mWidgetData = new byte[size]; in.readEntityData(mWidgetData, 0, size); } else { @@ -1044,7 +1033,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { /* extras= */ addRestoreOperationTypeToEvent(/* extras= */ null)); try { StreamFeederThread feeder = new StreamFeederThread(); - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, "Spinning threads for stream restore of " + mCurrentPackage.packageName); @@ -1070,9 +1059,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { // state RESTORE_FINISHED : provide the "no more data" signpost callback at the end private void restoreFinished() { - if (DEBUG) { - Slog.d(TAG, "restoreFinished packageName=" + mCurrentPackage.packageName); - } + Slog.d(TAG, "restoreFinished packageName=" + mCurrentPackage.packageName); try { long restoreAgentFinishedTimeoutMillis = mAgentTimeoutParameters.getRestoreAgentFinishedTimeoutMillis(); @@ -1167,7 +1154,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { if (result > 0) { // The transport wrote this many bytes of restore data to the // pipe, so pass it along to the engine. - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, " <- transport provided chunk size " + result); } if (result > bufferSize) { @@ -1179,13 +1166,13 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { int n = transportIn.read(buffer, 0, toCopy); engineOut.write(buffer, 0, n); toCopy -= n; - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, " -> wrote " + n + " to engine, left=" + toCopy); } } } else if (result == BackupTransport.NO_MORE_DATA) { // Clean finish. Wind up and we're done! - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, "Got clean full-restore EOF for " @@ -1213,7 +1200,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { status = result; } } - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "Done copying to engine, falling through"); } } catch (IOException e) { @@ -1322,9 +1309,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { @Override public void handleCancel(boolean cancelAll) { mOperationStorage.removeOperation(mEphemeralOpToken); - if (DEBUG) { - Slog.w(TAG, "Full-data restore target timed out; shutting down"); - } + Slog.w(TAG, "Full-data restore target timed out; shutting down"); Bundle monitoringExtras = addRestoreOperationTypeToEvent(/* extras= */ null); mBackupManagerMonitorEventSender.monitorEvent( BackupManagerMonitor.LOG_EVENT_ID_FULL_RESTORE_TIMEOUT, @@ -1342,7 +1327,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { // state FINAL : tear everything down and we're done. private void finalizeRestore() { - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "finishing restore mObserver=" + mObserver); } @@ -1366,7 +1351,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { // If we have a PM token, we must under all circumstances be sure to // handshake when we've finished. if (mPmToken > 0) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, "finishing PM token " + mPmToken); } try { @@ -1404,9 +1389,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { synchronized (backupManagerService.getPendingRestores()) { if (backupManagerService.getPendingRestores().size() > 0) { - if (DEBUG) { - Slog.d(TAG, "Starting next pending restore."); - } + Slog.d(TAG, "Starting next pending restore."); PerformUnifiedRestoreTask task = backupManagerService.getPendingRestores().remove(); backupManagerService .getBackupHandler() @@ -1417,7 +1400,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { } else { backupManagerService.setRestoreInProgress(false); - if (MORE_DEBUG) { + if (DEBUG) { Slog.d(TAG, "No pending restores."); } } @@ -1499,7 +1482,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { public void operationComplete(long unusedResult) { mOperationStorage.removeOperation(mEphemeralOpToken); - if (MORE_DEBUG) { + if (DEBUG) { Slog.i( TAG, "operationComplete() during restore: target=" @@ -1590,7 +1573,7 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { @VisibleForTesting void executeNextState(UnifiedRestoreState nextState) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, " => executing next step on " + this + " nextState=" + nextState); } mState = nextState; @@ -1689,25 +1672,19 @@ public class PerformUnifiedRestoreTask implements BackupRestoreTask { // (and not in the denylist) // - The package has restoreAnyVersion set to true and is not part of the denylist if (mVToUDenylist.contains(mCurrentPackage.packageName)){ - if (DEBUG) { - Slog.i(TAG, mCurrentPackage.packageName + " : Package is in V to U denylist"); - } + Slog.i(TAG, mCurrentPackage.packageName + " : Package is in V to U denylist"); return false; } else if ((mCurrentPackage.applicationInfo.flags & ApplicationInfo.FLAG_RESTORE_ANY_VERSION) == 0) { // package has restoreAnyVersion set to false - if (DEBUG) { - Slog.i(TAG, mCurrentPackage.packageName + Slog.i(TAG, mCurrentPackage.packageName + " : Package has restoreAnyVersion=false and is in V to U allowlist"); - } return mVToUAllowlist.contains(mCurrentPackage.packageName); } else { // package has restoreAnyVersion set to true and is nor in denylist - if (DEBUG) { - Slog.i(TAG, mCurrentPackage.packageName + Slog.i(TAG, mCurrentPackage.packageName + " : Package has restoreAnyVersion=true and is not in V to U denylist"); - } return true; } } diff --git a/services/backup/java/com/android/server/backup/utils/BackupEligibilityRules.java b/services/backup/java/com/android/server/backup/utils/BackupEligibilityRules.java index 508b62cd83f0..30243013a79b 100644 --- a/services/backup/java/com/android/server/backup/utils/BackupEligibilityRules.java +++ b/services/backup/java/com/android/server/backup/utils/BackupEligibilityRules.java @@ -16,7 +16,6 @@ package com.android.server.backup.utils; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import static com.android.server.backup.UserBackupManagerService.PACKAGE_MANAGER_SENTINEL; import static com.android.server.backup.UserBackupManagerService.SETTINGS_PACKAGE; @@ -46,6 +45,7 @@ import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.ArrayUtils; +import com.android.server.backup.BackupManagerService; import com.android.server.backup.SetUtils; import com.android.server.backup.transport.BackupTransportClient; import com.android.server.backup.transport.TransportConnection; @@ -413,8 +413,8 @@ public class BackupEligibilityRules { // partition will be signed with the device's platform certificate, so on // different phones the same system app will have different signatures.) if ((target.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { - if (MORE_DEBUG) { - Slog.v(TAG, "System app " + target.packageName + " - skipping sig check"); + if (BackupManagerService.DEBUG) { + Slog.d(TAG, "System app " + target.packageName + " - skipping sig check"); } return true; } @@ -431,10 +431,8 @@ public class BackupEligibilityRules { return false; } - if (DEBUG) { - Slog.v(TAG, "signaturesMatch(): stored=" + Arrays.toString(storedSigs) + Slog.d(TAG, "signaturesMatch(): stored=" + Arrays.toString(storedSigs) + " device=" + Arrays.toString(signingInfo.getApkContentsSigners())); - } final int nStored = storedSigs.length; if (nStored == 1) { diff --git a/services/backup/java/com/android/server/backup/utils/BackupManagerMonitorEventSender.java b/services/backup/java/com/android/server/backup/utils/BackupManagerMonitorEventSender.java index 549d08c03933..c4519b1173eb 100644 --- a/services/backup/java/com/android/server/backup/utils/BackupManagerMonitorEventSender.java +++ b/services/backup/java/com/android/server/backup/utils/BackupManagerMonitorEventSender.java @@ -22,7 +22,6 @@ import static android.app.backup.BackupManagerMonitor.EXTRA_LOG_OPERATION_TYPE; import static android.app.backup.BackupManagerMonitor.LOG_EVENT_CATEGORY_AGENT; import static android.app.backup.BackupManagerMonitor.LOG_EVENT_ID_AGENT_LOGGING_RESULTS; -import static com.android.server.backup.BackupManagerService.DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import android.annotation.Nullable; @@ -115,15 +114,11 @@ public class BackupManagerMonitorEventSender { if (mMonitor != null) { mMonitor.onEvent(bundle); } else { - if (DEBUG) { - Slog.w(TAG, "backup manager monitor is null unable to send event"); - } + Slog.w(TAG, "backup manager monitor is null unable to send event"); } } catch (RemoteException e) { mMonitor = null; - if (DEBUG) { - Slog.w(TAG, "backup manager monitor went away"); - } + Slog.w(TAG, "backup manager monitor went away"); } } diff --git a/services/backup/java/com/android/server/backup/utils/BackupObserverUtils.java b/services/backup/java/com/android/server/backup/utils/BackupObserverUtils.java index c0cf2ef86920..95e6cfc2f252 100644 --- a/services/backup/java/com/android/server/backup/utils/BackupObserverUtils.java +++ b/services/backup/java/com/android/server/backup/utils/BackupObserverUtils.java @@ -16,7 +16,6 @@ package com.android.server.backup.utils; -import static com.android.server.backup.BackupManagerService.DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import android.app.backup.BackupProgress; @@ -38,9 +37,7 @@ public class BackupObserverUtils { try { observer.onUpdate(packageName, progress); } catch (RemoteException e) { - if (DEBUG) { - Slog.w(TAG, "Backup observer went away: onUpdate"); - } + Slog.w(TAG, "Backup observer went away: onUpdate"); } } } @@ -55,9 +52,7 @@ public class BackupObserverUtils { try { observer.onResult(packageName, status); } catch (RemoteException e) { - if (DEBUG) { - Slog.w(TAG, "Backup observer went away: onResult"); - } + Slog.w(TAG, "Backup observer went away: onResult"); } } } @@ -71,9 +66,7 @@ public class BackupObserverUtils { try { observer.backupFinished(status); } catch (RemoteException e) { - if (DEBUG) { - Slog.w(TAG, "Backup observer went away: backupFinished"); - } + Slog.w(TAG, "Backup observer went away: backupFinished"); } } } diff --git a/services/backup/java/com/android/server/backup/utils/RestoreUtils.java b/services/backup/java/com/android/server/backup/utils/RestoreUtils.java index 5a8533a2daee..23e5bb965d7a 100644 --- a/services/backup/java/com/android/server/backup/utils/RestoreUtils.java +++ b/services/backup/java/com/android/server/backup/utils/RestoreUtils.java @@ -16,7 +16,6 @@ package com.android.server.backup.utils; -import static com.android.server.backup.BackupManagerService.DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import android.content.Context; @@ -78,9 +77,7 @@ public class RestoreUtils { int userId) { boolean okay = true; - if (DEBUG) { - Slog.d(TAG, "Installing from backup: " + info.packageName); - } + Slog.d(TAG, "Installing from backup: " + info.packageName); try { LocalIntentReceiver receiver = new LocalIntentReceiver(); diff --git a/services/backup/java/com/android/server/backup/utils/TarBackupReader.java b/services/backup/java/com/android/server/backup/utils/TarBackupReader.java index 22eefb3b73c2..44b536adcf31 100644 --- a/services/backup/java/com/android/server/backup/utils/TarBackupReader.java +++ b/services/backup/java/com/android/server/backup/utils/TarBackupReader.java @@ -36,7 +36,6 @@ import static android.app.backup.BackupManagerMonitor.LOG_EVENT_ID_VERSIONS_MATC import static android.app.backup.BackupManagerMonitor.LOG_EVENT_ID_VERSION_OF_BACKUP_OLDER; import static com.android.server.backup.BackupManagerService.DEBUG; -import static com.android.server.backup.BackupManagerService.MORE_DEBUG; import static com.android.server.backup.BackupManagerService.TAG; import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_FILENAME; import static com.android.server.backup.UserBackupManagerService.BACKUP_MANIFEST_VERSION; @@ -175,7 +174,7 @@ public class TarBackupReader { } case 0: { // presume EOF - if (MORE_DEBUG) { + if (DEBUG) { Slog.w(TAG, "Saw type=0 in tar header block, info=" + info); } return null; @@ -195,9 +194,7 @@ public class TarBackupReader { info.path = info.path.substring(FullBackup.SHARED_PREFIX.length()); info.packageName = SHARED_BACKUP_AGENT_PACKAGE; info.domain = FullBackup.SHARED_STORAGE_TOKEN; - if (DEBUG) { - Slog.i(TAG, "File in shared storage: " + info.path); - } + Slog.i(TAG, "File in shared storage: " + info.path); } else if (FullBackup.APPS_PREFIX.regionMatches(0, info.path, 0, FullBackup.APPS_PREFIX.length())) { // App content! Parse out the package name and domain @@ -227,11 +224,9 @@ public class TarBackupReader { } } } catch (IOException e) { + Slog.e(TAG, "Parse error in header: " + e.getMessage()); if (DEBUG) { - Slog.e(TAG, "Parse error in header: " + e.getMessage()); - if (MORE_DEBUG) { - hexLog(block); - } + hexLog(block); } throw e; } @@ -254,20 +249,20 @@ public class TarBackupReader { if (size <= 0) { throw new IllegalArgumentException("size must be > 0"); } - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, " ... readExactly(" + size + ") called"); } int soFar = 0; while (soFar < size) { int nRead = in.read(buffer, offset + soFar, size - soFar); if (nRead <= 0) { - if (MORE_DEBUG) { + if (DEBUG) { Slog.w(TAG, "- wanted exactly " + size + " but got only " + soFar); } break; } soFar += nRead; - if (MORE_DEBUG) { + if (DEBUG) { Slog.v(TAG, " + got " + nRead + "; now wanting " + (size - soFar)); } } @@ -290,7 +285,7 @@ public class TarBackupReader { } byte[] buffer = new byte[(int) info.size]; - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, " readAppManifestAndReturnSignatures() looking for " + info.size + " bytes"); } @@ -514,10 +509,7 @@ public class TarBackupReader { null); } } else { - if (DEBUG) { - Slog.i(TAG, - "Restore manifest from " + info.packageName + " but allowBackup=false"); - } + Slog.i(TAG, "Restore manifest from " + info.packageName + " but allowBackup=false"); mBackupManagerMonitorEventSender.monitorEvent( LOG_EVENT_ID_FULL_RESTORE_ALLOW_BACKUP_FALSE, pkgInfo, @@ -529,10 +521,8 @@ public class TarBackupReader { // the restore properly only if the dataset provides the // apk file and we can successfully install it. if (allowApks) { - if (DEBUG) { - Slog.i(TAG, "Package " + info.packageName - + " not installed; requiring apk in dataset"); - } + Slog.i(TAG, + "Package " + info.packageName + " not installed; requiring apk in dataset"); policy = RestorePolicy.ACCEPT_IF_APK; } else { policy = RestorePolicy.IGNORE; @@ -570,7 +560,7 @@ public class TarBackupReader { long partial = (size + 512) % 512; if (partial > 0) { final int needed = 512 - (int) partial; - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Skipping tar padding: " + needed + " bytes"); } byte[] buffer = new byte[needed]; @@ -619,7 +609,7 @@ public class TarBackupReader { } switch (token) { case BACKUP_WIDGET_METADATA_TOKEN: { - if (MORE_DEBUG) { + if (DEBUG) { Slog.i(TAG, "Got widget metadata for " + info.packageName); } mWidgetData = new byte[size]; @@ -627,10 +617,9 @@ public class TarBackupReader { break; } default: { - if (DEBUG) { - Slog.i(TAG, "Ignoring metadata blob " + Integer.toHexString(token) - + " for " + info.packageName); - } + Slog.i(TAG, + "Ignoring metadata blob " + Integer.toHexString(token) + " for " + + info.packageName); in.skipBytes(size); break; } @@ -759,9 +748,7 @@ public class TarBackupReader { } else if ("size".equals(keyStr)) { info.size = Long.parseLong(valStr); } else { - if (DEBUG) { - Slog.i(TAG, "Unhandled pax key: " + key); - } + Slog.i(TAG, "Unhandled pax key: " + key); } offset += linelen; diff --git a/services/robotests/backup/src/com/android/server/backup/BackupManagerServiceRoboTest.java b/services/robotests/backup/src/com/android/server/backup/BackupManagerServiceRoboTest.java index b80d68de0f2e..ba64ed44cbb5 100644 --- a/services/robotests/backup/src/com/android/server/backup/BackupManagerServiceRoboTest.java +++ b/services/robotests/backup/src/com/android/server/backup/BackupManagerServiceRoboTest.java @@ -1518,14 +1518,13 @@ public class BackupManagerServiceRoboTest { } /** - * Test verifying that {@link BackupManagerService#MORE_DEBUG} is set to {@code false}. This is + * Test verifying that {@link BackupManagerService#DEBUG} is set to {@code false}. This is * specifically to prevent overloading the logs in production. */ @Test - public void testMoreDebug_isFalse() throws Exception { - boolean moreDebug = BackupManagerService.MORE_DEBUG; - - assertThat(moreDebug).isFalse(); + public void testDebug_isFalse() { + boolean debug = BackupManagerService.DEBUG; + assertThat(debug).isFalse(); } /** Test that the constructor handles {@code null} parameters. */ diff --git a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupReporterTest.java b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupReporterTest.java index 2db2438b9a21..2749b0acf193 100644 --- a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupReporterTest.java +++ b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupReporterTest.java @@ -57,8 +57,8 @@ public class KeyValueBackupReporterTest { } @Test - public void testMoreDebug_isFalse() { - assertThat(KeyValueBackupReporter.MORE_DEBUG).isFalse(); + public void testDebug_isFalse() { + assertThat(KeyValueBackupReporter.DEBUG).isFalse(); } @Test diff --git a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java index de16b7ee8126..2dd16f68dc56 100644 --- a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java +++ b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java @@ -109,6 +109,7 @@ import com.android.server.EventLogTags; import com.android.server.LocalServices; import com.android.server.backup.BackupAgentConnectionManager; import com.android.server.backup.BackupRestoreTask; +import com.android.server.backup.BackupWakeLock; import com.android.server.backup.DataChangedJournal; import com.android.server.backup.KeyValueBackupJob; import com.android.server.backup.PackageManagerBackupAgent; @@ -201,7 +202,7 @@ public class KeyValueBackupTaskTest { private TransportData mTransport; private ShadowLooper mShadowBackupLooper; private Handler mBackupHandler; - private UserBackupManagerService.BackupWakeLock mWakeLock; + private BackupWakeLock mWakeLock; private KeyValueBackupReporter mReporter; private PackageManager mPackageManager; private ShadowPackageManager mShadowPackageManager; @@ -238,7 +239,7 @@ public class KeyValueBackupTaskTest { mPackageManager = mApplication.getPackageManager(); mShadowPackageManager = shadowOf(mPackageManager); - mWakeLock = createBackupWakeLock(mApplication); + mWakeLock = spy(createBackupWakeLock(mApplication)); mBackupManager = spy(FakeIBackupManager.class); // Needed to be able to use a real BMS instead of a mock @@ -737,17 +738,16 @@ public class KeyValueBackupTaskTest { // In production (for non-system agents) the call is asynchronous, but here is // synchronous, so it's fine to verify here. // Verify has set work source and hasn't unset yet. - verify(mBackupManagerService) - .setWorkSource( - argThat(workSource -> workSource.getUid(0) == PACKAGE_1.uid)); - verify(mBackupManagerService, never()).setWorkSource(null); + verify(mWakeLock).setWorkSource( + argThat(workSource -> workSource.getUid(0) == PACKAGE_1.uid)); + verify(mWakeLock, never()).setWorkSource(null); }); KeyValueBackupTask task = createKeyValueBackupTask(transportMock, PACKAGE_1); runTask(task); // More verifications inside agent call above - verify(mBackupManagerService).setWorkSource(null); + verify(mWakeLock).setWorkSource(null); } /** @@ -765,7 +765,7 @@ public class KeyValueBackupTaskTest { runTask(task); - verify(mBackupManagerService).setWorkSource(null); + verify(mWakeLock).setWorkSource(null); verify(mObserver).onResult(PACKAGE_1.packageName, ERROR_AGENT_FAILURE); verify(mObserver).backupFinished(SUCCESS); assertBackupPendingFor(PACKAGE_1); @@ -798,7 +798,7 @@ public class KeyValueBackupTaskTest { runTask(task); - verify(mBackupManagerService).setWorkSource(null); + verify(mWakeLock).setWorkSource(null); verify(mObserver).onResult(PACKAGE_1.packageName, ERROR_AGENT_FAILURE); verify(mObserver).backupFinished(SUCCESS); assertBackupPendingFor(PACKAGE_1); @@ -815,7 +815,7 @@ public class KeyValueBackupTaskTest { runTask(task); - verify(mBackupManagerService).setWorkSource(null); + verify(mWakeLock).setWorkSource(null); verify(mObserver).onResult(PACKAGE_1.packageName, ERROR_AGENT_FAILURE); verify(mObserver).backupFinished(SUCCESS); assertBackupPendingFor(PACKAGE_1); @@ -833,7 +833,7 @@ public class KeyValueBackupTaskTest { runTask(task); - verify(mBackupManagerService).setWorkSource(null); + verify(mWakeLock).setWorkSource(null); verify(mObserver).onResult(PACKAGE_1.packageName, ERROR_AGENT_FAILURE); verify(mObserver).backupFinished(SUCCESS); assertBackupPendingFor(PACKAGE_1); @@ -864,7 +864,7 @@ public class KeyValueBackupTaskTest { runTask(task); - verify(mBackupManagerService).setWorkSource(null); + verify(mWakeLock).setWorkSource(null); verify(mBackupAgentConnectionManager).unbindAgent(argThat(applicationInfo(PACKAGE_1)), eq(false)); } @@ -918,7 +918,7 @@ public class KeyValueBackupTaskTest { runTask(task); - verify(mBackupManagerService).setWorkSource(null); + verify(mWakeLock).setWorkSource(null); } @Test diff --git a/services/robotests/backup/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java b/services/robotests/backup/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java index 73ddbe8cec7c..ffec68aa4082 100644 --- a/services/robotests/backup/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java +++ b/services/robotests/backup/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java @@ -51,6 +51,7 @@ import android.platform.test.annotations.Presubmit; import com.android.server.EventLogTags; import com.android.server.backup.BackupAgentTimeoutParameters; +import com.android.server.backup.BackupWakeLock; import com.android.server.backup.OperationStorage; import com.android.server.backup.TransportManager; import com.android.server.backup.UserBackupManagerService; @@ -103,7 +104,7 @@ public class ActiveRestoreSessionTest { @Mock private OperationStorage mOperationStorage; private ShadowLooper mShadowBackupLooper; private ShadowApplication mShadowApplication; - private UserBackupManagerService.BackupWakeLock mWakeLock; + private BackupWakeLock mWakeLock; private TransportData mTransport; private RestoreSet mRestoreSet1; private RestoreSet mRestoreSet2; diff --git a/services/robotests/backup/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java b/services/robotests/backup/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java index 4d04c8b76fc7..10d23dc18e58 100644 --- a/services/robotests/backup/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java +++ b/services/robotests/backup/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java @@ -39,6 +39,7 @@ import android.util.Log; import com.android.server.backup.BackupAgentTimeoutParameters; import com.android.server.backup.BackupManagerConstants; import com.android.server.backup.BackupManagerService; +import com.android.server.backup.BackupWakeLock; import com.android.server.backup.TransportManager; import com.android.server.backup.UserBackupManagerService; @@ -114,7 +115,7 @@ public class BackupManagerServiceTestUtils { TransportManager transportManager, PackageManager packageManager, Handler backupHandler, - UserBackupManagerService.BackupWakeLock wakeLock, + BackupWakeLock wakeLock, BackupAgentTimeoutParameters agentTimeoutParameters) { when(backupManagerService.getContext()).thenReturn(application); @@ -123,7 +124,7 @@ public class BackupManagerServiceTestUtils { when(backupManagerService.getBackupHandler()).thenReturn(backupHandler); when(backupManagerService.getQueueLock()).thenReturn(new Object()); when(backupManagerService.getActivityManager()).thenReturn(mock(IActivityManager.class)); - when(backupManagerService.getWakelock()).thenReturn(wakeLock); + when(backupManagerService.getWakeLock()).thenReturn(wakeLock); when(backupManagerService.getAgentTimeoutParameters()).thenReturn(agentTimeoutParameters); AccessorMock backupEnabled = mockAccessor(false); @@ -161,10 +162,12 @@ public class BackupManagerServiceTestUtils { }); } - public static UserBackupManagerService.BackupWakeLock createBackupWakeLock( - Application application) { + /** + * Creates a wakelock for testing. + */ + public static BackupWakeLock createBackupWakeLock(Application application) { PowerManager powerManager = application.getSystemService(PowerManager.class); - return new UserBackupManagerService.BackupWakeLock( + return new BackupWakeLock( powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "*backup*"), 0, new BackupManagerConstants(Handler.getMain(), application.getContentResolver())); } diff --git a/services/tests/mockingservicestests/src/com/android/server/backup/fullbackup/PerformFullTransportBackupTaskTest.java b/services/tests/mockingservicestests/src/com/android/server/backup/fullbackup/PerformFullTransportBackupTaskTest.java index e618433862f2..2b7a62a9f9fe 100644 --- a/services/tests/mockingservicestests/src/com/android/server/backup/fullbackup/PerformFullTransportBackupTaskTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/backup/fullbackup/PerformFullTransportBackupTaskTest.java @@ -35,6 +35,7 @@ import androidx.test.runner.AndroidJUnit4; import com.android.server.backup.BackupAgentConnectionManager; import com.android.server.backup.BackupAgentTimeoutParameters; +import com.android.server.backup.BackupWakeLock; import com.android.server.backup.OperationStorage; import com.android.server.backup.TransportManager; import com.android.server.backup.UserBackupManagerService; @@ -81,7 +82,7 @@ public class PerformFullTransportBackupTaskTest { @Mock TransportManager mTransportManager; @Mock - UserBackupManagerService.BackupWakeLock mWakeLock; + BackupWakeLock mWakeLock; private final List<String> mEligiblePackages = new ArrayList<>(); @@ -94,7 +95,7 @@ public class PerformFullTransportBackupTaskTest { when(mBackupManagerService.getPackageManager()).thenReturn(mPackageManager); when(mBackupManagerService.getQueueLock()).thenReturn("something!"); when(mBackupManagerService.isEnabled()).thenReturn(true); - when(mBackupManagerService.getWakelock()).thenReturn(mWakeLock); + when(mBackupManagerService.getWakeLock()).thenReturn(mWakeLock); when(mBackupManagerService.isSetupComplete()).thenReturn(true); when(mBackupManagerService.getAgentTimeoutParameters()).thenReturn( mBackupAgentTimeoutParameters); |