diff options
4 files changed, 37 insertions, 7 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index bfdb0529fe7a..d9029490e4d1 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -2014,7 +2014,6 @@ package android.content.pm { } public final class InstallationFile { - ctor public InstallationFile(int, @NonNull String, long, @Nullable byte[], @Nullable byte[]); method public long getLengthBytes(); method public int getLocation(); method @Nullable public byte[] getMetadata(); diff --git a/core/java/android/content/pm/InstallationFile.java b/core/java/android/content/pm/InstallationFile.java index edc04c9e7248..de761ad1a305 100644 --- a/core/java/android/content/pm/InstallationFile.java +++ b/core/java/android/content/pm/InstallationFile.java @@ -21,13 +21,25 @@ import android.annotation.Nullable; import android.annotation.SystemApi; /** - * Defines the properties of a file in an installation session. + * Definition of a file in a streaming installation session. + * You can use this class to retrieve the information of such a file, such as its name, size and + * metadata. These file attributes will be consistent with those used in: + * {@code PackageInstaller.Session#addFile}, when the file was first added into the session. + * + * WARNING: This is a system API to aid internal development. + * Use at your own risk. It will change or be removed without warning. + * + * @see android.content.pm.PackageInstaller.Session#addFile * @hide */ @SystemApi public final class InstallationFile { private final @NonNull InstallationFileParcel mParcel; + /** + * Constructor, internal use only + * @hide + */ public InstallationFile(@PackageInstaller.FileLocation int location, @NonNull String name, long lengthBytes, @Nullable byte[] metadata, @Nullable byte[] signature) { mParcel = new InstallationFileParcel(); @@ -38,22 +50,44 @@ public final class InstallationFile { mParcel.signature = signature; } + /** + * Installation Location of this file. Can be one of the following three locations: + * <ul> + * <li>(1) {@code PackageInstaller.LOCATION_DATA_APP}</li> + * <li>(2) {@code PackageInstaller.LOCATION_MEDIA_OBB}</li> + * <li>(3) {@code PackageInstaller.LOCATION_MEDIA_DATA}</li> + * </ul> + * @see android.content.pm.PackageInstaller + * @return Integer that denotes the installation location of the file. + */ public @PackageInstaller.FileLocation int getLocation() { return mParcel.location; } + /** + * @return Name of the file. + */ public @NonNull String getName() { return mParcel.name; } + /** + * @return File size in bytes. + */ public long getLengthBytes() { return mParcel.size; } + /** + * @return File metadata as a byte array + */ public @Nullable byte[] getMetadata() { return mParcel.metadata; } + /** + * @return File signature info as a byte array + */ public @Nullable byte[] getSignature() { return mParcel.signature; } diff --git a/core/java/android/service/dataloader/DataLoaderService.java b/core/java/android/service/dataloader/DataLoaderService.java index 5bf1975a44ff..0b9a8aff26e8 100644 --- a/core/java/android/service/dataloader/DataLoaderService.java +++ b/core/java/android/service/dataloader/DataLoaderService.java @@ -172,7 +172,7 @@ public abstract class DataLoaderService extends Service { @Override public void prepareImage(InstallationFileParcel[] addedFiles, String[] removedFiles) { if (!nativePrepareImage(mId, addedFiles, removedFiles)) { - Slog.w(TAG, "Failed to destroy loader: " + mId); + Slog.w(TAG, "Failed to prepare image for data loader: " + mId); } } } diff --git a/services/core/java/com/android/server/pm/DataLoaderManagerService.java b/services/core/java/com/android/server/pm/DataLoaderManagerService.java index ad20d38e9ed4..8eb773a2d0f8 100644 --- a/services/core/java/com/android/server/pm/DataLoaderManagerService.java +++ b/services/core/java/com/android/server/pm/DataLoaderManagerService.java @@ -116,9 +116,6 @@ public class DataLoaderManagerService extends SystemService { return null; } - // TODO(b/136132412): better way to enable privileged data loaders in tests - boolean checkLoader = - android.os.SystemProperties.getBoolean("incremental.check_loader", false); int numServices = services.size(); for (int i = 0; i < numServices; i++) { ResolveInfo ri = services.get(i); @@ -128,7 +125,7 @@ public class DataLoaderManagerService extends SystemService { // If there's more than one, return the first one found. try { ApplicationInfo ai = pm.getApplicationInfo(resolved.getPackageName(), 0); - if (checkLoader && !ai.isPrivilegedApp()) { + if (!ai.isPrivilegedApp()) { Slog.w(TAG, "Data loader: " + resolved + " is not a privileged app, skipping."); continue; |