├── .classpath ├── .gitignore ├── .project ├── .settings └── org.eclipse.jdt.core.prefs ├── AndroidManifest.xml ├── README.md ├── assets └── xposed_init ├── bin ├── AndroidManifest.xml └── res │ ├── drawable-hdpi │ └── ic_launcher.png │ ├── drawable-mdpi │ └── ic_launcher.png │ └── drawable-xhdpi │ └── ic_launcher.png ├── gen └── uk │ └── co │ └── villainrom │ └── pulser │ └── enablecallrecording │ ├── BuildConfig.java │ └── R.java ├── out └── EnableCallRecording.apk ├── proguard-project.txt ├── project.properties ├── res ├── drawable-hdpi │ └── ic_launcher.png ├── drawable-mdpi │ └── ic_launcher.png ├── drawable-xhdpi │ └── ic_launcher.png ├── values-v11 │ └── styles.xml ├── values-v14 │ └── styles.xml └── values │ ├── strings.xml │ └── styles.xml └── src └── uk └── co └── villainrom └── pulser └── enablecallrecording └── EnableCallRecording.java /.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | 3 | # Package Files # 4 | *.jar 5 | *.war 6 | *.ear -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | EnableCallRecording 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 3 | org.eclipse.jdt.core.compiler.compliance=1.6 4 | org.eclipse.jdt.core.compiler.source=1.6 5 | -------------------------------------------------------------------------------- /AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 9 | 10 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Xposed Framework Enable Call Recording 2 | ====================================== 3 | 4 | For more information, see http://forum.xda-developers.com/showthread.php?t=2012770, including licence information in post 3. 5 | 6 | Licence Summary (see post 3 in thread listed for the full details): 7 | ------------------------------------------------------------------- 8 | 9 | End users, have fun, use these, enjoy them, share them, tweak them, just be sure to share your source changes and/or send a pull request if you improve something! 10 | "Custom ROM" Developers, and anyone wanting to try to use these for commercial purposes: Don't. These are to encourage people to learn about these changes, so contact me if you want to do something else with them. Commercial use, including distribution in "Custom ROMs" is not permitted. -------------------------------------------------------------------------------- /assets/xposed_init: -------------------------------------------------------------------------------- 1 | uk.co.villainrom.pulser.enablecallrecording.EnableCallRecording -------------------------------------------------------------------------------- /bin/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 9 | 10 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /bin/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulser/xposedEnableCallRecording/29b41b399b6d4ef092dbc55db327034d54b64e2e/bin/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /bin/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulser/xposedEnableCallRecording/29b41b399b6d4ef092dbc55db327034d54b64e2e/bin/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /bin/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulser/xposedEnableCallRecording/29b41b399b6d4ef092dbc55db327034d54b64e2e/bin/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /gen/uk/co/villainrom/pulser/enablecallrecording/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package uk.co.villainrom.pulser.enablecallrecording; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /gen/uk/co/villainrom/pulser/enablecallrecording/R.java: -------------------------------------------------------------------------------- 1 | /* AUTO-GENERATED FILE. DO NOT MODIFY. 2 | * 3 | * This class was automatically generated by the 4 | * aapt tool from the resource data it found. It 5 | * should not be modified by hand. 6 | */ 7 | 8 | package uk.co.villainrom.pulser.enablecallrecording; 9 | 10 | public final class R { 11 | public static final class attr { 12 | } 13 | public static final class drawable { 14 | public static final int ic_launcher=0x7f020000; 15 | } 16 | public static final class string { 17 | public static final int app_name=0x7f030000; 18 | } 19 | public static final class style { 20 | /** 21 | Base application theme, dependent on API level. This theme is replaced 22 | by AppBaseTheme from res/values-vXX/styles.xml on newer devices. 23 | 24 | 25 | Theme customizations available in newer API levels can go in 26 | res/values-vXX/styles.xml, while customizations related to 27 | backward-compatibility can go here. 28 | 29 | 30 | Base application theme for API 11+. This theme completely replaces 31 | AppBaseTheme from res/values/styles.xml on API 11+ devices. 32 | 33 | API 11 theme customizations can go here. 34 | 35 | Base application theme for API 14+. This theme completely replaces 36 | AppBaseTheme from BOTH res/values/styles.xml and 37 | res/values-v11/styles.xml on API 14+ devices. 38 | 39 | API 14 theme customizations can go here. 40 | */ 41 | public static final int AppBaseTheme=0x7f040000; 42 | /** Application theme. 43 | All customizations that are NOT specific to a particular API-level can go here. 44 | */ 45 | public static final int AppTheme=0x7f040001; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /out/EnableCallRecording.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulser/xposedEnableCallRecording/29b41b399b6d4ef092dbc55db327034d54b64e2e/out/EnableCallRecording.apk -------------------------------------------------------------------------------- /proguard-project.txt: -------------------------------------------------------------------------------- 1 | # To enable ProGuard in your project, edit project.properties 2 | # to define the proguard.config property as described in that file. 3 | # 4 | # Add project specific ProGuard rules here. 5 | # By default, the flags in this file are appended to flags specified 6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt 7 | # You can edit the include path and order by changing the ProGuard 8 | # include property in project.properties. 9 | # 10 | # For more details, see 11 | # http://developer.android.com/guide/developing/tools/proguard.html 12 | 13 | # Add any project specific keep options here: 14 | 15 | # If your project uses WebView with JS, uncomment the following 16 | # and specify the fully qualified class name to the JavaScript interface 17 | # class: 18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 19 | # public *; 20 | #} 21 | -------------------------------------------------------------------------------- /project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-16 15 | -------------------------------------------------------------------------------- /res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulser/xposedEnableCallRecording/29b41b399b6d4ef092dbc55db327034d54b64e2e/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulser/xposedEnableCallRecording/29b41b399b6d4ef092dbc55db327034d54b64e2e/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulser/xposedEnableCallRecording/29b41b399b6d4ef092dbc55db327034d54b64e2e/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | EnableCallRecording 4 | 5 | -------------------------------------------------------------------------------- /res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | -------------------------------------------------------------------------------- /src/uk/co/villainrom/pulser/enablecallrecording/EnableCallRecording.java: -------------------------------------------------------------------------------- 1 | package uk.co.villainrom.pulser.enablecallrecording; 2 | 3 | import de.robv.android.xposed.IXposedHookLoadPackage; 4 | import de.robv.android.xposed.XC_MethodHook; 5 | import de.robv.android.xposed.XC_MethodReplacement; 6 | import de.robv.android.xposed.XposedBridge; 7 | import de.robv.android.xposed.XposedHelpers; 8 | import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; 9 | import static de.robv.android.xposed.XposedHelpers.getObjectField; 10 | import java.util.HashMap; 11 | 12 | /* 13 | * This patch will enable the Samsung call recording feature, which is normally enabled or disabled 14 | * based on the user's region. There are many regions where call recording is completely legal, 15 | * but which have not been enabled by Samsung. If user lives in one of these regions, they can use 16 | * this patch in order to restore the call recording feature. 17 | */ 18 | 19 | public class EnableCallRecording implements IXposedHookLoadPackage { 20 | 21 | @Override 22 | public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable { 23 | if (lpparam.packageName.equals("com.android.phone")) { 24 | ClassLoader classLoader = lpparam.classLoader; 25 | //method by rovo89 26 | XposedHelpers.findAndHookMethod("com.android.phone.PhoneFeature", classLoader, "hasFeature", String.class, new XC_MethodHook() { 27 | @Override 28 | protected void beforeHookedMethod(MethodHookParam param) throws Throwable { 29 | if ("voice_call_recording".equals(param.args[0])) { 30 | param.setResult(Boolean.TRUE); 31 | XposedBridge.log("setcallrecordtrue"); 32 | } 33 | } 34 | }); 35 | } 36 | 37 | 38 | }; 39 | } 40 | --------------------------------------------------------------------------------