Merge changes I696e3c5d,Iea7a5610,If627e613 into rvc-dev

* changes:
  update javadoc for InstallationFile
  fix error message
  remove incremental.check_loader
This commit is contained in:
TreeHugger Robot
2020-03-09 21:47:43 +00:00
committed by Android (Google) Code Review
4 changed files with 37 additions and 7 deletions

View File

@@ -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();

View File

@@ -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;
}

View File

@@ -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);
}
}
}

View File

@@ -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;