From 2a545c4c6ac8d6bc7801919dd2c4b5c8805107ff Mon Sep 17 00:00:00 2001 From: ARINDAM BHATTACHARJEE Date: Tue, 28 Oct 2025 14:56:29 +0000 Subject: [PATCH] base: Redirect Google PermissionController intents to AOSP Add intent redirection logic in ActivityTaskManagerService to intercept explicit activity launches targeting com.google.android.permissioncontroller and redirect them to com.android.permissioncontroller. This fixes crashes in Google Play Store and other GMS apps that hardcode explicit intents to Google's PermissionController package when opening permission management UIs. Without Google's PermissionController APEX installed, these intents fail with ActivityNotFoundException. Change-Id: Ic63961c0a982424be30f8f6f223d1fe5fc69cffb Signed-off-by: ARINDAM BHATTACHARJEE --- .../server/wm/ActivityTaskManagerService.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index fd45a06fc11e5..9d10979d13e9c 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -1277,6 +1277,23 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { @Nullable String callingFeatureId, Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode, int startFlags, ProfilerInfo profilerInfo, Bundle bOptions, int userId, boolean validateIncomingUser) { + + // CUSTOM HACK: Redirect Google PermissionController explicit intents to AOSP + if (intent != null && intent.getComponent() != null) { + ComponentName comp = intent.getComponent(); + String pkg = comp.getPackageName(); + String cls = comp.getClassName(); + + if ("com.google.android.permissioncontroller".equals(pkg)) { + // Replace package name in class name to redirect to AOSP + String newCls = cls.replace("com.google.android.permissioncontroller", + "com.android.permissioncontroller"); + intent.setComponent(new ComponentName("com.android.permissioncontroller", newCls)); + Slog.w(TAG, "HACK: Redirected Google PermissionController intent: " + + comp + " -> " + intent.getComponent()); + } + } + mAmInternal.addCreatorToken(intent, callingPackage); final int callingPid = Binder.getCallingPid(); final int callingUid = Binder.getCallingUid();