Loading services/backup/java/com/android/server/backup/KeyValueAdbRestoreEngine.java +5 −6 Original line number Original line Diff line number Diff line Loading @@ -64,8 +64,7 @@ public class KeyValueAdbRestoreEngine implements Runnable { try { try { File restoreData = prepareRestoreData(mInfo, mInFD); File restoreData = prepareRestoreData(mInfo, mInFD); // TODO: version ? invokeAgentForAdbRestore(mAgent, mInfo, restoreData); invokeAgentForAdbRestore(mAgent, mInfo, restoreData, 0); } catch (IOException e) { } catch (IOException e) { e.printStackTrace(); e.printStackTrace(); } } Loading @@ -83,8 +82,8 @@ public class KeyValueAdbRestoreEngine implements Runnable { return sortedDataName; return sortedDataName; } } private void invokeAgentForAdbRestore(IBackupAgent agent, FileMetadata info, File restoreData, private void invokeAgentForAdbRestore(IBackupAgent agent, FileMetadata info, File restoreData) int versionCode) throws IOException { throws IOException { String pkg = info.packageName; String pkg = info.packageName; File newStateName = new File(mDataDir, pkg + ".new"); File newStateName = new File(mDataDir, pkg + ".new"); try { try { Loading @@ -95,9 +94,9 @@ public class KeyValueAdbRestoreEngine implements Runnable { if (DEBUG) { if (DEBUG) { Slog.i(TAG, "Starting restore of package " + pkg + " for version code " Slog.i(TAG, "Starting restore of package " + pkg + " for version code " + versionCode); + info.version); } } agent.doRestore(backupData, versionCode, newState, mToken, agent.doRestore(backupData, info.version, newState, mToken, mBackupManagerService.getBackupManagerBinder()); mBackupManagerService.getBackupManagerBinder()); } catch (IOException e) { } catch (IOException e) { Slog.e(TAG, "Exception opening file. " + e); Slog.e(TAG, "Exception opening file. " + e); Loading services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -99,6 +99,7 @@ public class PerformAdbRestoreTask implements Runnable { private FullBackupObbConnection mObbConnection = null; private FullBackupObbConnection mObbConnection = null; private ParcelFileDescriptor[] mPipes = null; private ParcelFileDescriptor[] mPipes = null; private byte[] mWidgetData = null; private byte[] mWidgetData = null; private long mAppVersion; private long mBytes; private long mBytes; private final BackupAgentTimeoutParameters mAgentTimeoutParameters; private final BackupAgentTimeoutParameters mAgentTimeoutParameters; Loading Loading @@ -476,6 +477,9 @@ public class PerformAdbRestoreTask implements Runnable { if (info.path.equals(BACKUP_MANIFEST_FILENAME)) { if (info.path.equals(BACKUP_MANIFEST_FILENAME)) { Signature[] signatures = tarBackupReader.readAppManifestAndReturnSignatures( Signature[] signatures = tarBackupReader.readAppManifestAndReturnSignatures( info); info); // readAppManifestAndReturnSignatures() will have extracted the version from // the manifest, so we save it to use in key-value restore later. mAppVersion = info.version; PackageManagerInternal pmi = LocalServices.getService( PackageManagerInternal pmi = LocalServices.getService( PackageManagerInternal.class); PackageManagerInternal.class); RestorePolicy restorePolicy = tarBackupReader.chooseRestorePolicy( RestorePolicy restorePolicy = tarBackupReader.chooseRestorePolicy( Loading Loading @@ -667,6 +671,8 @@ public class PerformAdbRestoreTask implements Runnable { Slog.d(TAG, "Restoring key-value file for " + pkg Slog.d(TAG, "Restoring key-value file for " + pkg + " : " + info.path); + " : " + info.path); } } // Set the version saved from manifest entry. info.version = mAppVersion; KeyValueAdbRestoreEngine restoreEngine = KeyValueAdbRestoreEngine restoreEngine = new KeyValueAdbRestoreEngine( new KeyValueAdbRestoreEngine( mBackupManagerService, mBackupManagerService, Loading Loading
services/backup/java/com/android/server/backup/KeyValueAdbRestoreEngine.java +5 −6 Original line number Original line Diff line number Diff line Loading @@ -64,8 +64,7 @@ public class KeyValueAdbRestoreEngine implements Runnable { try { try { File restoreData = prepareRestoreData(mInfo, mInFD); File restoreData = prepareRestoreData(mInfo, mInFD); // TODO: version ? invokeAgentForAdbRestore(mAgent, mInfo, restoreData); invokeAgentForAdbRestore(mAgent, mInfo, restoreData, 0); } catch (IOException e) { } catch (IOException e) { e.printStackTrace(); e.printStackTrace(); } } Loading @@ -83,8 +82,8 @@ public class KeyValueAdbRestoreEngine implements Runnable { return sortedDataName; return sortedDataName; } } private void invokeAgentForAdbRestore(IBackupAgent agent, FileMetadata info, File restoreData, private void invokeAgentForAdbRestore(IBackupAgent agent, FileMetadata info, File restoreData) int versionCode) throws IOException { throws IOException { String pkg = info.packageName; String pkg = info.packageName; File newStateName = new File(mDataDir, pkg + ".new"); File newStateName = new File(mDataDir, pkg + ".new"); try { try { Loading @@ -95,9 +94,9 @@ public class KeyValueAdbRestoreEngine implements Runnable { if (DEBUG) { if (DEBUG) { Slog.i(TAG, "Starting restore of package " + pkg + " for version code " Slog.i(TAG, "Starting restore of package " + pkg + " for version code " + versionCode); + info.version); } } agent.doRestore(backupData, versionCode, newState, mToken, agent.doRestore(backupData, info.version, newState, mToken, mBackupManagerService.getBackupManagerBinder()); mBackupManagerService.getBackupManagerBinder()); } catch (IOException e) { } catch (IOException e) { Slog.e(TAG, "Exception opening file. " + e); Slog.e(TAG, "Exception opening file. " + e); Loading
services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -99,6 +99,7 @@ public class PerformAdbRestoreTask implements Runnable { private FullBackupObbConnection mObbConnection = null; private FullBackupObbConnection mObbConnection = null; private ParcelFileDescriptor[] mPipes = null; private ParcelFileDescriptor[] mPipes = null; private byte[] mWidgetData = null; private byte[] mWidgetData = null; private long mAppVersion; private long mBytes; private long mBytes; private final BackupAgentTimeoutParameters mAgentTimeoutParameters; private final BackupAgentTimeoutParameters mAgentTimeoutParameters; Loading Loading @@ -476,6 +477,9 @@ public class PerformAdbRestoreTask implements Runnable { if (info.path.equals(BACKUP_MANIFEST_FILENAME)) { if (info.path.equals(BACKUP_MANIFEST_FILENAME)) { Signature[] signatures = tarBackupReader.readAppManifestAndReturnSignatures( Signature[] signatures = tarBackupReader.readAppManifestAndReturnSignatures( info); info); // readAppManifestAndReturnSignatures() will have extracted the version from // the manifest, so we save it to use in key-value restore later. mAppVersion = info.version; PackageManagerInternal pmi = LocalServices.getService( PackageManagerInternal pmi = LocalServices.getService( PackageManagerInternal.class); PackageManagerInternal.class); RestorePolicy restorePolicy = tarBackupReader.chooseRestorePolicy( RestorePolicy restorePolicy = tarBackupReader.chooseRestorePolicy( Loading Loading @@ -667,6 +671,8 @@ public class PerformAdbRestoreTask implements Runnable { Slog.d(TAG, "Restoring key-value file for " + pkg Slog.d(TAG, "Restoring key-value file for " + pkg + " : " + info.path); + " : " + info.path); } } // Set the version saved from manifest entry. info.version = mAppVersion; KeyValueAdbRestoreEngine restoreEngine = KeyValueAdbRestoreEngine restoreEngine = new KeyValueAdbRestoreEngine( new KeyValueAdbRestoreEngine( mBackupManagerService, mBackupManagerService, Loading