From e9de38de90ce5ef2a1d6a7c9468079bca5375b2a Mon Sep 17 00:00:00 2001
From: programminghoch10 <16062290+programminghoch10@users.noreply.github.com>
Date: Fri, 26 Sep 2025 11:32:32 +0200
Subject: [PATCH] Implement EnableCallRecording
---
EnableCallRecording/Readme.md | 6 +++
EnableCallRecording/build.gradle.kts | 12 ++++++
.../src/main/AndroidManifest.xml | 24 ++++++++++++
.../src/main/assets/xposed_init | 1 +
.../EnableCallRecording/Hook.java | 39 +++++++++++++++++++
.../src/main/res/values/arrays.xml | 6 +++
modules.gradle.kts | 1 +
7 files changed, 89 insertions(+)
create mode 100644 EnableCallRecording/Readme.md
create mode 100644 EnableCallRecording/build.gradle.kts
create mode 100644 EnableCallRecording/src/main/AndroidManifest.xml
create mode 100644 EnableCallRecording/src/main/assets/xposed_init
create mode 100644 EnableCallRecording/src/main/java/com/programminghoch10/EnableCallRecording/Hook.java
create mode 100644 EnableCallRecording/src/main/res/values/arrays.xml
diff --git a/EnableCallRecording/Readme.md b/EnableCallRecording/Readme.md
new file mode 100644
index 0000000..f6c9f15
--- /dev/null
+++ b/EnableCallRecording/Readme.md
@@ -0,0 +1,6 @@
+# EnableCallRecord
+
+Enable Call Recording independent of location. Please remember this might be illegal in your country.
+
+Developed and tested on LineageOS.
+Only the stock LineageOS Dialer is supported.
diff --git a/EnableCallRecording/build.gradle.kts b/EnableCallRecording/build.gradle.kts
new file mode 100644
index 0000000..5d06a28
--- /dev/null
+++ b/EnableCallRecording/build.gradle.kts
@@ -0,0 +1,12 @@
+plugins {
+ alias(libs.plugins.buildlogic.android.application)
+}
+
+android {
+ namespace = "com.programminghoch10.EnableCallRecord"
+
+ defaultConfig {
+ minSdk = 27
+ targetSdk = 35
+ }
+}
diff --git a/EnableCallRecording/src/main/AndroidManifest.xml b/EnableCallRecording/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..0ce5256
--- /dev/null
+++ b/EnableCallRecording/src/main/AndroidManifest.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/EnableCallRecording/src/main/assets/xposed_init b/EnableCallRecording/src/main/assets/xposed_init
new file mode 100644
index 0000000..ec7a8db
--- /dev/null
+++ b/EnableCallRecording/src/main/assets/xposed_init
@@ -0,0 +1 @@
+com.programminghoch10.EnableCallRecording.Hook
diff --git a/EnableCallRecording/src/main/java/com/programminghoch10/EnableCallRecording/Hook.java b/EnableCallRecording/src/main/java/com/programminghoch10/EnableCallRecording/Hook.java
new file mode 100644
index 0000000..bb8f169
--- /dev/null
+++ b/EnableCallRecording/src/main/java/com/programminghoch10/EnableCallRecording/Hook.java
@@ -0,0 +1,39 @@
+package com.programminghoch10.EnableCallRecording;
+
+import android.content.Context;
+
+import java.util.Objects;
+
+import com.programminghoch10.EnableCallRecord.BuildConfig;
+import de.robv.android.xposed.IXposedHookLoadPackage;
+import de.robv.android.xposed.XC_MethodReplacement;
+import de.robv.android.xposed.XposedHelpers;
+import de.robv.android.xposed.callbacks.XC_LoadPackage;
+
+public class Hook implements IXposedHookLoadPackage {
+ @Override
+ public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
+ if (Objects.equals(lpparam.packageName, BuildConfig.APPLICATION_ID)) return;
+ if (!Objects.equals(lpparam.packageName, "com.android.dialer")) return;
+
+ XposedHelpers.findAndHookMethod(
+ "com.android.dialer.callrecord.impl.CallRecorderService",
+ lpparam.classLoader,
+ "isEnabled",
+ Context.class,
+ XC_MethodReplacement.returnConstant(true)
+ );
+ XposedHelpers.findAndHookMethod(
+ "com.android.incallui.call.CallRecorder",
+ lpparam.classLoader,
+ "isEnabled",
+ XC_MethodReplacement.returnConstant(true)
+ );
+ XposedHelpers.findAndHookMethod(
+ "com.android.incallui.call.CallRecorder",
+ lpparam.classLoader,
+ "canRecordInCurrentCountry",
+ XC_MethodReplacement.returnConstant(true)
+ );
+ }
+}
diff --git a/EnableCallRecording/src/main/res/values/arrays.xml b/EnableCallRecording/src/main/res/values/arrays.xml
new file mode 100644
index 0000000..b44cb7f
--- /dev/null
+++ b/EnableCallRecording/src/main/res/values/arrays.xml
@@ -0,0 +1,6 @@
+
+
+
+ - com.android.dialer
+
+
diff --git a/modules.gradle.kts b/modules.gradle.kts
index 352f7fa..8741462 100644
--- a/modules.gradle.kts
+++ b/modules.gradle.kts
@@ -8,6 +8,7 @@ include(":BetterVerboseWiFiLogging")
include(":ClassHunter")
include(":CodecMod")
include(":DontResetIfBootedAndConnected")
+include(":EnableCallRecording")
include(":FreeNotifications")
include(":KeepSplitScreenRatio")
include(":MotionEventMod")