FossifyOrg / Phone

A handy phone call manager with phonebook, number blocking and multi-SIM support
https://www.fossify.org
GNU General Public License v3.0
460 stars 42 forks source link

Call recording #17

Open ElsAr4e opened 8 months ago

ElsAr4e commented 8 months ago

Checklist

Is your feature request related to a problem? Please describe. NO

Describe the solution you'd like I would like to have the option to record calls

It has been discussed here:

https://github.com/SimpleMobileTools/Simple-Dialer/issues/36#issuecomment-1613765585

Describe alternatives you've considered I want to add this feature request (again) and ask the following question:

Do you have any plans to release your app on Google Play? Because Google does NOT allow to apps to use the Accessibility Service for call recording. Other apps like ACR-Phone therefore need the APH app too: https://nllapps.com/apps/cb/accessibility.htm

But I think F-Droid does not have such rules? So you could release one app (only?) that records the call using the Accessibility Service?

Additional context And maybe you can also provide an option for rooted phones. (Opt-in setting that checks if your phone is rooted and asks if you want to enable that option)

Aga-C commented 8 months ago

Please adjust your feature request report to the issue template.

ElsAr4e commented 8 months ago

Please adjust your feature request report to the issue template.

Done.

Aga-C commented 8 months ago

@ElsAr4e Thanks!

@naveensingh Please check this.

naveensingh commented 8 months ago

Do you have any plans to release your app on Google Play?

Yes, the majority of the users are from Google Play.

I'm aware of the call recording situation as this was being researched at SMT and sadly there was no reliable way to make it work. Adding this support for the F-Droid version using an accessibility service is an option but I'm not sure how reliable that will be. I have tried ACR and it didn't work reliably for me.

@Aga-C I got a feeling this will be requested again and again so let's just keep this open.

ElsAr4e commented 8 months ago

I have tried ACR and it didn't work reliably for me.

But I guess you've used it on a non-rooted device and Android 10+? (Because until Android 8 real call recording without root should be possible even if you are using non-system apps).

The dialer (system app) of GrapheneOS already has that option: https://grapheneos.org/releases#2023040400

But people who are using rooted phones could enjoy the call recording without any limits?

naveensingh commented 8 months ago

I guess you've used it on a non-rooted device and Android 10+?

Yes.

people who are using rooted phones could enjoy the call recording

Yes, people with rooted phones (which includes me) could utilize this feature but the majority of the (future) users don't even know what root is so I don't want to add features requiring root permission. The Fossify apps still follow the Simple philosophy.

Since this is an attractive feature to many, we'll maybe try this using an accessibility service later.

NickAndreou commented 5 months ago

There is this ap called call recorder (duh) that works fine recording, maybe those who look for this option could use it, and the programmers here could get some ideas on how to implement a similar option. Below I will put the link that if not acceptable can be deleted. https://gitlab.com/axet/android-call-recorder

wyattwc commented 5 months ago

There is this ap called call recorder (duh) that works fine recording

The problem is reliable implementation of the feature. How android handles access has evolved over the years. My brand new A54 for example, this doesn't work.

To be able to reliably get good quality phone call recordings you'd need to do MediaRecorder#setAudioSource(VOICE_CALL), and it requires android.permission.CAPTURE_AUDIO_OUTPUT. If you can find a way to grab that permission without being root, let us know.

Outside of that, I would love to see the option implemented in a way that we could enable it if we have root.

ElsAr4e commented 5 months ago

Rooted devices can use the Basic Call Recorder: https://github.com/chenxiaolong/BCR

@naveensingh Once the device is rooted you should be able to use Fossify Phone and BCR together to record calls? Even if Fossify Phone does not have the recording option (yet)?


BTW: You can have real call recording if you are using Android 8.1 and maybe also Android 9. Just Android 10+ is the issue when it comes to call recording using third-party apps?

So if Fossify Phone supports Android 8.1 you could use Fossify Phone without root to record calls?

wyattwc commented 5 months ago

True, but I thought this discussion was on non-rooted Android 10+ phones?

ZMJGMADHPXWT commented 4 months ago

It would be great to get such an option. And it could be perfect to have automatic call recording like an old MIUI dialer.

AtmosphericIgnition commented 3 months ago

I use many of the Fossify apps on my GrapheneOS phone, and this is unfortunately the only feature that keeps me using the stock phone app, instead of the Fossify alternative. I understand from this discussion that this could turn out to be a very complicated endeavor, but I still wanted to put down my "vote" for this feature.

ElsAr4e commented 3 months ago

@AtmosphericIgnition You'll probably never be able to use a third party call recorder - at least if GrapheneOS is based on Android 10+ https://github.com/GrapheneOS/os-issue-tracker/issues/3401#issuecomment-2053993857

EDIT: If you mean "real" call recording and not just using the accessibility service for call recording.

ZMJGMADHPXWT commented 3 weeks ago

From what I've found, there is an option to automatically record calls in some Syberia and PixelMagic ROMs from the box. So looks like it's possible on Android 14.

AtmosphericIgnition commented 3 weeks ago

As far as my understanding of this problem goes, there are currently 2 ways to record a cellular phone call on modern Android.

  1. The hacky way:
  1. The "proper" way
  1. The horribly insecure way

Neither of these methods is really suitable for Fossify apps, unless some Android distro would ship the Fossify dialer as their default dialer, and gave it access to android.permission.READ_PRIVILEGED_PHONE_STATE.

Stan805 commented 1 week ago

How I'd do it is basically just have the phone app simply check for if the phone is rooted or the phone app is installed as a system app (like if someone makes aa custom rom with the app) and then enable call recording. Preferably without an announcement like the stock Pixel Phone app has or like Apple will have in iOS 18.