New UI
Every screen restyled into one design system — dark dashboard, lime accent, Inter for chrome + JetBrains Mono for tech values. Home now shows live uptime, network and last-session details. Settings re-sectioned with proper buttons for destructive actions. Refreshed setup wizard. New Quick Settings drawer in the terminal that closes on any interaction.
Hardware acceleration on Pixel 8 / 9 / 10
Podroid now runs the VM on pKVM (your phone's real hardware virtualization) instead of software emulation. The VM boots in a few seconds and feels near-native. Auto-detected — falls back to QEMU on any device that doesn't support it.
One-time setup. From a PC with adb:
adb shell pm grant com.excp.podroid android.permission.MANAGE_VIRTUAL_MACHINE
adb shell pm grant com.excp.podroid android.permission.USE_CUSTOM_VIRTUAL_MACHINENo PC? Install Shizuku, start it, then run the same two commands in its rish shell.
Backend lock (Auto / pKVM / QEMU) lives in Settings → Advanced. Switching applies on the next VM start — no app restart.
LAN-reachable port forwarding
Forward rules now bind on your phone's actual LAN IP, not just 127.0.0.1. From your laptop on the same WiFi:
ssh root@<phone-ip> -p 9922
curl http://<phone-ip>:8080
Adding / removing rules takes effect within a second — no VM restart. The X11 and audio viewers also come up on the LAN.
Terminal auto-resize
btop, htop, vim, less etc. now resize live as you rotate the phone or slide the keyboard — on both backends.
Snappier terminal & faster guest CPU
~50 ms off every keystroke. Keyboard slide → prompt redraw ~145 ms (was ~350). TUI streams render at ~30 fps (was ~15). Faster guest CPU under load. storage.img shrinks back on fstrim instead of growing forever.
Audio fixes
- Clicking noise in Firefox / video playback is gone
- Firefox + other apps actually reach the audio sink now (was silently broken)
X11 viewer no longer crashes mid-session
Used to disconnect when the VM sent a clipboard sync. Fixed — full sessions stay up.
More headroom
Swap inside the VM is now ~1.5× RAM (was half). Firefox + a full desktop in a 2 GB VM stays smooth. If memory does run out, the browser dies — not your SSH or X11.
Cleaner Settings
- New AVF (pKVM) diagnostic dialog
- Phone IP no longer shows the cellular CLAT internal address — always the LAN IP
- Downloads sharing toggle greys out (with explanation) on AVF where it's not supported
⚠️ Heads-up: Android phantom-process killer
Android 12+ kills background native processes. If your VM dies on app-switch, run once:
adb shell "device_config put activity_manager max_phantom_processes 2147483647"
adb shell settings put global settings_enable_monitor_phantom_procs falseOr via root:
su -c /system/bin/device_config put activity_manager max_phantom_processes 2147483647
su -c setprop persist.sys.fflag.override.settings_enable_monitor_phantom_procs falseKnown limitations
- Downloads folder sharing isn't available on pKVM — it's a system-app-only API on shipping Pixel firmware. Works on QEMU.
- Default VM RAM is still 512 MB — bump to 2 GB in Settings for desktop / browser workloads.
- Android 8 still unsupported (NDK / glib blocker).