Root Access

Root Access

Root access is privileged control over Android subsystems. Rooting is the process of obtaining root access. Root access is the elevated permission set used on Android devices.

Root toggle is not available for all Android images. Please refer to the table in the Root and Unroot a device section.

Root and Unroot a device

Our most recent Android images are not rooted by default, but they can be rooted dynamically. Android architecture variants include arm64 and x86/x86_64.

Android version | Initial state | Dynamic root toggle --- | --- | --- 16.0 | Unrooted | / 15.0 | Unrooted | / 14.0 | Unrooted | / 13.0 | Unrooted | / 12.1 | Unrooted | / 12.0 | Unrooted | / 11.0 | Unrooted | / 10.0 | Unrooted | / 9.0 | Rooted | 8.0 | Rooted | x86/x86_64 images are deprecated and will be removed after March 30, 2026. They follow the same pattern of initial state and dynamic root toggle as above.

Android version | Initial state | Dynamic root toggle --- | --- | --- 14.0 | Unrooted | / 13.0 | Rooted | / 12.1 | Rooted | / 12.0 | Rooted | / 11.0 | Rooted | / 10.0 | Rooted | / 9.0 | Rooted | / 8.1 | Rooted | / 8.0 | Rooted | / 7.0 | Rooted | / 6.0 | Rooted | / 5.1 | Rooted | / 5.0 | Rooted | /

gmsaas CLI is required to use this feature.

Rooting and unrooting the device is controlled via the device property persist.sys.root_access. This property can be changed only by command line, with adb, for the moment.

To toggle root: follow this tutorial to connect your instance to ADB with gmsaas. Run the following ADB command:

adb shell setprop persist.sys.root_access 3

Once the device is rooted, root access is available and can be granted to applications or obtained via the command line interfaces, as explained in the sections below.

To disable root, run the ADB command:

adb shell setprop persist.sys.root_access 0

Root access for applications

Root toggle is not available for all Android images. Please refer to the table in the Root and Unroot a device section.

Superuser is already installed on rooted Genymotion SaaS virtual devices: when an application requests root access, it prompts a pop-up asking whether root access should be authorized or denied. The default policy can be changed using the Superuser application.

Root access by command line (adb)

Connecting as a root user may damage your instance or jeopardize your data. USE AT YOUR OWN RISK!

Root toggle is not available for all Android images. Please refer to the table in the Root and Unroot a device section.

Run the command to log in to the instance console as the shell user and switch to root:

adb shell
su

Or, you can switch directly to the root user:

adb root

Switch to the root user:

adb shell
# now the prompt indicates root

Then use adb unroot to switch back to the standard user:

adb unroot

Root access for applications (continued)

Root access for applications is controlled by the device policy described above. Root access by command line (adb) enables immediate root user access when permitted.

How to sign your system app

Unrooted images are user build types, whereas rooted images are user debug build types. Unrooted images are signed with release keys. The keys in this public repository can be used to sign your system apps. Rooted images are signed with the default AOSP test keys.

Back to top