summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorMakoto Onuki <omakoto@google.com>2020-01-29 14:39:53 -0800
committerMakoto Onuki <omakoto@google.com>2020-01-29 14:39:53 -0800
commit83679a6c5ccc7ebcca15e0ede462ec13a4a7f9c6 (patch)
tree11294c7d079c9151e5a8b82e00ef984a54db760d /core/java
parentf0265e7208a31b7ff87e899585f0c8ff243970c6 (diff)
Make Log.wtf() safe to call from within the system server
Make sure to use the handler if the caller is the system server Test: Build / treehugger / manual code inspection Change-Id: I0c9998511280193d785ebcf7aa501ee02c0a8548 Fix: 148230239
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/app/IActivityManager.aidl2
-rw-r--r--core/java/com/android/internal/os/RuntimeInit.java3
2 files changed, 3 insertions, 2 deletions
diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl
index 3ffd7c70b40d..be418424e64c 100644
--- a/core/java/android/app/IActivityManager.aidl
+++ b/core/java/android/app/IActivityManager.aidl
@@ -287,7 +287,7 @@ interface IActivityManager {
void killApplicationProcess(in String processName, int uid);
// Special low-level communication with activity manager.
boolean handleApplicationWtf(in IBinder app, in String tag, boolean system,
- in ApplicationErrorReport.ParcelableCrashInfo crashInfo);
+ in ApplicationErrorReport.ParcelableCrashInfo crashInfo, int immediateCallerPid);
@UnsupportedAppUsage
void killBackgroundProcesses(in String packageName, int userId);
boolean isUserAMonkey();
diff --git a/core/java/com/android/internal/os/RuntimeInit.java b/core/java/com/android/internal/os/RuntimeInit.java
index 7adb27cd9e36..db009f68d28a 100644
--- a/core/java/com/android/internal/os/RuntimeInit.java
+++ b/core/java/com/android/internal/os/RuntimeInit.java
@@ -468,7 +468,8 @@ public class RuntimeInit {
try {
if (ActivityManager.getService().handleApplicationWtf(
mApplicationObject, tag, system,
- new ApplicationErrorReport.ParcelableCrashInfo(t))) {
+ new ApplicationErrorReport.ParcelableCrashInfo(t),
+ Process.myPid())) {
// The Activity Manager has already written us off -- now exit.
Process.killProcess(Process.myPid());
System.exit(10);