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/unraid-apps/main/strawdroid/strawdroid.xml
https://raw.githubusercontent.com/junkerderprovinz/unraid-apps/main/strawdroid/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