Hi everyone,
I'm trying to intercept the incoming and outgoing call audio streams. Since this seems to be a complex topic I did some initial research and tried to think of a way how to approach this problem.
What I've learned:
1. The android system will initiate the call through the RIL system. While setting up the call input and output stream target e.g. microphone and speaker will be specified (routed?).
2. The vendor ril library will ultimately be responsible for initializing and maining communications with the modem.
3. Once the call is established the modem will retrieve and send audio data without allowing higher level hooks or modifications to the streams (e.g. through a Java App)
I also found that for other use cases audio data goes through the vender implemented audio HAL library which normally handles audio streams.
So my question is whether the modem will usually make use of the HAL audio library to record / play its data and whether it is possible to "simply" wrap the vender audio HAL implementation library in order to intercept the voice streams.
Sadly I wasn't able to get solid information about this last problems. Somwhere it was mentioned that certain vendors will bypass the OS completely and directly talk to the recording / playback devices however no statement was made to which chips and models this applies.
Related
I'm experimenting with writing an app that uses AudioTrack to play audio (for purposes of testing, sine waves generated within the app) from my Verizon Samsung Galaxy Note II to my ESI U46XL USB audio interface. It works perfectly in stereo mode, but when I initialize AudioTrack with CHANNEL_OUT_5POINT1 and attempt to feed it a 6-channel stream, the sound that plays back doesn't sound anything like that stream.
I'm suspecting that the USB audio driver is the problem, since anything higher-level would also impose its limitations on the HDMI audio, wouldn't it? Google says that "Android 4.1 supports multichannel audio on devices that have hardware multichannel audio out through the HDMI port." But can anyone confirm my suspicion? I was also thinking maybe the 16-bit interleaved PCM format isn't used for > 2 channels, but I've tried every other format I can think of with no luck.
I'm hoping the problem is anywhere except for the USB audio driver, because then I can bypass whatever it is one way or another.
If you have someone with experience modification RIL and Audio level firmware/kernel Android?
Is it possible to intercept/modify/re-route incoming and outgoing audio streams that run from the modem/to the modem or on the other system levels?
Hi,
We have two different apps sending audio to the call audio stream. We need to mute the audio from one or the other app, and do this programatically (ie. a third app, written by us, controlling the audio mute/unmute of each of the other two apps).
Is there a way to do this without rooting the phone or using a custom OS?
Thanks
I have made an observation in Android Marshmallow (I know, not the newest, but I still want to find answers to this mystery):
Audio recording (using com.nll.asr) blocks video recording.
Audio recording during phone call is possible.
My question is:
How come (technically) that the telephone application is able to access the microphone simultaneously with the voice recorder, while the camera can not?
What is the technical reason for that?
——————————————–
Trivial observation: In Android 4.4.2, the audio recorder and torch app keeps the LED on and the ASR voice recorder keeps recording during shutdown.
Yes. You can remove the headset volume limits & increase the sound fidelity too. This method works on all the devices
It involves removal of vendor files.
acdb (Audio Calibration DataBase) are the proprietary vendor files that calibrates the audio data transmission for all the audio components related to the specific device.
PreNote : Removing this file introduces one bug. When you call someone normally through your default phone application, the receiver (sometimes) can't hear you (when on headset). If it happen, you should unplug your 3.5mm jack & talk. But it doesn't affect any other internet audio calls made with Whatsapp, Telegram, etc.
Just move the headset_cal.acdb from /vendor/etc/acdbdata/QRD/ to your sdcard somewhere as a backup & reboot.
If you want to revert this, place the same file into it's vendor location & reboot you device.