Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Call Audio Stream Modification in Android 4.0 ICS

I've been working on a project that would greatly benefit from call-stream modification. This has been repeatedly said/assumed to be unachievable, as most people believe that the hardware loop for the in-call audio is completely disconnected from the main MCU of the device.

Questions like Stream audio to a phone call Android have received answers stating that it is impossible to access the audio. I agree that this is definitely impossible from the Android API, but it is completely unclear whether the hardware ACTUALLY is disconnected completely.

The stackoverflow user 'artsylar' said that they were able to modify the 'framework layer' of Android OS to inject recorded audio into call streams, which would be a huge step forward (see Play an audio clip onto an ongoing call, artsylar's comment on the selected answer). Assuming artsylar's success is valid, there definitely is a way to control the call stream audio by modifying the framework (I assume the telephony base framework in the Android source).

Basically, I completely agree that modifying or controlling the call-stream is impossible from the application layer. However, I am interested in customizing the Android OS in framework or Radio Interface Layer; artsylar seems to have had success, but there is no explanation in open-literature on how. Given the current state of Android technology, could anyone clarify the above to actually establish whether controlling call audio is possible by modifying the core Android OS, and a good path to accomplish this goal?

I believe that a final clarification on this issue would be of great value to the open-source community.

Thanks!

like image 929
sandman Avatar asked May 11 '12 03:05

sandman


2 Answers

It's technically possible to inject audio into the voice call uplink on some platforms (Qualcomm's MSM8960 and APQ8064, for example). Support exists at the hardware level and at the device driver level. But to make that functionality available to normal applications you'd have to create a custom Android ROM where you've added all the necessary user-space parts in both the Java layers and native layers of Android.

So the short answer is: no, there's no standard way of doing this as an app developer (doesn't matter if you use the SDK or NDK).
If you're working for an OEM or by some other means are able to build and flash your own Android ROMs you can probably get the information you need by asking your platform vendor.

like image 167
Michael Avatar answered Nov 07 '22 22:11

Michael


It is very difficult to do so because it relates to handling the Linux Kernal inside the Android OS.

Not only is there no API support , but also the security issue is not allowed to do so.

As being a professional in the software engineering field especially the programmers, we never assume anyone's success on invention and the related project is valid until the project is being tested.

Also streaming the audio during the call may invoke the issue of privacy and security issue among the smartphone users and the service provider of telephony

like image 5
Raju yourPepe Avatar answered Nov 07 '22 20:11

Raju yourPepe