From 0a91f61ac8387c02528e0f6f0948296ba9d5ca77 Mon Sep 17 00:00:00 2001 From: Martijn Coenen Date: Fri, 29 May 2020 14:49:25 +0200 Subject: [PATCH] Use killProcessGroup when killing app zygote. To make sure we kill all untracked children, too. Bug: 156741968 Bug: 157598956 Test: manual inspection, PoC no longer works. Change-Id: I5d8efeb05ddec08a7fc7c00eabca6590c4cfdd8c --- core/java/android/os/AppZygote.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/java/android/os/AppZygote.java b/core/java/android/os/AppZygote.java index 6daa5b4dc6d8b..66f50e4b26101 100644 --- a/core/java/android/os/AppZygote.java +++ b/core/java/android/os/AppZygote.java @@ -90,10 +90,9 @@ public class AppZygote { @GuardedBy("mLock") private void stopZygoteLocked() { if (mZygote != null) { - // Close the connection and kill the zygote process. This will not cause - // child processes to be killed by itself. mZygote.close(); - Process.killProcess(mZygote.getPid()); + // use killProcessGroup() here, so we kill all untracked children as well. + Process.killProcessGroup(mZygoteUid, mZygote.getPid()); mZygote = null; } }