From 50d66f9fcdac84b2af65a82be56728f54b1a7ef0 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Mon, 13 Sep 2010 21:29:05 -0700 Subject: [PATCH] Unify some duplicate StrictMode-enabling code. Change-Id: Ifb92f35d9e245dbdb5e201597d8be702bce9e8b8 --- core/java/android/app/ActivityThread.java | 11 ++--------- core/java/android/os/StrictMode.java | 19 +++++++++++++++++++ services/java/com/android/server/SystemServer.java | 10 ++-------- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index f8407c22d7ec..d8b525346362 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -3107,18 +3107,11 @@ public final class ActivityThread { /** * For system applications on userdebug/eng builds, log stack * traces of disk and network access to dropbox for analysis. - * - * Similar logic exists in SystemServer.java. */ if ((data.appInfo.flags & (ApplicationInfo.FLAG_SYSTEM | - ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)) != 0 && - !"user".equals(Build.TYPE)) { - StrictMode.setThreadPolicy( - StrictMode.DISALLOW_DISK_WRITE | - StrictMode.DISALLOW_DISK_READ | - StrictMode.DISALLOW_NETWORK | - StrictMode.PENALTY_DROPBOX); + ApplicationInfo.FLAG_UPDATED_SYSTEM_APP)) != 0) { + StrictMode.conditionallyEnableDebugLogging(); } /** diff --git a/core/java/android/os/StrictMode.java b/core/java/android/os/StrictMode.java index 7f7b02b5f1bd..f571c429b19f 100644 --- a/core/java/android/os/StrictMode.java +++ b/core/java/android/os/StrictMode.java @@ -201,6 +201,25 @@ public final class StrictMode { } /** + * Enable DropBox logging for debug phone builds. + * + * @hide + */ + public static boolean conditionallyEnableDebugLogging() { + // For debug builds, log event loop stalls to dropbox for analysis. + // Similar logic also appears in ActivityThread.java for system apps. + if ("user".equals(Build.TYPE)) { + return false; + } + StrictMode.setThreadPolicy( + StrictMode.DISALLOW_DISK_WRITE | + StrictMode.DISALLOW_DISK_READ | + StrictMode.DISALLOW_NETWORK | + StrictMode.PENALTY_DROPBOX); + return true; + } + + /** * Parses the BlockGuard policy mask out from the Exception's * getMessage() String value. Kinda gross, but least * invasive. :/ diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 4a9c9e938864..859de468de3f 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -518,14 +518,8 @@ class ServerThread extends Thread { }); // For debug builds, log event loop stalls to dropbox for analysis. - // Similar logic also appears in ActivityThread.java for system apps. - if (!"user".equals(Build.TYPE)) { - Slog.i(TAG, "Enabling StrictMode for system server."); - StrictMode.setThreadPolicy( - StrictMode.DISALLOW_DISK_WRITE | - StrictMode.DISALLOW_DISK_READ | - StrictMode.DISALLOW_NETWORK | - StrictMode.PENALTY_DROPBOX); + if (StrictMode.conditionallyEnableDebugLogging()) { + Slog.i(TAG, "Enabled StrictMode for system server main thread."); } Looper.loop(); -- 2.11.0