JakeWharton / Telecine

Record full-resolution video on your Android devices.
Apache License 2.0
2.47k stars 460 forks source link

Investigate supporting host audio recording #79

Open JakeWharton opened 9 years ago

JakeWharton commented 9 years ago

If this is relatively easy to do we should just support it. Android supports this feature, but I have no idea how to leverage root for permission escalation.

NightlyNexus commented 9 years ago

Specifically, we need CAPTURE_AUDIO_OUTPUT. I think it'd require checking for the su command, and granting the permission with the package manager (pm).

monxalo commented 9 years ago

Here's a library which may simplify the root access.

JakeWharton commented 9 years ago

@monxalo If it's not available via Maven Central as an aar or jar we probably won't use it for simplicity sake.

monxalo commented 9 years ago

Okay, I found another which is based on the previous one. This one is published on maven central, might be worth checking out.

JakeWharton commented 9 years ago

Apache 2 is not compatible with GPLv2

grigala commented 8 years ago

Have you guys seen Play Games latest feature "Record Gameplay"? Basically they are using mic to record audio, at least we can do the same using OpenSL ES.

Screenshot

JakeWharton commented 8 years ago

I personally don't want ambient sound picked up. It would be great to get the raw audio.

On Sun, Jun 19, 2016, 6:16 PM Giorgi Grigalashvili notifications@github.com wrote:

Have you guys seen Play Games https://play.google.com/store/apps/details?id=com.google.android.play.games&hl=en latest feature "Record Gameplay"? Basically they are using mic to record audio, at least we can do the same using OpenSL ES https://developer.android.com/ndk/guides/audio/opensl-for-android.html.

[image: Screenshot] https://camo.githubusercontent.com/f132de3f37df88620ed4b365265b185562414a3c/687474703a2f2f692e696d6775722e636f6d2f35456d35534a482e6a7067

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/JakeWharton/Telecine/issues/79#issuecomment-227023741, or mute the thread https://github.com/notifications/unsubscribe/AAEEEblIn5x6AJ6Bl4nNlqJUXHoEnb8_ks5qNb-qgaJpZM4GPF0y .

monxalo commented 7 years ago

Here's more info about this:

CAPTURE_AUDIO_OUTPUT has protection level of signatureOrSystem.

Android docs states:

A permission that the system grants only to applications that are in the Android system image or that are signed with the same certificate as the application that declared the permission. Please avoid using this option, as the signature protection level should be sufficient for most needs and works regardless of exactly where applications are installed. The "signatureOrSystem" permission is used for certain special situations where multiple vendors have applications built into a system image and need to share specific features explicitly because they are being built together.

Which means, for the time being, even with root, we're not going to be able to acquire this permission level.

thecyberd3m0n commented 7 years ago

If even with root this is not possible, maybe we need custom kernel/Android Fork. Android is Open Source, so just fork it with CAPTURE_AUDIO_OUTPUT availabe. I'll start research

BruceBayne commented 6 years ago

it is possible to RESIGN all system packages with new signature, after that clean dalvick-cache e.t.c.

After that, you can sign any package with same signature, and this open gate for CAPTURE_AUDIO_OUTPUT

This process is not very hard but you can't deploy it as simple ClickMe.apk

JakeWharton commented 5 years ago

https://android-developers.googleblog.com/2019/07/capturing-audio-in-android-q.html