Dual booting for testing and curiosity with Dynamic System Updates
Droidcon London 2025
Niall Scott
Bluesky: niallscott.bsky.social
Outcomes
I will cover…
Who has heard of Dynamic System Updates (DSUs)?
TIL = “Today I learned” (https://dictionary.cambridge.org/dictionary/english/til)
So, what are Dynamic System Updates?
We’ll get there!
Firstly, we need to talk about Generic System Images (GSIs)...
So, what are Generic System Images (GSI)s?
https://developer.android.com/topic/generic-system-image (image sourced from same page)
“A Generic System Image (GSI) is a pure Android implementation with unmodified Android Open Source Project (AOSP) code, runnable on a variety of Android devices.”
Why are GSIs useful?
GSI pre-requisites
Flashing to a device which does not meet the requirements may result in the device becoming non-bootable (soft or hard bricked)
Device recommendations
How to obtain a GSI
Flashing a GSI (the non-DSU way)
This method will most likely erase any data on the user partition. Also, there is the possibility of soft or hard bricking the device if you are not careful
And now, for DSUs…
What is a Dynamic System Update (DSU)?
*It’s best to backup data first, or better, do this on a specifically assigned test device!
DSU prerequisites
DSU installation methods
DSU Loader
Pro: easier installation
Con: less choice of images
Command line (CLI)
Pro: ability to install wider range of images and to fix any issues more easily
Con: more faff, more opportunity to make mistakes
Prepare the device - Google Pixel�(other devices may vary)
DSU Loader - initiate installation
DSU Loader - installation complete
Once the installation is complete, hit the “Restart” button on the notification
DSU Loader - success (hopefully)
Install DSU from CLI - prepare image
Install DSU from CLI - installation
Install DSU from CLI - installation
Install DSU from CLI - installation complete
Hopefully successful!
Making the DSU guest image sticky
Disabling sticky mode
It is possible to disable sticky mode to make the main installation the default booted image.
Disaster recovery
Tips
Possible use-case #1: testing across platform versions on real hardware
Possible use case #2: running userdebug builds on real hardware
Possible use case #2: running userdebug builds on real hardware (continued)
Thank you!
Resources - overviews
https://developer.android.com/topic/generic-system-image
https://developer.android.com/topic/dsu
Resources - internals/how it works
https://source.android.com/docs/core/tests/vts/gsi
https://source.android.com/docs/core/ota/dynamic-system-updates
Bluesky: niallscott.bsky.social