Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b295541 authored by Brad Fitzpatrick's avatar Brad Fitzpatrick Committed by Android Git Automerger
Browse files

am 37fc8cc7: am b724d251: Merge "Enable strictmode logging in system_server &...

am 37fc8cc7: am b724d251: Merge "Enable strictmode logging in system_server & add a lock." into gingerbread

Merge commit '37fc8cc7'

* commit '37fc8cc7':
  Enable strictmode logging in system_server & add a lock.
parents b05766a0 37fc8cc7
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -3154,6 +3154,8 @@ 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 |
+11 −0
Original line number Diff line number Diff line
@@ -532,6 +532,17 @@ 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);
        }

        Looper.loop();
        Slog.d(TAG, "System ServerThread is exiting!");
    }
+13 −7
Original line number Diff line number Diff line
@@ -6592,13 +6592,19 @@ public final class ActivityManagerService extends ActivityManagerNative
     * Utility function for addErrorToDropBox and handleStrictModeViolation's logging
     * to append various headers to the dropbox log text.
     */
    private static void appendDropBoxProcessHeaders(ProcessRecord process, StringBuilder sb) {
    private void appendDropBoxProcessHeaders(ProcessRecord process, StringBuilder sb) {
        // Note: ProcessRecord 'process' is guarded by the service
        // instance.  (notably process.pkgList, which could otherwise change
        // concurrently during execution of this method)
        synchronized (this) {
            if (process == null || process.pid == MY_PID) {
                sb.append("Process: system_server\n");
            } else {
                sb.append("Process: ").append(process.processName).append("\n");
            }
        if (process != null) {
            if (process == null) {
                return;
            }
            int flags = process.info.flags;
            IPackageManager pm = AppGlobals.getPackageManager();
            sb.append("Flags: 0x").append(Integer.toString(flags, 16)).append("\n");