3

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
https://www.androidbeat.com/2016/03/how-to-enable-root-access-cyanogenmod-cm/

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

Cyanogen OS version
12.1-YOG4PAS2QL

Android version
5.1.1

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?

1

1 Answer 1

3

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>

https://github.com/CyanogenMod/android_packages_apps_Settings/blob/c585070fc70c88643ca6f568f8c4cab6d21144a8/res/values/cm_strings.xml#L31-L38

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

https://github.com/CyanogenMod/android_packages_apps_Settings/commit/9c512949b5cf487703a75abc7a56d0d98df59e32

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.

https://github.com/CyanogenMod/android_packages_apps_Settings/blob/55eb0ad11d3359dc17a846a789627eddb5a1322e/res/values/cm_strings.xml#L31-L38

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

https://github.com/CyanogenMod/android_packages_apps_Settings/commit/c39be56248000ac1c88909874b28a80f5370fb2a#diff-946ea451d6a9ad72c2548d8212f10a0aa8ccff901c6cbedd874673404c0ccbbaR422

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 :-(

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .