0% found this document useful (0 votes)
955 views

Dynamic System Updates (DSU) - Android Developers

This document provides information about Dynamic System Updates (DSU) in Android, including: - DSU allows downloading a new system image onto a device and booting it without risking the current system image. - It requires the Android Dynamic Partition feature and trusted signed images. - Instructions are provided for installing GSIs using DSU from the command line or DSU Loader UI in Android 11. - The user can boot the GSI, switch back to the original system, and provide feedback to improve DSU.

Uploaded by

Errol Hernanbez
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
955 views

Dynamic System Updates (DSU) - Android Developers

This document provides information about Dynamic System Updates (DSU) in Android, including: - DSU allows downloading a new system image onto a device and booting it without risking the current system image. - It requires the Android Dynamic Partition feature and trusted signed images. - Instructions are provided for installing GSIs using DSU from the command line or DSU Loader UI in Android 11. - The user can boot the GSI, switch back to the original system, and provide feedback to improve DSU.

Uploaded by

Errol Hernanbez
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Android Developers

Platform
Android Studio
Google Play
Jetpack
More
Search

Language
Language

Language
English
Bahasa Indonesia
Español – América Latina
Português – Brasil
中文 – 简体
日本語
한국어

Alvin Callistro
Alvin Callistro
Alvin Callistro
[email protected]
Manage your Google Account

Switch account
Sign out
Platform
Privacy Policy
Terms of Service
Overview
Releases
Multi-device
Technology
More

Filter

Android Developers

Platform
Overview
Releases

Multi-device

Wear
Technology

Large Screens
Machine Learning

Privacy

Android 5G
Android Studio
Google Play
Jetpack
Kotlin
Docs
Games

Platform Architecture
Generic System Image
Overview
Releases
Dynamic System Update
System Security
Guide for building secure government apps
Android for enterprise
Google Play Instant
Support library
Support Library Overview
Features
Packages
Setup
Revision History
Recent Revisions
Revision Archive
On this page
DSU requirements
Install GSIs using DSU and the command line
Enable the DSU feature flag
Launch DSU
Boot into the GSI
Switch back to the device's original system image
Install GSIs using DSU and the DSU Loader
Provide feedback

Android Developers

Platform

Technology

Was this helpful?

Dynamic System Updates (DSU)

On this page
DSU requirements
Install GSIs using DSU and the command line
Enable the DSU feature flag
Launch DSU
Boot into the GSI
Switch back to the device's original system image
Install GSIs using DSU and the DSU Loader
Provide feedback

Dynamic System Updates (DSU) is a system feature introduced in Android 10 that


does
the following:

Downloads a new GSI (or other Android system image) onto your device.
Creates a new dynamic partition.
Loads the downloaded GSI onto the new partition.
Boots the GSI as a guest OS on the device.

DSU also enables you to easily switch between the current system image and the
GSI so
you can try GSI without risking corruption of the current system image.

DSU requirements
DSU depends on the Android Dynamic Partition feature and requires the GSIs to
be signed
by Google or your OEMs as a trusted system image.

DSU is a feature provided by your device’s manufacturer. Refer to your device


manufacturer’s support page for availability. Google has enabled DSU on Pixel
3 and
newer devices since the Android 10 Beta 4 release.
Install GSIs using DSU and the command line
This section describes how to install a GSI using DSU and the command line.

Enable the DSU feature flag

Before using DSU, ensure the corresponding feature flag is enabled. You can
enable the
flag using one of the following methods:

On a device with a userdebug Android build:


You can enable the feature in Settings >
System > Developer options > Feature
flags > settings_dynamic_system.

On other devices: Use the following adb command:

adb shell setprop persist.sys.fflag.override.settings_dynamic_system true

Launch DSU

After the feature is enabled, launch DSU using the adb tool.

1. Download a GSI from the GSI release page


or another GSI image server.

Note: If you build your own GSI from source, or if you download a GSI from
another
image server, your GSI might not be unsparsed. Use the following
command inside your
build tree to convert the image to an unsparsed
image: simg2img system.img
system_raw.img

2. gzip the GSI.

gzip -c system_raw.img > system_raw.gz

3. Push the GSI to the device.

adb push system_raw.gz /storage/emulated/0/Download/

4. Launch DSU using adb.

adb shell am start-activity \

-n com.android.dynsystem/com.android.dynsystem.VerificationActivity \

-a android.os.image.action.START_INSTALL \

-d file:///storage/emulated/0/Download/system_raw.gz \

--el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \

--el KEY_USERDATA_SIZE 8589934592

A notification like this one shows the status of the installation.


Boot into the GSI

Figure 1. A persistent notification that you can use to control DSU.

After DSU installs the GSI, a DSU menu appears as a persistent notification
inside the
system notification drawer (see figure 1).

At this point, you can do one of the following:

Boot into the GSI by tapping Restart.


Clean up the GSI by tapping Discard.

Switch back to the device's original system image


After you are done testing your app using the GSI, you can perform a cold reboot
to boot
the system back into its original system image.

When setting the next reboot to use a GSI, you can have the GSI stay installed
through
multiple boot cycles (until discarded) by enabling sticky mode, or have
it used for only
one boot cycle by disabling sticky mode.

The following command enables sticky mode:

adb shell gsi_tool enable

The following commands disable sticky mode:

adb shell gsi_tool disable

adb shell gsi_tool enable -s

adb shell gsi_tool disable

Install GSIs using DSU and the DSU Loader


Android 11 introduced the DSU Loader, a tool available in the device's developer
options
that lets you download, install, and manage GSIs entirely through the
system's UI.

To install a GSI using the DSU Loader, follow these steps on a device running
Android 11
or higher:

1. Enable developer options on your device.


2. Open your device's Settings app, then tap Developer options > DSU Loader.

3. Choose the GSI that you want to install on your device.


4. Agree to the GSI terms and conditions.

After you agree to the terms and conditions, the GSI that you selected starts
downloading.
You can check the status of the download through the DSU
notification.

5. After the download has finished, tap Restart to boot the GSI.
6. When you want to switch back to your device's original system image, tap
Restart from
the DSU system notification.

Provide feedback
Your feedback helps us improve DSU and other GSI features. Share your thoughts
and
report GSI issues by filing GSI
bugs,
discussing topics on Stack Overflow,
and contributing
to the GSI page on Reddit.

Was this helpful?

Content and code samples on this page are subject to the licenses described in the
Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle
and/or its affiliates.

Last updated 2021-08-30 UTC.


Twitter
Follow @AndroidDev on Twitter


YouTube
Check out Android Developers on YouTube


LinkedIn
Connect with the Android Developers community on LinkedIn

More Android

Android
Android for Enterprise
Security
Source
News
Blog
Podcasts

Discover

Gaming
Machine Learning
Privacy
5G

Android Devices

Large screens
Wear OS
Android TV
Android for cars
Android Things
Chrome OS devices

Releases

Android 11
Android 10
Pie
Oreo
Nougat
Marshmallow
Lollipop
KitKat

Documentation and Downloads

Android Studio guide


Developers guides
API reference
Download Studio
Android NDK

Support

Report platform bug


Report documentation bug
Google Play support
Join research studies

Android
Chrome
Firebase
Google Cloud Platform
All products

Privacy
License
Brand guidelines
Get news and tips by email
Subscribe
Language
Language

Language
English
Bahasa Indonesia
Español – América Latina
Português – Brasil
中文 – 简体
日本語
한국어

You might also like