Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4b9c694 authored by Pawan Wagh's avatar Pawan Wagh
Browse files

Disallow turning off developer options in page-agnostic mode

When device is in page-agnostic mode, it would be OEM unlocked and
filesystem will be different than production. Don't allow to turn
off developer options in that state.

Bug: 329657279
Bug: 295035851
Test: m Settings && adb install -r $ANDROID_PRODUCT_OUT/system_ext/priv-app/Settings/Settings.apk
Change-Id: I9b8a9dbaf8192bb3758c53501450eb45e2fe8d9c
parent 4795662e
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -577,6 +577,15 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
        if (Utils.isMonkeyRunning()) {
            return;
        }

        // Disabling developer options in page-agnostic mode isn't supported as device isn't in
        // production state
        if (Enable16kUtils.isPageAgnosticModeOn(getContext())) {
            Enable16kUtils.showPageAgnosticWarning(getContext());
            onDisableDevelopmentOptionsRejected();
            return;
        }

        DevelopmentSettingsEnabler.setDevelopmentSettingsEnabled(getContext(), false);
        final SystemPropPoker poker = SystemPropPoker.getInstance();
        poker.blockPokes();
+10 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.development;

import android.content.Context;
import android.content.Intent;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
@@ -116,4 +117,13 @@ public class Enable16kUtils {
    public static boolean isUsing16kbPages() {
        return PAGE_SIZE == PAGE_SIZE_16KB;
    }

    /**
     * show page-agnostic mode warning dialog to user
     * @param context to start activity
     */
    public static void showPageAgnosticWarning(@NonNull Context context) {
        Intent intent = new Intent(context, PageAgnosticWarningActivity.class);
        context.startActivityAsUser(intent, UserHandle.SYSTEM);
    }
}