From 99ca99ec3aab73d772291006af51d377df7a5df0 Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Tue, 28 Mar 2017 10:59:25 -0700 Subject: [PATCH] ActivityManager: Allow DiskRead for wrap.sh determination Avoid killing debuggable apps which at the same time have a strict-mode policy installed. (cherry picked from commit 62be34e32e72323e917bebb9ca39eb911e7d9371) Bug: 33668201 Test: m Change-Id: Ic3c56b01fe42a473e28c1d6280526afdc85793df --- .../com/android/server/am/ActivityManagerService.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index ce9a904fd6af2..ead1b26a0a1f2 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -3929,8 +3929,13 @@ public class ActivityManagerService extends IActivityManager.Stub if ((app.info.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) { // Debuggable apps may include a wrapper script with their library directory. String wrapperFileName = app.info.nativeLibraryDir + "/wrap.sh"; - if (new File(wrapperFileName).exists()) { - invokeWith = "/system/bin/logwrapper " + wrapperFileName; + StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); + try { + if (new File(wrapperFileName).exists()) { + invokeWith = "/system/bin/logwrapper " + wrapperFileName; + } + } finally { + StrictMode.setThreadPolicy(oldPolicy); } }