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

Commit 705aed88 authored by Patrick Williams's avatar Patrick Williams
Browse files

Clear calling identity in TransactionHangCallback

This ensures the ActivityManagerService is called with the correct
pid.

Bug: 278526360
Test: manually tested that the correct PID is sent to ActivityManager
Change-Id: I610014c6bc709796e9d4f7aeadf64e5107f37de3
parent 029eb856
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -961,12 +961,20 @@ public final class ViewRootImpl implements ViewParent,
                }

                sAnrReported = true;
                // If we're making an in-process call to ActivityManagerService
                // and the previous binder call on this thread was oneway, the
                // calling PID will be 0. Clearing the calling identity fixes
                // this and ensures ActivityManager gets the correct calling
                // pid.
                final long identityToken = Binder.clearCallingIdentity();
                try {
                    ActivityManager.getService().appNotResponding(reason);
                } catch (RemoteException e) {
                    // We asked the system to crash us, but the system
                    // already crashed. Unfortunately things may be
                    // out of control.
                } finally {
                    Binder.restoreCallingIdentity(identityToken);
                }
            }
        };