diff --git a/core/java/android/os/ZygoteProcess.java b/core/java/android/os/ZygoteProcess.java index 8f100616f0804..73c48bd18760b 100644 --- a/core/java/android/os/ZygoteProcess.java +++ b/core/java/android/os/ZygoteProcess.java @@ -407,7 +407,7 @@ public class ZygoteProcess { */ String msgStr = args.size() + "\n" + String.join("\n", args) + "\n"; - if (useUsapPool && mUsapPoolEnabled && isValidUsapCommand(args)) { + if (useUsapPool && mUsapPoolEnabled && canAttemptUsap(args)) { try { return attemptUsapSendArgsAndGetResult(zygoteState, msgStr); } catch (IOException ex) { @@ -498,13 +498,21 @@ public class ZygoteProcess { * @param args Zygote/USAP command arguments * @return True if the command can be passed to a USAP; false otherwise */ - private static boolean isValidUsapCommand(ArrayList args) { + private static boolean canAttemptUsap(ArrayList args) { for (String flag : args) { for (String badFlag : INVALID_USAP_FLAGS) { if (flag.startsWith(badFlag)) { return false; } } + if (flag.startsWith("--nice-name=")) { + // Check if the wrap property is set, usap would ignore it. + String niceName = flag.substring(12); + String property_value = SystemProperties.get("wrap." + niceName); + if (property_value != null && property_value.length() != 0) { + return false; + } + } } return true;