Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +24 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.devicepolicy; import static android.Manifest.permission.MANAGE_CA_CERTIFICATES; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_COMPLEX; import static android.app.admin.DevicePolicyManager.WIPE_EXTERNAL_STORAGE; import static android.app.admin.DevicePolicyManager.WIPE_RESET_PROTECTION_DATA; import static android.content.pm.PackageManager.GET_UNINSTALLED_PACKAGES; Loading Loading @@ -2352,6 +2353,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final int N = policy.mAdminList.size(); for (int i=0; i<N; i++) { ActiveAdmin admin = policy.mAdminList.get(i); if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) { continue; } if (length < admin.minimumPasswordLetters) { length = admin.minimumPasswordLetters; } Loading Loading @@ -2397,6 +2401,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final int N = policy.mAdminList.size(); for (int i = 0; i < N; i++) { ActiveAdmin admin = policy.mAdminList.get(i); if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) { continue; } if (length < admin.minimumPasswordNumeric) { length = admin.minimumPasswordNumeric; } Loading Loading @@ -2442,6 +2449,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final int N = policy.mAdminList.size(); for (int i=0; i<N; i++) { ActiveAdmin admin = policy.mAdminList.get(i); if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) { continue; } if (length < admin.minimumPasswordSymbols) { length = admin.minimumPasswordSymbols; } Loading Loading @@ -2487,6 +2497,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final int N = policy.mAdminList.size(); for (int i=0; i<N; i++) { ActiveAdmin admin = policy.mAdminList.get(i); if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) { continue; } if (length < admin.minimumPasswordNonLetter) { length = admin.minimumPasswordNonLetter; } Loading Loading @@ -5627,4 +5640,15 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } } } /** * Returns true if specified admin is allowed to limit passwords and has a * {@code passwordQuality} of at least {@code minPasswordQuality} */ private static boolean isLimitPasswordAllowed(ActiveAdmin admin, int minPasswordQuality) { if (admin.passwordQuality < minPasswordQuality) { return false; } return admin.info.usesPolicy(DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD); } } Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +24 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.server.devicepolicy; import static android.Manifest.permission.MANAGE_CA_CERTIFICATES; import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_COMPLEX; import static android.app.admin.DevicePolicyManager.WIPE_EXTERNAL_STORAGE; import static android.app.admin.DevicePolicyManager.WIPE_RESET_PROTECTION_DATA; import static android.content.pm.PackageManager.GET_UNINSTALLED_PACKAGES; Loading Loading @@ -2352,6 +2353,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final int N = policy.mAdminList.size(); for (int i=0; i<N; i++) { ActiveAdmin admin = policy.mAdminList.get(i); if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) { continue; } if (length < admin.minimumPasswordLetters) { length = admin.minimumPasswordLetters; } Loading Loading @@ -2397,6 +2401,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final int N = policy.mAdminList.size(); for (int i = 0; i < N; i++) { ActiveAdmin admin = policy.mAdminList.get(i); if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) { continue; } if (length < admin.minimumPasswordNumeric) { length = admin.minimumPasswordNumeric; } Loading Loading @@ -2442,6 +2449,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final int N = policy.mAdminList.size(); for (int i=0; i<N; i++) { ActiveAdmin admin = policy.mAdminList.get(i); if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) { continue; } if (length < admin.minimumPasswordSymbols) { length = admin.minimumPasswordSymbols; } Loading Loading @@ -2487,6 +2497,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final int N = policy.mAdminList.size(); for (int i=0; i<N; i++) { ActiveAdmin admin = policy.mAdminList.get(i); if (!isLimitPasswordAllowed(admin, PASSWORD_QUALITY_COMPLEX)) { continue; } if (length < admin.minimumPasswordNonLetter) { length = admin.minimumPasswordNonLetter; } Loading Loading @@ -5627,4 +5640,15 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } } } /** * Returns true if specified admin is allowed to limit passwords and has a * {@code passwordQuality} of at least {@code minPasswordQuality} */ private static boolean isLimitPasswordAllowed(ActiveAdmin admin, int minPasswordQuality) { if (admin.passwordQuality < minPasswordQuality) { return false; } return admin.info.usesPolicy(DeviceAdminInfo.USES_POLICY_LIMIT_PASSWORD); } }