Skip to content

Commit 3d2bce4

Browse files
author
Rubin Xu
committed
Add toggle for Common Criteria mode
Bug: 151226692 Test: builds Change-Id: I56a04e8052ac85a5ec16bc3c821f598c2fd1caa3
1 parent 3f33bd2 commit 3d2bce4

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

app/src/main/java/com/afwsamples/testdpc/policy/PolicyManagementFragment.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,7 @@ public class PolicyManagementFragment extends BaseSearchablePolicyPreferenceFrag
400400
private static final String SET_LOCATION_MODE_KEY = "set_location_mode";
401401
private static final String SUSPEND_PERSONAL_APPS_KEY = "suspend_personal_apps";
402402
private static final String PROFILE_MAX_TIME_OFF_KEY = "profile_max_time_off";
403+
private static final String COMMON_CRITERIA_MODE_KEY = "common_criteria_mode";
403404

404405
private static final String BATTERY_PLUGGED_ANY = Integer.toString(
405406
BatteryManager.BATTERY_PLUGGED_AC |
@@ -458,6 +459,7 @@ public class PolicyManagementFragment extends BaseSearchablePolicyPreferenceFrag
458459
private DpcSwitchPreference mInstallNonMarketAppsPreference;
459460

460461
private DpcSwitchPreference mEnableBackupServicePreference;
462+
private DpcSwitchPreference mCommonCriteriaModePreference;
461463
private SwitchPreference mEnableSecurityLoggingPreference;
462464
private SwitchPreference mEnableNetworkLoggingPreference;
463465
private DpcSwitchPreference mSetAutoTimeRequiredPreference;
@@ -608,6 +610,8 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
608610
ENABLE_BACKUP_SERVICE);
609611
mEnableBackupServicePreference.setOnPreferenceChangeListener(this);
610612
mEnableBackupServicePreference.setCustomConstraint(this::validateDeviceOwnerBeforeQ);
613+
mCommonCriteriaModePreference = (DpcSwitchPreference) findPreference(
614+
COMMON_CRITERIA_MODE_KEY);
611615
findPreference(REQUEST_BUGREPORT_KEY).setOnPreferenceClickListener(this);
612616
mEnableSecurityLoggingPreference =
613617
(SwitchPreference) findPreference(ENABLE_SECURITY_LOGGING);
@@ -1431,6 +1435,9 @@ public boolean onPreferenceChange(Preference preference, Object newValue) {
14311435
setBackupServiceEnabled((Boolean) newValue);
14321436
reloadEnableBackupServiceUi();
14331437
return true;
1438+
case COMMON_CRITERIA_MODE_KEY:
1439+
setCommonCriteriaModeEnabled((Boolean) newValue);
1440+
reloadCommonCriteriaModeUi();
14341441
case ENABLE_SECURITY_LOGGING:
14351442
setSecurityLoggingEnabled((Boolean) newValue);
14361443
reloadEnableSecurityLoggingUi();
@@ -1588,6 +1595,18 @@ private void setBackupServiceEnabled(boolean enabled) {
15881595
mDevicePolicyManager.setBackupServiceEnabled(mAdminComponentName, enabled);
15891596
}
15901597

1598+
//@TargetApi(VERSION_CODES.R)
1599+
private void setCommonCriteriaModeEnabled(boolean enabled) {
1600+
try {
1601+
ReflectionUtil.invoke(mDevicePolicyManager,
1602+
"setCommonCriteriaModeEnabled",
1603+
new Class<?>[]{ComponentName.class, boolean.class},
1604+
mAdminComponentName, enabled);
1605+
} catch (ReflectionIsTemporaryException e) {
1606+
Log.e(TAG, "Error invoking setCommonCriteriaModeEnabled", e);
1607+
}
1608+
}
1609+
15911610
@TargetApi(VERSION_CODES.M)
15921611
private void setKeyGuardDisabled(boolean disabled) {
15931612
if (!mDevicePolicyManager.setKeyguardDisabled(mAdminComponentName, disabled)) {
@@ -2549,7 +2568,22 @@ private void reloadEnableSecurityLoggingUi() {
25492568
private void reloadEnableBackupServiceUi() {
25502569
if (mEnableBackupServicePreference.isEnabled()) {
25512570
mEnableBackupServicePreference.setChecked(mDevicePolicyManager.isBackupServiceEnabled(
2571+
mAdminComponentName));
2572+
}
2573+
}
2574+
2575+
//@TargetApi(VERSION_CODES.R)
2576+
private void reloadCommonCriteriaModeUi() {
2577+
if (mCommonCriteriaModePreference.isEnabled()) {
2578+
try {
2579+
mCommonCriteriaModePreference.setChecked(
2580+
(Boolean) ReflectionUtil.invoke(mDevicePolicyManager,
2581+
"isCommonCriteriaModeEnabled",
2582+
new Class<?>[]{ComponentName.class},
25522583
mAdminComponentName));
2584+
} catch (ReflectionIsTemporaryException e) {
2585+
Log.e(TAG, "Error invoking isCommonCriteriaModeEnabled", e);
2586+
}
25532587
}
25542588
}
25552589

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,8 @@
622622
<!-- Backup and Restore for Device Owner -->
623623
<string name="enable_backup_service">Enable backup service</string>
624624

625+
<string name="common_criteria_mode">Enable Common Criteria mode</string>
626+
625627
<!-- Suspension of personal apps -->
626628
<string name="suspend_personal_apps">Suspend personal apps</string>
627629

app/src/main/res/xml/device_policy_header.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -723,6 +723,11 @@
723723
android:key="enable_backup_service"
724724
android:title="@string/enable_backup_service"
725725
testdpc:minSdkVersion="O" />
726+
<com.afwsamples.testdpc.common.preference.DpcSwitchPreference
727+
android:key="common_criteria_mode"
728+
android:title="@string/common_criteria_mode"
729+
testdpc:admin="deviceOwner|orgOwnedProfileOwner"
730+
testdpc:minSdkVersion="R" />
726731
<com.afwsamples.testdpc.common.preference.DpcPreference
727732
android:key="wipe_data"
728733
android:title="@string/wipe_data"

0 commit comments

Comments
 (0)