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
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 35b011a..4038f4d 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -577,6 +577,15 @@
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();
diff --git a/src/com/android/settings/development/Enable16kUtils.java b/src/com/android/settings/development/Enable16kUtils.java
index 7b6ab68..00b7ee9 100644
--- a/src/com/android/settings/development/Enable16kUtils.java
+++ b/src/com/android/settings/development/Enable16kUtils.java
@@ -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 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);
+ }
}