you-apps / RecordYou

Privacy focused recorder app built with MD3
https://you-apps.net
GNU General Public License v3.0
662 stars 31 forks source link

feat: support for recording internal audio in rooted devices #284

Closed SuhasDissa closed 3 months ago

SuhasDissa commented 3 months ago

closes #281

Demo recording

https://github.com/you-apps/RecordYou/assets/64766434/3b40bb55-9be7-4683-a1e1-0c9fa9dc0289


Guide for Root users For this to work the app needs the `android.permission.CAPTURE_AUDIO_OUTPUT` permission. This permission is a privileged permission. so the app needs to be installed as a privileged app. ### How to manually grant the permission 1. Install the app as a normal app 2. use `adb root` or any other method to move the app's apk from `/data/app/` to `/system/priv-app/RecordYou/RecordYou.apk` 3. create a new file `priv-app-permission-recordyou.xml` (name doesn't matter) with the following content: ```xml ``` 4. reboot the phone and use the feature
SuhasDissa commented 3 months ago

Created a magisk module to enable the feature: RecordYou.zip

[!WARNING] Use at your own risk.

rajarshikhatua100 commented 3 months ago

yo this is so cool. I'm a fan

rajarshikhatua100 commented 3 months ago

I think it's not working on Samsung oneUI. but the magisk module is working fine

SuhasDissa commented 3 months ago

I think it's not working on Samsung oneUI. but the magisk module is working fine

Debug builds won't work

rajarshikhatua100 commented 3 months ago

yes, maybe a additional checkmark for enabling root features, and additional root options can be added later like show taps, enable demo mode when using screen recording, disable all notification while screen recording, disable flag secure etc.

SuhasDissa commented 3 months ago

I don't have a working rooted device to test this at the moment - but the changes look fine (except for some small nitpicks in the comments).

I don't have a rooted device either. I used the AOSP rom in android emulator with magisk installed.

Though I wonder if we shouldn't show a toast or a note when users want to select that option, that they need root and follow some steps to make it work? Because currently, users would just try it without any setup and think it just doesn't work.

I didn't want to support or endorse the use of magisk modules. but the same time, not block anyone from using it. So that's why I didn't make the instructions obvious.

Nevertheless, I can create a new repo and put the magisk module there with the instructions, if you're ok with it

rajarshikhatua100 commented 3 months ago

yes open sourcing the magisk module would be the right move

Bnyro commented 3 months ago

Nevertheless, I can create a new repo and put the magisk module there with the instructions, if you're ok with it

That's fine with me :+1:

Robbilie commented 2 months ago

@SuhasDissa I tried the github actions apk and built a local release and signed it with the test key. In both cases the apk was installed in /system/system_ext/priv-app, adb dump of the package shows the permission is granted (even without the permissions xml, i added it later though for completeness). I tried several variations (audio only and screen recorder, wav and no wav, different encodings, some crash the app though) but all files are without any audio. i am using an android emulator (x86_64, automotive, should probably not make any difference though) and I play back sound using spotify and vlc (an mp3 file).

any clues as to what i am doing wrong?

SuhasDissa commented 2 months ago

any clues as to what i am doing wrong?

Did you set the audio source as internal audio?

Robbilie commented 2 months ago

any clues as to what i am doing wrong?

Did you set the audio source as internal audio?

Yes 😄

Addition: when i select default and m4a it crashes the app aswell, when i select aac it records (and shows the audio curve while recording). while using internal audio with aac does record, there is no audio curve shown at all…

My current assumption is that this is due to android automotive.