Repository navigation
Closed
Description
Camera access is broken since the latest Pixel update:
$ scrcpy --list-cameras
scrcpy 3.3.3 <https://github.com/Genymobile/scrcpy>
INFO: ADB device found:
INFO: --> (usb) xxxxxxxx device Pixel_8
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 112.1 MB/s (90960 bytes in 0.001s)
[server] INFO: Device: [Google] google Pixel 8 (Android 16)
[server] ERROR: Permission Denial: package=android does not belong to uid=2000
java.lang.SecurityException: Permission Denial: package=android does not belong to uid=2000
at android.os.Parcel.createExceptionOrNull(Parcel.java:3373)
at android.os.Parcel.createException(Parcel.java:3357)
at android.os.Parcel.readException(Parcel.java:3340)
at android.os.Parcel.readException(Parcel.java:3282)
at android.app.IActivityTaskManager$Stub$Proxy.getAppTasks(IActivityTaskManager.java:3023)
at android.app.ActivityManager.getAppTasks(ActivityManager.java:3011)
at android.hardware.camera2.CameraManager.getRotationOverride(CameraManager.java:1673)
at android.hardware.camera2.CameraManager.getRotationOverride(CameraManager.java:1653)
at android.hardware.camera2.CameraManager.getCameraCharacteristics(CameraManager.java:714)
at com.genymobile.scrcpy.util.LogUtils.buildCameraListMessage(LogUtils.java:147)
at com.genymobile.scrcpy.Server.internalMain(Server.java:259)
at com.genymobile.scrcpy.Server.main(Server.java:215)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:366)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.wm.ActivityTaskManagerService.assertPackageMatchesCallingUid(ActivityTaskManagerService.java:2422)
at com.android.server.wm.ActivityTaskManagerService.getAppTasks(ActivityTaskManagerService.java:2843)
at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1586)
at com.android.server.wm.ActivityTaskManagerService.onTransact(ActivityTaskManagerService.java:6233)
at android.os.Binder.execTransactInternal(Binder.java:1473)$ scrcpy --video-source=camera
scrcpy 3.3.3 <https://github.com/Genymobile/scrcpy>
INFO: Camera video source: control disabled
INFO: Camera video source: microphone audio source selected
INFO: ADB device found:
INFO: --> (usb) 38151FDJH00CP4 device Pixel_8
/usr/local/share/scrcpy/scrcpy-server: 1 file pushed, 0 skipped. 28.5 MB/s (90960 bytes in 0.003s)
[server] INFO: Device: [Google] google Pixel 8 (Android 16)
[server] INFO: Using camera '0'
[server] ERROR: Exception on thread Thread[video,5,main]
java.lang.SecurityException: Permission Denial: package=android does not belong to uid=2000
at android.os.Parcel.createExceptionOrNull(Parcel.java:3373)
at android.os.Parcel.createException(Parcel.java:3357)
at android.os.Parcel.readException(Parcel.java:3340)
at android.os.Parcel.readException(Parcel.java:3282)
at android.app.IActivityTaskManager$Stub$Proxy.getAppTasks(IActivityTaskManager.java:3023)
at android.app.ActivityManager.getAppTasks(ActivityManager.java:3011)
at android.hardware.camera2.CameraManager.getRotationOverride(CameraManager.java:1673)
at android.hardware.camera2.CameraManager.getRotationOverride(CameraManager.java:1653)
at android.hardware.camera2.CameraManager.openCamera(CameraManager.java:1240)
at com.genymobile.scrcpy.video.CameraCapture.openCamera(CameraCapture.java:311)
at com.genymobile.scrcpy.video.CameraCapture.init(CameraCapture.java:109)
at com.genymobile.scrcpy.video.SurfaceCapture.init(SurfaceCapture.java:33)
at com.genymobile.scrcpy.video.SurfaceEncoder.streamCapture(SurfaceEncoder.java:70)
at com.genymobile.scrcpy.video.SurfaceEncoder.lambda$start$0$com-genymobile-scrcpy-video-SurfaceEncoder(SurfaceEncoder.java:296)
at com.genymobile.scrcpy.video.SurfaceEncoder$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at java.lang.Thread.run(Thread.java:1563)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.wm.ActivityTaskManagerService.assertPackageMatchesCallingUid(ActivityTaskManagerService.java:2422)
at com.android.server.wm.ActivityTaskManagerService.getAppTasks(ActivityTaskManagerService.java:2843)
at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1586)
at com.android.server.wm.ActivityTaskManagerService.onTransact(ActivityTaskManagerService.java:6233)
at android.os.Binder.execTransactInternal(Binder.java:1473)Metadata
Metadata
Assignees
Labels
No labels
Activity
rom1v commentedon Dec 9, 2025
This is sufficient to workaround the issue:
Fix permission denial error after Android upgrade
rom1v commentedon Dec 9, 2025
Fixed by 5b51396.
rom1v commentedon Dec 15, 2025
Here is a binary with the fix to replace in scrcpy 3.3.3:
scrcpy-serverSHA-256: f4387c2eccebf17dc8e40bf9e6ec61705dfce5356a32f93d8568d1a97599d11JustCauseWhyNot commentedon Dec 17, 2025
I tried patching build 3.3.3, but it didn't fix the error. Not sure if I did something wrong, or if I need to build from the latest commit. But it was easiest for me to patch, and build from 3.3.3. It also seems like a small change that should fix it.
personal patch
error output
build.log
rom1v commentedon Dec 17, 2025
@JustCauseWhyNot
You're only rebuilding the client, where as the change is in the server.
JustCauseWhyNot commentedon Dec 17, 2025
I'm sorry, but I don't understand what I'm failing to do. I get there's client, and server. I see there two separate binaries. But when I build scrcpy through portage, or the install_release.sh a scrcpy-server bin doesn't get built. I tried manually putting the scrcpy-server into /usr/bin also, but it didn't change anything. I apologize for my lack of understanding.
JustCauseWhyNot commentedon Dec 17, 2025
I figured it out. Sorry for the waste of time. I didn't realize I needed to replace the scrcpy-server apk that's installed at /usr/share/scrcpy. Thank you for your help.
rom1v commentedon Dec 17, 2025
Fixed in scrcpy 3.3.4.
Merge tag 'v3.3.4' of https://github.com/Genymobile/scrcpy into master
federicososa438-a11y commentedon Feb 20, 2026
rom1v commentedon Feb 20, 2026
@federicososa438-a11y It is fixed in 3.3.4. Upgrade to the latest version.