CAPTURE_AUDIO_OUTPUT permission to signed and system apps for valid privacy reasons. However, to this day (API 37), no real, intended direct alternative has been added. Yet, multiple developers have asked about this on the Google Issue Tracker and other websites.Meanwhile, "system" proprietary apps like the Google Dialer and OEMs apps sometimes use that restricted permission, and some do offer the recording feature. However, they often choose not to offer it to most users (even if legal in the user country), or they add their own proprietary rules on top of it. That is, of course, without mentioning that their apps are often privacy invasive.
On the other side, to work around theses new limitations, there are a couple of closed-source proprietary call recording apps on the play store and other online stores that use workaround ways like the speaker trick and accessibility services (see this short Bitdefender article on accessibility service security risks, I had found a really cool in depth article with all of the way it could be abused but can't find it anymore 😞 ).
I will not name any app nor say that they are 100% malicious as I did not dig deep, but I will say this: When I was looking at applications and checked them, some had unrelated invasive permissions related to the GPS and/or the phone sensors. Other apps would sometimes start pinging some remote config endpoint at recurrent intervals. All of these apps used accessibility services. Considering that these apps run permanently in the background and can see everything on your screen, this isn't really something I was personally comfortable with.
When I started this project, I noticed in the following weeks that a couple of existing closed-source call recording apps slowly added Shizuku support. Would I give ADB-level access to a closed-source app from an unknown developer? Personally, I would not feel comfortable doing so. I'm not looking to discredit their work and it's nice that they keep improving their apps, I'm just saying it's a risk I wouldn't take.
With that in mind, I recently discovered Shizuku and did a deep dive into how it works in my blog post, What is Shizuku, how does it work, and its security implications. This is when I had an idea: what if we could use the shell application permission, a signed system application, to use permissions you normally do not have access to? I searched online, found other issues online talking about it, and decided that if no one would make it (a FOSS app), I would give it a try myself. Now we are here, with a working app (I hope so). The more in-depth story is in the CONTRIBUTING file. I also want to point out that I had never done any real Android development prior to this app. Doing this as a first project was a little bit insane, but we'll see what happens.
https://redd.it/1tgy2ym
@reddit_android