Skip to content
Snippets Groups Projects
Commit c70fe157 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Apply package name size limit to packages" into main

parents e567a85c 02222d94
No related branches found
No related tags found
No related merge requests found
......@@ -28,18 +28,18 @@ import java.util.Set;
/**
* @hide
*/
public final class StringSetPolicyValue extends PolicyValue<Set<String>> {
public final class PackageSetPolicyValue extends PolicyValue<Set<String>> {
public StringSetPolicyValue(@NonNull Set<String> value) {
public PackageSetPolicyValue(@NonNull Set<String> value) {
super(value);
if (Flags.devicePolicySizeTrackingInternalBugFixEnabled()) {
for (String str : value) {
PolicySizeVerifier.enforceMaxStringLength(str, "policyValue");
for (String packageName : value) {
PolicySizeVerifier.enforceMaxPackageNameLength(packageName);
}
}
}
public StringSetPolicyValue(Parcel source) {
public PackageSetPolicyValue(Parcel source) {
this(readValues(source));
}
......@@ -56,7 +56,7 @@ public final class StringSetPolicyValue extends PolicyValue<Set<String>> {
public boolean equals(@Nullable Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
StringSetPolicyValue other = (StringSetPolicyValue) o;
PackageSetPolicyValue other = (PackageSetPolicyValue) o;
return Objects.equals(getValue(), other.getValue());
}
......@@ -67,7 +67,7 @@ public final class StringSetPolicyValue extends PolicyValue<Set<String>> {
@Override
public String toString() {
return "StringSetPolicyValue { " + getValue() + " }";
return "PackageNameSetPolicyValue { " + getValue() + " }";
}
@Override
......@@ -84,16 +84,16 @@ public final class StringSetPolicyValue extends PolicyValue<Set<String>> {
}
@NonNull
public static final Creator<StringSetPolicyValue> CREATOR =
new Creator<StringSetPolicyValue>() {
public static final Creator<PackageSetPolicyValue> CREATOR =
new Creator<PackageSetPolicyValue>() {
@Override
public StringSetPolicyValue createFromParcel(Parcel source) {
return new StringSetPolicyValue(source);
public PackageSetPolicyValue createFromParcel(Parcel source) {
return new PackageSetPolicyValue(source);
}
@Override
public StringSetPolicyValue[] newArray(int size) {
return new StringSetPolicyValue[size];
public PackageSetPolicyValue[] newArray(int size) {
return new PackageSetPolicyValue[size];
}
};
}
......@@ -349,8 +349,8 @@ import android.app.admin.PolicyValue;
import android.app.admin.PreferentialNetworkServiceConfig;
import android.app.admin.SecurityLog;
import android.app.admin.SecurityLog.SecurityEvent;
import android.app.admin.PackageSetPolicyValue;
import android.app.admin.StartInstallingUpdateCallback;
import android.app.admin.StringSetPolicyValue;
import android.app.admin.SystemUpdateInfo;
import android.app.admin.SystemUpdatePolicy;
import android.app.admin.UnsafeStateException;
......@@ -12073,7 +12073,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
mDevicePolicyEngine.setLocalPolicy(
PolicyDefinition.PERMITTED_INPUT_METHODS,
admin,
new StringSetPolicyValue(new HashSet<>(packageList)),
new PackageSetPolicyValue(new HashSet<>(packageList)),
userId);
}
}
......@@ -20358,12 +20358,12 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
mDevicePolicyEngine.setGlobalPolicy(
PolicyDefinition.USER_CONTROLLED_DISABLED_PACKAGES,
enforcingAdmin,
new StringSetPolicyValue(packages));
new PackageSetPolicyValue(packages));
} else {
mDevicePolicyEngine.setLocalPolicy(
PolicyDefinition.USER_CONTROLLED_DISABLED_PACKAGES,
enforcingAdmin,
new StringSetPolicyValue(packages),
new PackageSetPolicyValue(packages),
caller.getUserId());
}
}
......@@ -24045,7 +24045,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
mDevicePolicyEngine.setLocalPolicy(
PolicyDefinition.PERMITTED_INPUT_METHODS,
enforcingAdmin,
new StringSetPolicyValue(
new PackageSetPolicyValue(
new HashSet<>(admin.permittedInputMethods)),
admin.getUserHandle().getIdentifier());
}
......@@ -24054,7 +24054,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
mDevicePolicyEngine.setLocalPolicy(
PolicyDefinition.PERMITTED_INPUT_METHODS,
enforcingAdmin,
new StringSetPolicyValue(
new PackageSetPolicyValue(
new HashSet<>(admin.getParentActiveAdmin()
.permittedInputMethods)),
getProfileParentId(admin.getUserHandle().getIdentifier()));
......@@ -24110,12 +24110,14 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
mDevicePolicyEngine.setGlobalPolicy(
PolicyDefinition.USER_CONTROLLED_DISABLED_PACKAGES,
enforcingAdmin,
new StringSetPolicyValue(new HashSet<>(admin.protectedPackages)));
new PackageSetPolicyValue(
new HashSet<>(admin.protectedPackages)));
} else {
mDevicePolicyEngine.setLocalPolicy(
PolicyDefinition.USER_CONTROLLED_DISABLED_PACKAGES,
enforcingAdmin,
new StringSetPolicyValue(new HashSet<>(admin.protectedPackages)),
new PackageSetPolicyValue(
new HashSet<>(admin.protectedPackages)),
admin.getUserHandle().getIdentifier());
}
}
......@@ -19,7 +19,7 @@ package com.android.server.devicepolicy;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.admin.PolicyValue;
import android.app.admin.StringSetPolicyValue;
import android.app.admin.PackageSetPolicyValue;
import android.util.Log;
import com.android.modules.utils.TypedXmlPullParser;
......@@ -30,7 +30,7 @@ import java.util.Objects;
import java.util.Set;
// TODO(scottjonathan): Replace with generic set implementation
final class StringSetPolicySerializer extends PolicySerializer<Set<String>> {
final class PackageSetPolicySerializer extends PolicySerializer<Set<String>> {
private static final String ATTR_VALUES = "strings";
private static final String ATTR_VALUES_SEPARATOR = ";";
@Override
......@@ -45,10 +45,10 @@ final class StringSetPolicySerializer extends PolicySerializer<Set<String>> {
PolicyValue<Set<String>> readFromXml(TypedXmlPullParser parser) {
String valuesStr = parser.getAttributeValue(/* namespace= */ null, ATTR_VALUES);
if (valuesStr == null) {
Log.e(DevicePolicyEngine.TAG, "Error parsing StringSet policy value.");
Log.e(DevicePolicyEngine.TAG, "Error parsing PackageSet policy value.");
return null;
}
Set<String> values = Set.of(valuesStr.split(ATTR_VALUES_SEPARATOR));
return new StringSetPolicyValue(values);
return new PackageSetPolicyValue(values);
}
}
......@@ -18,14 +18,15 @@ package com.android.server.devicepolicy;
import android.annotation.NonNull;
import android.app.admin.PolicyValue;
import android.app.admin.StringSetPolicyValue;
import android.app.admin.PackageSetPolicyValue;
import android.app.admin.StringSetUnion;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Objects;
import java.util.Set;
final class StringSetUnion extends ResolutionMechanism<Set<String>> {
final class PackageSetUnion extends ResolutionMechanism<Set<String>> {
@Override
PolicyValue<Set<String>> resolve(
......@@ -38,17 +39,17 @@ final class StringSetUnion extends ResolutionMechanism<Set<String>> {
for (PolicyValue<Set<String>> policy : adminPolicies.values()) {
unionOfPolicies.addAll(policy.getValue());
}
return new StringSetPolicyValue(unionOfPolicies);
return new PackageSetPolicyValue(unionOfPolicies);
}
@Override
android.app.admin.StringSetUnion getParcelableResolutionMechanism() {
return new android.app.admin.StringSetUnion();
StringSetUnion getParcelableResolutionMechanism() {
return new StringSetUnion();
}
@Override
public String toString() {
return "SetUnion {}";
return "PackageSetUnion {}";
}
}
......@@ -162,9 +162,9 @@ final class PolicyDefinition<V> {
new PolicyDefinition<>(
new NoArgsPolicyKey(
DevicePolicyIdentifiers.USER_CONTROL_DISABLED_PACKAGES_POLICY),
new StringSetUnion(),
new PackageSetUnion(),
PolicyEnforcerCallbacks::setUserControlDisabledPackages,
new StringSetPolicySerializer());
new PackageSetPolicySerializer());
// This is saved in the static map sPolicyDefinitions so that we're able to reconstruct the
// actual policy with the correct arguments (i.e. packageName) when reading the policies from
......@@ -328,7 +328,7 @@ final class PolicyDefinition<V> {
new MostRecent<>(),
POLICY_FLAG_LOCAL_ONLY_POLICY | POLICY_FLAG_INHERITABLE,
(Set<String> value, Context context, Integer userId, PolicyKey policyKey) -> true,
new StringSetPolicySerializer());
new PackageSetPolicySerializer());
static PolicyDefinition<Boolean> SCREEN_CAPTURE_DISABLED = new PolicyDefinition<>(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment