A security vulnerability was discovered by Android security. b/292548775 Within a short period of time after the device reboot, the user could enter the settings page and factory reset the device. Android Enterprise suggests to add DISALLOW_FACTORY_RESET user restriction to the device. However, DISALLOW_FACTORY_RESET will be enabled on all Android users, including both the admin user and the demo user. The existing behavior in Android settings is that once the user restriction is set, factory reset button will be greyed out, which makes the factory reset functionality in demo user go away. In demo user, the factory reset command will be forwarded to the current active device owner. So in this change, we separate the button for admin user and the button for demo user. In demo user, the button is still visible when the restriction is set. And in admin user, the button will be greyed out as expected. Once this change is in, then Pixel Retail Demo could set the user restriction properly and rely on its internal logic to do factory reset. If other applications are trying to do the factory reset, it will be denied by OS. BUG: 292548775 Change-Id: I9d2d47bb29bc2c1e05058b246908768cd2f95990
70 lines
3.0 KiB
XML
70 lines
3.0 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
Copyright (C) 2017 The Android Open Source Project
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<PreferenceScreen
|
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
xmlns:settings="http://schemas.android.com/apk/res-auto"
|
|
android:title="@string/reset_dashboard_title">
|
|
|
|
<!-- Mobile Network reset -->
|
|
<com.android.settingslib.RestrictedPreference
|
|
android:key="network_reset_mobile_network_settings_pref"
|
|
android:title="@string/reset_mobile_network_settings_title"
|
|
settings:userRestriction="no_network_reset"
|
|
settings:useAdminDisabledSummary="true"
|
|
settings:isPreferenceVisible="@bool/config_show_sim_info"
|
|
android:fragment="com.android.settings.ResetNetwork" />
|
|
|
|
<!-- Bluetooth and WiFi reset -->
|
|
<com.android.settingslib.RestrictedPreference
|
|
android:key="network_reset_bluetooth_wifi_pref"
|
|
android:title="@string/reset_bluetooth_wifi_title"
|
|
settings:userRestriction="no_network_reset"
|
|
settings:useAdminDisabledSummary="true"
|
|
settings:controller="com.android.settings.network.BluetoothWiFiResetPreferenceController" />
|
|
|
|
<!-- Reset app preferences -->
|
|
<com.android.settingslib.RestrictedPreference
|
|
android:key="reset_app_prefs"
|
|
android:title="@string/reset_app_preferences"
|
|
settings:userRestriction="no_control_apps" />
|
|
|
|
<!-- Erase Euicc data -->
|
|
<Preference
|
|
android:key="erase_euicc_data"
|
|
android:title="@string/reset_esim_title"
|
|
settings:isPreferenceVisible="@bool/config_show_sim_info"
|
|
settings:controller="com.android.settings.network.EraseEuiccDataController" />
|
|
|
|
<!-- Factory reset -->
|
|
<com.android.settingslib.RestrictedPreference
|
|
android:key="factory_reset"
|
|
android:title="@string/main_clear_title"
|
|
settings:keywords="@string/keywords_factory_data_reset"
|
|
settings:userRestriction="no_factory_reset"
|
|
settings:useAdminDisabledSummary="true"
|
|
settings:controller="com.android.settings.system.FactoryResetPreferenceController"
|
|
android:fragment="com.android.settings.MainClear" />
|
|
|
|
<Preference
|
|
android:key="factory_reset_demo_user"
|
|
android:title="@string/main_clear_title"
|
|
settings:keywords="@string/keywords_factory_data_reset"
|
|
settings:controller="com.android.settings.system.FactoryResetDemoUserPreferenceController"
|
|
android:fragment="com.android.settings.MainClear" />
|
|
</PreferenceScreen>
|