androidaudiocall-recording

How do some apps overcome phone recording restrictions?


Background

Phone recording is not really supported on Android, yet some devices support it to some extend.

This made various call recording apps gather as much possible information about devices and what should be done to them, and decide upon this what to do.

Some even offer root solutions.

One such example is boldbeast Call Recorder app, which offers a lot of various configurations to change:

enter image description here

The problem

If I'm in need to create a call recording app, there is no other way than to find the various workarounds for various devices, but as it seems other apps use terms that don't appear in the API.

I can't find any of those of the app I've mentioned, for example.

What I've found

Other than tons of questions of how to record calls on Android, showing that it doesn't work on all devices, I could find some interesting things. Here are my tries and insights so far:

The questions

As opposed to other similar questions about this topic, I'm not asking how to record calls. I already know it's a very problematic and complex problem. I already know I will have to address various configurations, and that I will probably use a server to store all of them and find there the best match for each one.

What I want to ask is more about the tweaking and workarounds :

  1. Is there a list of configurations for the various devices, Android versions, and what to choose for each?

  2. Besides Audio source, which other configuration is possible to be used?

  3. Which parameters are possible for the various devices and Android versions ? Are there any websites of the OEMs describing them?

  4. What are the various terms in the app I've mentioned? Where can I find information of how to change them?

  5. Which tools are available for rooted devices?

  6. Is it possible to know which device supports call recording and which not, by using the API ?

  7. About the workaround of OnePlus 2, to wait a moment till we start recording, why is it needed? Is it needed on all Android versions? Is it a known issue? Would 1 second be enough?

  8. How come on the Galaxy S7 I've failed to record the other side even when using MIC&speaker?


EDIT: I've found this of accessibility service being able to help with call recording:

https://developer.android.com/guide/topics/media/sharing-audio-input#voice_call_ordinary_app

Not sure how to use it though. It seems "ACR Phone Dialer" uses it. If anyone knows how it can be done, please let me know.


Solution

  • According to my tests, one way to improve this is to have an AccessibilityService being active (no need to write there anything at all) while choosing voice-recognition as the audio source. Also it's recommended to have the speaker turned on because this will record the audio from the microphone.

    This seems to exist in some call-recording apps.

    Weird thing is that Google has written this as a rule on the Play Store:

    The Accessibility API is not designed and cannot be requested for remote call audio recording.

    https://support.google.com/googleplay/android-developer/answer/11899428

    No idea what the "remote" means here.

    Anyway, I've updated the Github repository to include these additions.