Installing the previous version of Joneplus Tools from apkmirror works. Granted adb permissions to the app through LADB (read above) and it seems to work fine.
Also check Techibee's latest video if you want to learn how to properly handle the OP Dialer sometimes not being revealed as the primary Dialer on screen. He also explains how you can access the OP Dialer on incoming calls.
It's a welcome addition to the above advised steps for those who are not in Call Recording native activated regions (Europe, other?...)
adb shell pm grant net.jroot3d.joneplustools android.permission.WRITE_SECURE_SETTINGS
Exception occurred while executing 'grant': java.lang.SecurityException: grantRuntimePermission: Neither user 2000 nor current process has android.permission.GRANT_RUNTIME_PERMISSIONS. at android.app.ContextImpl.enforce(ContextImpl.java:2186) at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:2214) at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermissionInternal(PermissionManagerService.java:1470) at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:1452) at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:378) at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2419) at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:260) at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97) at android.os.ShellCommand.exec(ShellCommand.java:38) at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:25791) at android.os.Binder.shellCommand(Binder.java:970) at android.os.Binder.onTransact(Binder.java:854) at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4818) at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:8879) at android.os.Binder.execTransactInternal(Binder.java:1226) at android.os.Binder.execTransact(Binder.java:1163)
Read about Magisk/Zygisk and denylist.
Hi do you mean android 11 without root call recording still works thru joneplus tool?As far as I know at the moment, the version of the phone that is sold in India gives you the opportunity to unlock the recording function. I think this is a matter of joneplustool. Currently using oneplus 8 pro that due to the ability to record (android 11). If I do not find a solution, I will most likely sell oneplus 10 pro. Which is a pity, because the phone is great.
Hi guys,Hi guys,
Just upgraded from OP7T to OP10 Pro as a European user.
Call recording functionality does not come with the device here.
Had native call recording enabled on my OP7T through jOnePlus Tools and the likes.
Jtools Oneplus does not install on our device.
Don't want to give up this very important functionality.
I'm sure there's a bunch of peeps here just like me.
To be clear, I haven't succeeded yet and I'm not a developer.
Hoping someone smarter than me can appreciate what a wonderful breakthrough it would be to make this work on the OP10 Pro.
I made some progress and have some clues which I'll share in summary below:
Hoping a smarter person here is willing to give it a go and make history
- OP10 Pro comes with Google Dialer, not OnePlus dialer.
Google dialer natively either prohibits call recording or when succesfully enabled transmits a voice message to the other party disclosing the call is being recorded.
- Enabled developer options by tapping build number 7 times in software version details (About Phone section in Settings)
- In Developer Options: enabled USB debugging & OEM unlocking
- jOnePlus Tools app (Play Store) does not install on our device.
Dev replied to a review in Play Store he discontinued further development of the app.
- Following page lists what adb shell commands need to be executed to enable native call recording:
- Commands on the previous page do not execute, but come back with an error stating "android.permission.GRANT_RUNTIME_PERMISSIONS" must preceed.
- "pm grant <android app package name> android.permission.GRANT_RUNTIME_PERMISSIONS" is useless if there's no particular app available you want to do the writing
- A YouTube video pointed to the following page providing links to download oos12 working OnePlus Dialer & Contacts app along with instructions to change the default dialer app:
- The apps work as advertised albeit there's a floating balloon from the Google Dialer appearing overlayed on the OP Dialer when in a call.
- After installation, settings of these apps still do not show the option for call recording in the settings options list
- I vaguely remember there's a file, that I think needs root access to get to, that can be opened as a text file, in which you can change how your device interprets the region your device is used in, that afterward allows for the otherwise hidden native call recording function to be revealed. But it's been too long since I performed such an operation and can't even remember the name of this file. Maybe the way I explained it triggers someone's understanding here. I'm wondering if this could be a lead to a remaining thing to do to get that call recording function activated.
- I fiddled a bit with different ways of writing the cmd adb commands, by for example using the app package names of the installed OP dialer and contacts apps within a pm grant command, but I'm too dumb to get it right, so no luck with that.
Cheers and godspeed !
Though i dont own 10pro, i like the way you put your efforts. I'm using 9r, and i still didn't updated the os from first one with which it came out of box, because of this security/privacy drama of google; but it's okay for google record each and every move we make.Hi guys,
Found a solution !
Please note that as I understand it, this call recording function will not survive a reboot. We need to re-execute this command in adb upon each reboot for the time being.
- Go to Developer Options.
- Scroll to an option near the end of the list called Disable Permission Monitoring --> Enable it & the command ./adb shell settings put global op_voice_recording_supported_by_mcc 1 is now executing.
- Make a call from your OnePlus Dialer and behold the native call recording button in all its glory !
- Review the call recording from the call log of the number from which you recorded the call OR go to folder Music>Recordings>Call Recordings to find your entire list of call recordings
I also tried disabling the Google Dialer to get rid of that annoying floating bubble overlay on the OnePlus in-call UI, but that simply destroys the in-call UI alltogether by no longer revealing it! So the person who created those OP apps that work on our devices succeeded at making it work by accepting that floating bubble as part of the workaround.
I noticed that on few occasions the OnePlus dialer does not hijack the call in time and the call goes through the Google Dialer in-call UI instead. Anyway, not complaining now that I found it to work at least.
Going to fiddle around with Tasker or some other app that allows me to automate the above adb command to execute upon each reboot.
Edit: Think I'm way to dumb to figure out how I'm gonna be writing this task. If someone savvy can chime in, that'd be great !
Edit 2: Used the following page tutorial to get a paid app called LADB to work on my device that allows me to execute adb commands OTG:
So for now, upon each reboot, I'll just open up this app (you'll need access to wifi every time) and copy/paste the adb command in there without the ./ adb shell part added at the start. So use just settings put global op_voice_recording_supported_by_mcc 1 and tap enter. Boom ! You got call recording back in case you had to reboot OTG.
Still looking forward to find a savvy chap on this thread that can help with automating that adb command upon each reboot
Thank you for the suggestion. I am mainly interested in re-acquiring native call recording functionality. I was also informed that Android 12 indeed does not permit any third party call recording apps to function properly. Asides from that, a non-root method is what I pursue as primary objective. But thank you for suggesting, I appreciate it