diff --git a/core/java/android/os/SystemProperties.java b/core/java/android/os/SystemProperties.java index 82d4443ea724..aa283a2d019b 100644 --- a/core/java/android/os/SystemProperties.java +++ b/core/java/android/os/SystemProperties.java @@ -226,9 +226,10 @@ public class SystemProperties { */ @UnsupportedAppUsage public static void set(@NonNull String key, @Nullable String val) { - if (val != null && !key.startsWith("ro.") && val.length() > PROP_VALUE_MAX) { + if (val != null && !key.startsWith("ro.") && val.getBytes(StandardCharsets.UTF_8).length + > PROP_VALUE_MAX) { throw new IllegalArgumentException("value of system property '" + key - + "' is longer than " + PROP_VALUE_MAX + " characters: " + val); + + "' is longer than " + PROP_VALUE_MAX + " bytes: " + val); } if (TRACK_KEY_ACCESS) onKeyAccess(key); native_set(key, val);