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
This commit is contained in:
Pawan Wagh
2024-05-04 00:14:20 +00:00
parent 4795662e6a
commit e4b9c69442
2 changed files with 19 additions and 0 deletions

View File

@@ -577,6 +577,15 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra
if (Utils.isMonkeyRunning()) { if (Utils.isMonkeyRunning()) {
return; 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); DevelopmentSettingsEnabler.setDevelopmentSettingsEnabled(getContext(), false);
final SystemPropPoker poker = SystemPropPoker.getInstance(); final SystemPropPoker poker = SystemPropPoker.getInstance();
poker.blockPokes(); poker.blockPokes();

View File

@@ -17,6 +17,7 @@
package com.android.settings.development; package com.android.settings.development;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
@@ -116,4 +117,13 @@ public class Enable16kUtils {
public static boolean isUsing16kbPages() { public static boolean isUsing16kbPages() {
return PAGE_SIZE == PAGE_SIZE_16KB; 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);
}
} }