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")