KieronQuinn / AmbientMusicMod

Port of Now Playing from Pixels to other Android devices
GNU General Public License v3.0
1.87k stars 41 forks source link

Could you ditch Shizuku/Root by granting CAPTURE_AUDIO_HOTWORD directly to AmbientMusicMod? #190

Closed marcschwaiger closed 1 year ago

marcschwaiger commented 1 year ago

From what I saw I think the CAPTURE_AUDIO_HOTWORD permission is the only one needed for Ambient Music Mod, or is there anything I oversaw?

As a Graphene OS user I would prefer granting the nessecary permissions directly to Ambient Music Mod instead of installing Shizuku. I think this permission granting can be done every reboot via wireless debugging like shizuku, but wireless debugging can be turned off afterwards.

Could you please tell if this could work and what you think of it? Is a standalone version like this planned?

great work btw 🥇

KieronQuinn commented 1 year ago

CAPTURE_AUDIO_HOTWORD is unfortunately not eligible to be granted with pm grant:

raven:/ $ pm grant com.kieronquinn.app.pixelambientmusic android.permission.CAPTURE_AUDIO_HOTWORD                                                                                                                                                                                     

Exception occurred while executing 'grant':
java.lang.SecurityException: Permission android.permission.CAPTURE_AUDIO_HOTWORD is managed by role
    at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermissionInternal(PermissionManagerServiceImpl.java:1406)
    at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermission(PermissionManagerServiceImpl.java:1336)
    at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:551)
    at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:609)
    at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2672)
    at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:291)
    at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
    at android.os.ShellCommand.exec(ShellCommand.java:38)
    at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:6349)
    at android.os.Binder.shellCommand(Binder.java:1068)
    at android.os.Binder.onTransact(Binder.java:888)
    at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4352)
    at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:6333)
    at android.os.Binder.execTransactInternal(Binder.java:1344)
    at android.os.Binder.execTransact(Binder.java:1275)