From 677ee95b2bb34ecb8b55de9efb4d16c4d77023a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E7=A7=8B=E6=9E=AB=E5=BD=B1?= <18218380+naicfeng@users.noreply.github.com> Date: Thu, 23 Mar 2023 03:10:42 +0800 Subject: [PATCH] fix android 13+ secret_code (#2455) see https://developer.android.google.cn/reference/android/content/Context#RECEIVER_NOT_EXPORTED --------- Co-authored-by: LoveSy --- .../org/lsposed/lspd/service/LSPosedService.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/daemon/src/main/java/org/lsposed/lspd/service/LSPosedService.java b/daemon/src/main/java/org/lsposed/lspd/service/LSPosedService.java index 3920a24d..f0e39564 100644 --- a/daemon/src/main/java/org/lsposed/lspd/service/LSPosedService.java +++ b/daemon/src/main/java/org/lsposed/lspd/service/LSPosedService.java @@ -308,7 +308,7 @@ public class LSPosedService extends ILSPosedService.Stub { LSPNotificationManager.cancelNotification(SCOPE_CHANNEL_ID, packageName, userId); } - private void registerReceiver(List filters, String requiredPermission, int userId, Consumer task) { + private void registerReceiver(List filters, String requiredPermission, int userId, Consumer task, int flag) { var receiver = new IIntentReceiver.Stub() { @Override public void performReceive(Intent intent, int resultCode, String data, Bundle extras, boolean ordered, boolean sticky, int sendingUser) { @@ -329,15 +329,23 @@ public class LSPosedService extends ILSPosedService.Stub { }; try { for (var filter : filters) { - ActivityManagerService.registerReceiver("android", null, receiver, filter, requiredPermission, userId, Context.RECEIVER_NOT_EXPORTED); + ActivityManagerService.registerReceiver("android", null, receiver, filter, requiredPermission, userId, flag); } } catch (RemoteException e) { Log.e(TAG, "register receiver", e); } } + private void registerReceiver(List filters, String requiredPermission, int userId, Consumer task) { + registerReceiver(filters, requiredPermission, userId, task, Context.RECEIVER_NOT_EXPORTED); + } + private void registerReceiver(List filters, int userId, Consumer task) { - registerReceiver(filters, null, userId, task); + registerReceiver(filters, null, userId, task, Context.RECEIVER_NOT_EXPORTED); + } + + private void registerReceiver(List filters, int userId, Consumer task, int flag) { + registerReceiver(filters, null, userId, task, flag); } private void registerPackageReceiver() { @@ -371,7 +379,7 @@ public class LSPosedService extends ILSPosedService.Stub { intentFilter.addDataAuthority("5776733", null); intentFilter.addDataScheme("android_secret_code"); - registerReceiver(List.of(intentFilter), 0, this::dispatchSecretCodeReceive); + registerReceiver(List.of(intentFilter), 0, this::dispatchSecretCodeReceive, Context.RECEIVER_EXPORTED); Log.d(TAG, "registered secret code receiver"); }