StrawDroid ghcr.io/junkerderprovinz/strawdroid:latest https://github.com/junkerderprovinz/strawdroid/pkgs/container/strawdroid br0.20 bash false https://forums.unraid.net/topic/200577-support-junkerderprovinz-strawdroid/ https://github.com/junkerderprovinz/strawdroid https://github.com/junkerderprovinz/strawdroid/blob/main/README.md A straw droid is a practice dummy shaped like an Android phone: built like the real thing so somebody can strike at it without anybody getting hurt. This one runs the REAL Android emulator - the same AVD Android Studio starts - on a Selkies desktop, so an app under development can be installed, driven and broken without an APK ever touching a phone. NOT Android-in-a-container (ReDroid, Waydroid). Those run the Android userspace directly on the host kernel: no battery, no motion sensor, no power HAL. Doze therefore never fires, WorkManager runs more eagerly than it ever would on real hardware, and Android's limits on a dataSync foreground service never kick in. For an app whose job is syncing files in the background, a rig that is green because it never asks the question is worse than no rig at all. Android 16 (API 36), the NEWEST on purpose. It keeps the six-hour daily cap on dataSync foreground services that arrived in 14 AND the timeout that arrived in 15, so the newest level is the STRICTEST rather than a different one - and the Play Store wants a recent target level anyway. The google_apis image carries Play services and a real DocumentsUI, the SAF folder picker. Screen: Selkies over HTTPS on 3001. No login. Deploy from a development machine: adb connect <container-ip>:5555 Android Studio then lists it as an ordinary device and deploys and debugs on it exactly like a phone on a cable. Force Doze, which is the point of using a real AVD: adb -s <container-ip>:5555 shell dumpsys deviceidle force-idle Needs /dev/kvm, passed in via Extra Parameters. Bottich is bare metal, so no nested virtualisation is involved. Without it the emulator will not start, and the container log says so in as many words. NOT set to restart on its own, on purpose. An emulator is a virtual machine and holds its memory whether anybody is testing or not - measured idle, with no app installed, about 6 GB. Start it when it is needed and stop it after. Tools:Utilities https://[IP]:[PORT:3001]/ https://raw.githubusercontent.com/junkerderprovinz/strawdroid/main/templates/strawdroid.xml https://raw.githubusercontent.com/junkerderprovinz/strawdroid/main/.github/assets/icon.png --restart=no --device=/dev/kvm --shm-size=2gb --cpus="4" --memory="8g" A CPU with hardware virtualisation, and /dev/kvm present on the host. 3001 3000 5555 /mnt/user/appdata/strawdroid /mnt/user/download swiftshader_indirect pixel_6 2048 strawdroid us Europe/Vienna 99 100