From 32e0daf1b4402d71c723855032a6eb92cf46234f Mon Sep 17 00:00:00 2001 From: Howard Wu Date: Sun, 20 Aug 2023 02:10:18 +0800 Subject: [PATCH] Fix IActivityManager.bindService for Android 14 (#2700) --- .../org/lsposed/lspd/service/ActivityManagerService.java | 5 ++++- .../stubs/src/main/java/android/app/IActivityManager.java | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/daemon/src/main/java/org/lsposed/lspd/service/ActivityManagerService.java b/daemon/src/main/java/org/lsposed/lspd/service/ActivityManagerService.java index 96d96b67..04fbe6a4 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/ActivityManagerService.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/ActivityManagerService.java @@ -143,7 +143,10 @@ public class ActivityManagerService { IActivityManager am = getActivityManager(); if (am == null || appThread == null) return -1; - return am.bindService(appThread, token, service, resolvedType, connection, flags, callingPackage, userId); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) + return am.bindService(appThread, token, service, resolvedType, connection, (long) flags, callingPackage, userId); + else + return am.bindService(appThread, token, service, resolvedType, connection, flags, callingPackage, userId); } public static boolean unbindService(IServiceConnection connection) throws RemoteException { diff --git a/hiddenapi/stubs/src/main/java/android/app/IActivityManager.java b/hiddenapi/stubs/src/main/java/android/app/IActivityManager.java index 9ea955e9..0a70a72c 100644 --- a/hiddenapi/stubs/src/main/java/android/app/IActivityManager.java +++ b/hiddenapi/stubs/src/main/java/android/app/IActivityManager.java @@ -106,6 +106,11 @@ public interface IActivityManager extends IInterface { String resolvedType, IServiceConnection connection, int flags, String callingPackage, int userId) throws RemoteException; + @RequiresApi(34) + int bindService(IApplicationThread caller, IBinder token, Intent service, + String resolvedType, IServiceConnection connection, long flags, + String callingPackage, int userId) throws RemoteException; + boolean unbindService(IServiceConnection connection) throws RemoteException; boolean switchUser(int userid) throws RemoteException;