Merge "Update language to comply with Android’s inclusive language guidance." am: 5eb8de6ed7
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1545505 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I95e287032463bd149e484d7ce9109ced17ecefae
This commit is contained in:
@@ -89,8 +89,8 @@ import java.util.function.Consumer;
|
||||
* <p> Before committing the session, apps can indicate which apps are allowed to access the
|
||||
* contributed data using one or more of the following access modes:
|
||||
* <ul>
|
||||
* <li> {@link Session#allowPackageAccess(String, byte[])} which will allow whitelisting
|
||||
* specific packages to access the blobs.
|
||||
* <li> {@link Session#allowPackageAccess(String, byte[])} which will allow specific packages
|
||||
* to access the blobs.
|
||||
* <li> {@link Session#allowSameSignatureAccess()} which will allow only apps which are signed
|
||||
* with the same certificate as the app which contributed the blob to access it.
|
||||
* <li> {@link Session#allowPublicAccess()} which will allow any app on the device to access
|
||||
|
||||
@@ -36,7 +36,7 @@ public final class XmlTags {
|
||||
// For BlobAccessMode
|
||||
public static final String TAG_ACCESS_MODE = "am";
|
||||
public static final String ATTR_TYPE = "t";
|
||||
public static final String TAG_WHITELISTED_PACKAGE = "wl";
|
||||
public static final String TAG_ALLOWED_PACKAGE = "wl";
|
||||
public static final String ATTR_CERTIFICATE = "ct";
|
||||
|
||||
// For BlobHandle
|
||||
|
||||
@@ -18,7 +18,7 @@ package com.android.server.blob;
|
||||
import static android.app.blob.XmlTags.ATTR_CERTIFICATE;
|
||||
import static android.app.blob.XmlTags.ATTR_PACKAGE;
|
||||
import static android.app.blob.XmlTags.ATTR_TYPE;
|
||||
import static android.app.blob.XmlTags.TAG_WHITELISTED_PACKAGE;
|
||||
import static android.app.blob.XmlTags.TAG_ALLOWED_PACKAGE;
|
||||
|
||||
import android.annotation.IntDef;
|
||||
import android.annotation.NonNull;
|
||||
@@ -52,21 +52,21 @@ class BlobAccessMode {
|
||||
ACCESS_TYPE_PRIVATE,
|
||||
ACCESS_TYPE_PUBLIC,
|
||||
ACCESS_TYPE_SAME_SIGNATURE,
|
||||
ACCESS_TYPE_WHITELIST,
|
||||
ACCESS_TYPE_ALLOWLIST,
|
||||
})
|
||||
@interface AccessType {}
|
||||
public static final int ACCESS_TYPE_PRIVATE = 1 << 0;
|
||||
public static final int ACCESS_TYPE_PUBLIC = 1 << 1;
|
||||
public static final int ACCESS_TYPE_SAME_SIGNATURE = 1 << 2;
|
||||
public static final int ACCESS_TYPE_WHITELIST = 1 << 3;
|
||||
public static final int ACCESS_TYPE_ALLOWLIST = 1 << 3;
|
||||
|
||||
private int mAccessType = ACCESS_TYPE_PRIVATE;
|
||||
|
||||
private final ArraySet<PackageIdentifier> mWhitelistedPackages = new ArraySet<>();
|
||||
private final ArraySet<PackageIdentifier> mAllowedPackages = new ArraySet<>();
|
||||
|
||||
void allow(BlobAccessMode other) {
|
||||
if ((other.mAccessType & ACCESS_TYPE_WHITELIST) != 0) {
|
||||
mWhitelistedPackages.addAll(other.mWhitelistedPackages);
|
||||
if ((other.mAccessType & ACCESS_TYPE_ALLOWLIST) != 0) {
|
||||
mAllowedPackages.addAll(other.mAllowedPackages);
|
||||
}
|
||||
mAccessType |= other.mAccessType;
|
||||
}
|
||||
@@ -80,8 +80,8 @@ class BlobAccessMode {
|
||||
}
|
||||
|
||||
void allowPackageAccess(@NonNull String packageName, @NonNull byte[] certificate) {
|
||||
mAccessType |= ACCESS_TYPE_WHITELIST;
|
||||
mWhitelistedPackages.add(PackageIdentifier.create(packageName, certificate));
|
||||
mAccessType |= ACCESS_TYPE_ALLOWLIST;
|
||||
mAllowedPackages.add(PackageIdentifier.create(packageName, certificate));
|
||||
}
|
||||
|
||||
boolean isPublicAccessAllowed() {
|
||||
@@ -93,10 +93,10 @@ class BlobAccessMode {
|
||||
}
|
||||
|
||||
boolean isPackageAccessAllowed(@NonNull String packageName, @NonNull byte[] certificate) {
|
||||
if ((mAccessType & ACCESS_TYPE_WHITELIST) == 0) {
|
||||
if ((mAccessType & ACCESS_TYPE_ALLOWLIST) == 0) {
|
||||
return false;
|
||||
}
|
||||
return mWhitelistedPackages.contains(PackageIdentifier.create(packageName, certificate));
|
||||
return mAllowedPackages.contains(PackageIdentifier.create(packageName, certificate));
|
||||
}
|
||||
|
||||
boolean isAccessAllowedForCaller(Context context,
|
||||
@@ -113,9 +113,9 @@ class BlobAccessMode {
|
||||
}
|
||||
}
|
||||
|
||||
if ((mAccessType & ACCESS_TYPE_WHITELIST) != 0) {
|
||||
for (int i = 0; i < mWhitelistedPackages.size(); ++i) {
|
||||
final PackageIdentifier packageIdentifier = mWhitelistedPackages.valueAt(i);
|
||||
if ((mAccessType & ACCESS_TYPE_ALLOWLIST) != 0) {
|
||||
for (int i = 0; i < mAllowedPackages.size(); ++i) {
|
||||
final PackageIdentifier packageIdentifier = mAllowedPackages.valueAt(i);
|
||||
if (packageIdentifier.packageName.equals(callingPackage)
|
||||
&& pm.hasSigningCertificate(callingPackage, packageIdentifier.certificate,
|
||||
PackageManager.CERT_INPUT_SHA256)) {
|
||||
@@ -131,20 +131,20 @@ class BlobAccessMode {
|
||||
return mAccessType;
|
||||
}
|
||||
|
||||
int getNumWhitelistedPackages() {
|
||||
return mWhitelistedPackages.size();
|
||||
int getAllowedPackagesCount() {
|
||||
return mAllowedPackages.size();
|
||||
}
|
||||
|
||||
void dump(IndentingPrintWriter fout) {
|
||||
fout.println("accessType: " + DebugUtils.flagsToString(
|
||||
BlobAccessMode.class, "ACCESS_TYPE_", mAccessType));
|
||||
fout.print("Whitelisted pkgs:");
|
||||
if (mWhitelistedPackages.isEmpty()) {
|
||||
fout.print("Explicitly allowed pkgs:");
|
||||
if (mAllowedPackages.isEmpty()) {
|
||||
fout.println(" (Empty)");
|
||||
} else {
|
||||
fout.increaseIndent();
|
||||
for (int i = 0, count = mWhitelistedPackages.size(); i < count; ++i) {
|
||||
fout.println(mWhitelistedPackages.valueAt(i).toString());
|
||||
for (int i = 0, count = mAllowedPackages.size(); i < count; ++i) {
|
||||
fout.println(mAllowedPackages.valueAt(i).toString());
|
||||
}
|
||||
fout.decreaseIndent();
|
||||
}
|
||||
@@ -152,12 +152,12 @@ class BlobAccessMode {
|
||||
|
||||
void writeToXml(@NonNull XmlSerializer out) throws IOException {
|
||||
XmlUtils.writeIntAttribute(out, ATTR_TYPE, mAccessType);
|
||||
for (int i = 0, count = mWhitelistedPackages.size(); i < count; ++i) {
|
||||
out.startTag(null, TAG_WHITELISTED_PACKAGE);
|
||||
final PackageIdentifier packageIdentifier = mWhitelistedPackages.valueAt(i);
|
||||
for (int i = 0, count = mAllowedPackages.size(); i < count; ++i) {
|
||||
out.startTag(null, TAG_ALLOWED_PACKAGE);
|
||||
final PackageIdentifier packageIdentifier = mAllowedPackages.valueAt(i);
|
||||
XmlUtils.writeStringAttribute(out, ATTR_PACKAGE, packageIdentifier.packageName);
|
||||
XmlUtils.writeByteArrayAttribute(out, ATTR_CERTIFICATE, packageIdentifier.certificate);
|
||||
out.endTag(null, TAG_WHITELISTED_PACKAGE);
|
||||
out.endTag(null, TAG_ALLOWED_PACKAGE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,7 +171,7 @@ class BlobAccessMode {
|
||||
|
||||
final int depth = in.getDepth();
|
||||
while (XmlUtils.nextElementWithin(in, depth)) {
|
||||
if (TAG_WHITELISTED_PACKAGE.equals(in.getName())) {
|
||||
if (TAG_ALLOWED_PACKAGE.equals(in.getName())) {
|
||||
final String packageName = XmlUtils.readStringAttribute(in, ATTR_PACKAGE);
|
||||
final byte[] certificate = XmlUtils.readByteArrayAttribute(in, ATTR_CERTIFICATE);
|
||||
blobAccessMode.allowPackageAccess(packageName, certificate);
|
||||
|
||||
@@ -478,7 +478,7 @@ class BlobMetadata {
|
||||
proto.write(BlobStatsEventProto.BlobCommitterProto.ACCESS_MODE,
|
||||
committer.blobAccessMode.getAccessType());
|
||||
proto.write(BlobStatsEventProto.BlobCommitterProto.NUM_WHITELISTED_PACKAGE,
|
||||
committer.blobAccessMode.getNumWhitelistedPackages());
|
||||
committer.blobAccessMode.getAllowedPackagesCount());
|
||||
proto.end(token);
|
||||
}
|
||||
final byte[] committersBytes = proto.getBytes();
|
||||
|
||||
@@ -332,10 +332,10 @@ class BlobStoreSession extends IBlobStoreSession.Stub {
|
||||
throw new IllegalStateException("Not allowed to change access type in state: "
|
||||
+ stateToString(mState));
|
||||
}
|
||||
if (mBlobAccessMode.getNumWhitelistedPackages() >= getMaxPermittedPackages()) {
|
||||
if (mBlobAccessMode.getAllowedPackagesCount() >= getMaxPermittedPackages()) {
|
||||
throw new ParcelableException(new LimitExceededException(
|
||||
"Too many packages permitted to access the blob: "
|
||||
+ mBlobAccessMode.getNumWhitelistedPackages()));
|
||||
+ mBlobAccessMode.getAllowedPackagesCount()));
|
||||
}
|
||||
mBlobAccessMode.allowPackageAccess(packageName, certificate);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user