I see many references online that describe this Root access option in the Developer options for cyanogenmod images like this screenshot from a CyanogenMod13 device

How to enable root access in CyanogenMod 13; Posted by Rajesh Pandey on Mar 12, 2016

However I'm tinkering with this older device which may have predated that feature.

Cyanogen OS version

Android version

A related question that could help find the answer is to figure out what would be the appropriate repo in the cyanogen github (https://github.com/CyanogenMod ) to search for the UI that renders this set of options to check when it was first introduced? Basically which repo does the Android GUI go by?


Found a direct UI hit at least with some resource strings in the last/mainline branch that checks out from the repo by default which is cm-14.1. It started by finding a repository that happened to have the words settings and app in its name was a very strong clue to start with. In the screenshot above you can see that the UI reads Root access and that is what we find verbatim in this resource file.

    <!-- Setting checkbox title for root access -->
    <string name="root_access">Root access</string>
    <string name="root_access_warning_title">Allow root access?</string>
    <string name="root_access_warning_message">Allowing apps to request root access is very dangerous and could compromise the security of your system!</string>
    <string name="root_access_none">Disabled</string>
    <string name="root_access_apps">Apps only</string>
    <string name="root_access_adb">ADB only</string>
    <string name="root_access_all">Apps and ADB</string>


Running a blame on that block of text lead to this diff


Going back to the branch that is installed on the device, or at least the closest stable matching variant, I do in fact find that root access resource string being present. I'm hoping there's something interfering that I can twiddle to bring that option to the forefront again because it's not showing up.


Doing a blame on that version leads to this commit...

Snooping around further in that diff, it looks like I may be out of luck, or apparently at the time it was decided that user builds do not get this feature, but engineering builds do.

    private boolean removeRootOptionsIfRequired() {
        // user builds don't get root, and eng always gets root


The logic is all predicated on the build of the OS

https://developer.android.com/reference/android/os/Build#IS_DEBUGGABLE https://developer.android.com/reference/android/os/Build#TYPE

Might be completely out of luck here because that is not something that can be changed at runtime as far as I can tell. This is a compile-time/build-time baked in attribute :-(

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.