Loading core/java/android/os/incremental/IIncrementalManager.aidl +0 −3 Original line number Diff line number Diff line Loading @@ -33,7 +33,4 @@ interface IIncrementalManager { boolean startDataLoader(int mountId); void showHealthBlockedUI(int mountId); void destroyDataLoader(int mountId); // fileId is a 16 byte long identifier. void newFileForDataLoader(int mountId, in byte[] fileId, in byte[] metadata); } core/java/android/os/incremental/IIncrementalService.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.os.incremental; import android.content.pm.DataLoaderParamsParcel; import android.content.pm.IDataLoaderStatusListener; import android.os.incremental.IncrementalNewFileParams; /** @hide */ Loading @@ -33,7 +34,7 @@ interface IIncrementalService { * Opens or creates a storage given a target path and data loader params. Returns the storage ID. */ int openStorage(in @utf8InCpp String path); int createStorage(in @utf8InCpp String path, in DataLoaderParamsParcel params, int createMode); int createStorage(in @utf8InCpp String path, in DataLoaderParamsParcel params, in IDataLoaderStatusListener listener, int createMode); int createLinkedStorage(in @utf8InCpp String path, int otherStorageId, int createMode); /** Loading core/java/android/os/incremental/IncrementalFileStorages.java +17 −8 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.content.pm.DataLoaderParams; import android.content.pm.IDataLoaderStatusListener; import android.content.pm.InstallationFile; import android.text.TextUtils; import android.util.Slog; Loading Loading @@ -74,6 +75,7 @@ public final class IncrementalFileStorages { public static IncrementalFileStorages initialize(Context context, @NonNull File stageDir, @NonNull DataLoaderParams dataLoaderParams, @Nullable IDataLoaderStatusListener dataLoaderStatusListener, List<InstallationFile> addedFiles) throws IOException { // TODO(b/136132412): sanity check if session should not be incremental IncrementalManager incrementalManager = (IncrementalManager) context.getSystemService( Loading @@ -85,7 +87,13 @@ public final class IncrementalFileStorages { IncrementalFileStorages result = null; try { result = new IncrementalFileStorages(stageDir, incrementalManager, dataLoaderParams); result = new IncrementalFileStorages(stageDir, incrementalManager, dataLoaderParams, dataLoaderStatusListener); if (!addedFiles.isEmpty()) { result.mDefaultStorage.bind(stageDir.getAbsolutePath()); } for (InstallationFile file : addedFiles) { if (file.getLocation() == LOCATION_DATA_APP) { try { Loading @@ -93,14 +101,15 @@ public final class IncrementalFileStorages { } catch (IOException e) { // TODO(b/146080380): add incremental-specific error code throw new IOException( "Failed to add and configure Incremental File: " + file.getName(), e); "Failed to add file to IncFS: " + file.getName() + ", reason: " + e.getMessage(), e.getCause()); } } else { throw new IOException("Unknown file location: " + file.getLocation()); } } // TODO(b/146080380): remove 5 secs wait in startLoading if (!result.mDefaultStorage.startLoading()) { // TODO(b/146080380): add incremental-specific error code throw new IOException("Failed to start loading data for Incremental installation."); Loading @@ -117,7 +126,8 @@ public final class IncrementalFileStorages { private IncrementalFileStorages(@NonNull File stageDir, @NonNull IncrementalManager incrementalManager, @NonNull DataLoaderParams dataLoaderParams) throws IOException { @NonNull DataLoaderParams dataLoaderParams, @Nullable IDataLoaderStatusListener dataLoaderStatusListener) throws IOException { mStageDir = stageDir; mIncrementalManager = incrementalManager; if (dataLoaderParams.getComponentName().getPackageName().equals("local")) { Loading @@ -134,6 +144,7 @@ public final class IncrementalFileStorages { } mDefaultStorage = mIncrementalManager.createStorage(mDefaultDir, dataLoaderParams, dataLoaderStatusListener, IncrementalManager.CREATE_MODE_CREATE | IncrementalManager.CREATE_MODE_TEMPORARY_BIND, false); } Loading @@ -144,10 +155,8 @@ public final class IncrementalFileStorages { } private void addApkFile(@NonNull InstallationFile apk) throws IOException { final String stageDirPath = mStageDir.getAbsolutePath(); mDefaultStorage.bind(stageDirPath); String apkName = apk.getName(); File targetFile = Paths.get(stageDirPath, apkName).toFile(); final String apkName = apk.getName(); final File targetFile = new File(mStageDir, apkName); if (!targetFile.exists()) { mDefaultStorage.makeFile(apkName, apk.getLengthBytes(), null, apk.getMetadata(), apk.getSignature()); Loading core/java/android/os/incremental/IncrementalManager.java +4 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.annotation.Nullable; import android.annotation.SystemService; import android.content.Context; import android.content.pm.DataLoaderParams; import android.content.pm.IDataLoaderStatusListener; import android.os.RemoteException; import android.util.SparseArray; Loading Loading @@ -103,10 +104,11 @@ public final class IncrementalManager { */ @Nullable public IncrementalStorage createStorage(@NonNull String path, @NonNull DataLoaderParams params, @CreateMode int createMode, @NonNull DataLoaderParams params, @Nullable IDataLoaderStatusListener listener, @CreateMode int createMode, boolean autoStartDataLoader) { try { final int id = mService.createStorage(path, params.getData(), createMode); final int id = mService.createStorage(path, params.getData(), listener, createMode); if (id < 0) { return null; } Loading core/java/android/service/dataloader/DataLoaderService.java +1 −1 Original line number Diff line number Diff line Loading @@ -240,7 +240,7 @@ public abstract class DataLoaderService extends Service { private native boolean nativeDestroyDataLoader(int storageId); private native boolean nativePrepareImage(int storageId, Collection<InstallationFile> addedFiles, Collection<String> removedFiles); List<InstallationFile> addedFiles, List<String> removedFiles); private static native void nativeWriteData(long nativeInstance, String name, long offsetBytes, long lengthBytes, ParcelFileDescriptor incomingFd); Loading Loading
core/java/android/os/incremental/IIncrementalManager.aidl +0 −3 Original line number Diff line number Diff line Loading @@ -33,7 +33,4 @@ interface IIncrementalManager { boolean startDataLoader(int mountId); void showHealthBlockedUI(int mountId); void destroyDataLoader(int mountId); // fileId is a 16 byte long identifier. void newFileForDataLoader(int mountId, in byte[] fileId, in byte[] metadata); }
core/java/android/os/incremental/IIncrementalService.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.os.incremental; import android.content.pm.DataLoaderParamsParcel; import android.content.pm.IDataLoaderStatusListener; import android.os.incremental.IncrementalNewFileParams; /** @hide */ Loading @@ -33,7 +34,7 @@ interface IIncrementalService { * Opens or creates a storage given a target path and data loader params. Returns the storage ID. */ int openStorage(in @utf8InCpp String path); int createStorage(in @utf8InCpp String path, in DataLoaderParamsParcel params, int createMode); int createStorage(in @utf8InCpp String path, in DataLoaderParamsParcel params, in IDataLoaderStatusListener listener, int createMode); int createLinkedStorage(in @utf8InCpp String path, int otherStorageId, int createMode); /** Loading
core/java/android/os/incremental/IncrementalFileStorages.java +17 −8 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.content.pm.DataLoaderParams; import android.content.pm.IDataLoaderStatusListener; import android.content.pm.InstallationFile; import android.text.TextUtils; import android.util.Slog; Loading Loading @@ -74,6 +75,7 @@ public final class IncrementalFileStorages { public static IncrementalFileStorages initialize(Context context, @NonNull File stageDir, @NonNull DataLoaderParams dataLoaderParams, @Nullable IDataLoaderStatusListener dataLoaderStatusListener, List<InstallationFile> addedFiles) throws IOException { // TODO(b/136132412): sanity check if session should not be incremental IncrementalManager incrementalManager = (IncrementalManager) context.getSystemService( Loading @@ -85,7 +87,13 @@ public final class IncrementalFileStorages { IncrementalFileStorages result = null; try { result = new IncrementalFileStorages(stageDir, incrementalManager, dataLoaderParams); result = new IncrementalFileStorages(stageDir, incrementalManager, dataLoaderParams, dataLoaderStatusListener); if (!addedFiles.isEmpty()) { result.mDefaultStorage.bind(stageDir.getAbsolutePath()); } for (InstallationFile file : addedFiles) { if (file.getLocation() == LOCATION_DATA_APP) { try { Loading @@ -93,14 +101,15 @@ public final class IncrementalFileStorages { } catch (IOException e) { // TODO(b/146080380): add incremental-specific error code throw new IOException( "Failed to add and configure Incremental File: " + file.getName(), e); "Failed to add file to IncFS: " + file.getName() + ", reason: " + e.getMessage(), e.getCause()); } } else { throw new IOException("Unknown file location: " + file.getLocation()); } } // TODO(b/146080380): remove 5 secs wait in startLoading if (!result.mDefaultStorage.startLoading()) { // TODO(b/146080380): add incremental-specific error code throw new IOException("Failed to start loading data for Incremental installation."); Loading @@ -117,7 +126,8 @@ public final class IncrementalFileStorages { private IncrementalFileStorages(@NonNull File stageDir, @NonNull IncrementalManager incrementalManager, @NonNull DataLoaderParams dataLoaderParams) throws IOException { @NonNull DataLoaderParams dataLoaderParams, @Nullable IDataLoaderStatusListener dataLoaderStatusListener) throws IOException { mStageDir = stageDir; mIncrementalManager = incrementalManager; if (dataLoaderParams.getComponentName().getPackageName().equals("local")) { Loading @@ -134,6 +144,7 @@ public final class IncrementalFileStorages { } mDefaultStorage = mIncrementalManager.createStorage(mDefaultDir, dataLoaderParams, dataLoaderStatusListener, IncrementalManager.CREATE_MODE_CREATE | IncrementalManager.CREATE_MODE_TEMPORARY_BIND, false); } Loading @@ -144,10 +155,8 @@ public final class IncrementalFileStorages { } private void addApkFile(@NonNull InstallationFile apk) throws IOException { final String stageDirPath = mStageDir.getAbsolutePath(); mDefaultStorage.bind(stageDirPath); String apkName = apk.getName(); File targetFile = Paths.get(stageDirPath, apkName).toFile(); final String apkName = apk.getName(); final File targetFile = new File(mStageDir, apkName); if (!targetFile.exists()) { mDefaultStorage.makeFile(apkName, apk.getLengthBytes(), null, apk.getMetadata(), apk.getSignature()); Loading
core/java/android/os/incremental/IncrementalManager.java +4 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.annotation.Nullable; import android.annotation.SystemService; import android.content.Context; import android.content.pm.DataLoaderParams; import android.content.pm.IDataLoaderStatusListener; import android.os.RemoteException; import android.util.SparseArray; Loading Loading @@ -103,10 +104,11 @@ public final class IncrementalManager { */ @Nullable public IncrementalStorage createStorage(@NonNull String path, @NonNull DataLoaderParams params, @CreateMode int createMode, @NonNull DataLoaderParams params, @Nullable IDataLoaderStatusListener listener, @CreateMode int createMode, boolean autoStartDataLoader) { try { final int id = mService.createStorage(path, params.getData(), createMode); final int id = mService.createStorage(path, params.getData(), listener, createMode); if (id < 0) { return null; } Loading
core/java/android/service/dataloader/DataLoaderService.java +1 −1 Original line number Diff line number Diff line Loading @@ -240,7 +240,7 @@ public abstract class DataLoaderService extends Service { private native boolean nativeDestroyDataLoader(int storageId); private native boolean nativePrepareImage(int storageId, Collection<InstallationFile> addedFiles, Collection<String> removedFiles); List<InstallationFile> addedFiles, List<String> removedFiles); private static native void nativeWriteData(long nativeInstance, String name, long offsetBytes, long lengthBytes, ParcelFileDescriptor incomingFd); Loading