Skip to content

Commit

Permalink
core: pm: Allow wildcard in RRO system property value checks
Browse files Browse the repository at this point in the history
* We have RRO's that should enable regardless of what the target
  property is set to (e.g. `ro.com.google.gmsversion`).

Change-Id: I58e4b4d80f89990e9d6dc8c7d6786f807d98e271
  • Loading branch information
luca020400 authored and basamaryan committed Sep 14, 2023
1 parent ae17196 commit 853e0c3
Showing 1 changed file with 12 additions and 4 deletions.
Expand Up @@ -186,8 +186,8 @@ public static PublicKey parsePublicKey(final byte[] publicKey) {
* Returns {@code true} if both the property name and value are empty or if the given system
* property is set to the specified value. Properties can be one or more, and if properties are
* more than one, they must be separated by comma, and count of names and values must be equal,
* and also every given system property must be set to the corresponding value.
* In all other cases, returns {@code false}
* and also every given system property must be set to the corresponding value or it's a
* wildcard. In all other cases, returns {@code false}
*/
public static boolean checkRequiredSystemProperties(@Nullable String rawPropNames,
@Nullable String rawPropValues) {
Expand All @@ -213,9 +213,17 @@ public static boolean checkRequiredSystemProperties(@Nullable String rawPropName
return false;
}
for (int i = 0; i < propNames.length; i++) {
// Check property value: make sure it is both set and equal to expected value
final String currValue = SystemProperties.get(propNames[i]);
if (!TextUtils.equals(currValue, propValues[i])) {
// 1. Make sure prop is set.
if (currValue == null) {
return false;
}
// 2. Check next prop if expected value is a wildcard.
if ("*".equals(propValues[i])) {
continue;
}
// 3. Check if prop is equal to expected value.
if (!currValue.equals(propValues[i])) {
return false;
}
}
Expand Down

0 comments on commit 853e0c3

Please sign in to comment.