diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2022-03-02 00:57:51 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-03-02 00:57:51 +0000 |
| commit | 951aa29f72d4ff2956cb684f60476e3dd646a461 (patch) | |
| tree | d17ec8c75698a003656094ab4cf459c0cb171509 /core/java/android | |
| parent | 4c7fba28118878b08690c2c98fd52fd359f8127e (diff) | |
| parent | fe85ed2ef53a7b1442a0e87f47e23e407e3e2b8c (diff) | |
Merge "Fix memory flags in external services and secondary zygotes." into tm-dev
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/os/AppZygote.java | 15 | ||||
| -rw-r--r-- | core/java/android/webkit/WebViewZygote.java | 5 |
2 files changed, 13 insertions, 7 deletions
diff --git a/core/java/android/os/AppZygote.java b/core/java/android/os/AppZygote.java index c8b4226ecae0..07fbe4a04ff1 100644 --- a/core/java/android/os/AppZygote.java +++ b/core/java/android/os/AppZygote.java @@ -17,9 +17,11 @@ package android.os; import android.content.pm.ApplicationInfo; +import android.content.pm.ProcessInfo; import android.util.Log; import com.android.internal.annotations.GuardedBy; +import com.android.internal.os.Zygote; import dalvik.system.VMRuntime; @@ -45,8 +47,6 @@ public class AppZygote { // Last UID/GID of the range the AppZygote can setuid()/setgid() to private final int mZygoteUidGidMax; - private final int mZygoteRuntimeFlags; - private final Object mLock = new Object(); /** @@ -57,14 +57,15 @@ public class AppZygote { private ChildZygoteProcess mZygote; private final ApplicationInfo mAppInfo; + private final ProcessInfo mProcessInfo; - public AppZygote(ApplicationInfo appInfo, int zygoteUid, int uidGidMin, int uidGidMax, - int runtimeFlags) { + public AppZygote(ApplicationInfo appInfo, ProcessInfo processInfo, int zygoteUid, int uidGidMin, + int uidGidMax) { mAppInfo = appInfo; + mProcessInfo = processInfo; mZygoteUid = zygoteUid; mZygoteUidGidMin = uidGidMin; mZygoteUidGidMax = uidGidMax; - mZygoteRuntimeFlags = runtimeFlags; } /** @@ -108,13 +109,15 @@ public class AppZygote { String abi = mAppInfo.primaryCpuAbi != null ? mAppInfo.primaryCpuAbi : Build.SUPPORTED_ABIS[0]; try { + int runtimeFlags = Zygote.getMemorySafetyRuntimeFlagsForSecondaryZygote( + mAppInfo, mProcessInfo); mZygote = Process.ZYGOTE_PROCESS.startChildZygote( "com.android.internal.os.AppZygoteInit", mAppInfo.processName + "_zygote", mZygoteUid, mZygoteUid, null, // gids - mZygoteRuntimeFlags, // runtimeFlags + runtimeFlags, "app_zygote", // seInfo abi, // abi abi, // acceptedAbiList diff --git a/core/java/android/webkit/WebViewZygote.java b/core/java/android/webkit/WebViewZygote.java index 2bfbe4bdfba7..bc7a5fda6f7a 100644 --- a/core/java/android/webkit/WebViewZygote.java +++ b/core/java/android/webkit/WebViewZygote.java @@ -25,6 +25,7 @@ import android.text.TextUtils; import android.util.Log; import com.android.internal.annotations.GuardedBy; +import com.android.internal.os.Zygote; /** @hide */ public class WebViewZygote { @@ -127,13 +128,15 @@ public class WebViewZygote { try { String abi = sPackage.applicationInfo.primaryCpuAbi; + int runtimeFlags = Zygote.getMemorySafetyRuntimeFlagsForSecondaryZygote( + sPackage.applicationInfo, null); sZygote = Process.ZYGOTE_PROCESS.startChildZygote( "com.android.internal.os.WebViewZygoteInit", "webview_zygote", Process.WEBVIEW_ZYGOTE_UID, Process.WEBVIEW_ZYGOTE_UID, null, // gids - 0, // runtimeFlags + runtimeFlags, "webview_zygote", // seInfo abi, // abi TextUtils.join(",", Build.SUPPORTED_ABIS), |
