From bcab21aaa2a2bc493b1a9c11eb3d319114f556a1 Mon Sep 17 00:00:00 2001 From: Tommy Alex Date: Sun, 8 Jan 2023 13:03:13 +0800 Subject: [PATCH 1/2] fix isEnabled() hook on LOS 20 Signed-off-by: Tommy Alex --- .../iptux/xposed/callrecording/CallRecording.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/net/iptux/xposed/callrecording/CallRecording.java b/app/src/main/java/net/iptux/xposed/callrecording/CallRecording.java index 41be4ea..57e6d02 100644 --- a/app/src/main/java/net/iptux/xposed/callrecording/CallRecording.java +++ b/app/src/main/java/net/iptux/xposed/callrecording/CallRecording.java @@ -45,7 +45,17 @@ void hookDialer(LoadPackageParam lpparam) throws Throwable { callButtonFragment = CALL_BUTTON_FRAGMENT; } - findAndHookMethod(callRecordingServiceName, lpparam.classLoader, "isEnabled", Context.class, new IsEnabledHook()); + try { + findAndHookMethod(callRecordingServiceName, lpparam.classLoader, "isEnabled", Context.class, new IsEnabledHook()); + } catch (Throwable e) { + // CallRecorderService.isEnabled(context) may get inlined and not present + } + + try { + findAndHookMethod(callRecordingListener, lpparam.classLoader, "isEnabled", new IsEnabledHook()); + } catch (Throwable e) { + // instead, try to hook CallRecorder.isEnabled() + } try { // This method is used in place of isEnabled in later versions From cb3a8e15c7b6a079061fd00982fc4278df4a3046 Mon Sep 17 00:00:00 2001 From: Tommy Alex Date: Sun, 8 Jan 2023 13:06:39 +0800 Subject: [PATCH 2/2] bump to 1.0.21 Signed-off-by: Tommy Alex --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 95abb99..9582e49 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { minSdkVersion 19 /* for Context.MODE_WORLD_READABLE */ targetSdkVersion 23 - versionCode 20 - versionName "1.0.20" + versionCode 21 + versionName "1.0.21" } signingConfigs {