diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index 47e18f1df774d..a8d40fb778dae 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -3995,7 +3995,14 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { return; } } - r.run(); + + final long token = Binder.clearCallingIdentity(); + try { + // This will call into StagingManager which might trigger external callbacks + r.run(); + } finally { + Binder.restoreCallingIdentity(token); + } } @Override