Overview
The Android Security Policy lets administrators manage device security, application permissions, privacy controls, lock-screen features, and advanced Android protections from Swif.
Common use cases include:
Preventing users from changing managed credentials
Disabling developer options and USB debugging
Enforcing Google Play Protect verification
Blocking applications from unknown sources
Controlling runtime permissions
Preventing screenshots and screen recordings
Restricting lock-screen notifications, cameras, and biometrics
Enforcing supported hardware protections such as Memory Tagging Extension
Controlling whether personal applications can read work-profile notifications
Important: Some settings apply only to company-owned, fully managed, or dedicated devices. Unsupported settings may be ignored or reported as noncompliant.
Requirements
Requirement | Details |
Supported platform | Android |
Minimum operating system | Android 9 or later |
Ownership types | Company-owned and BYOD |
Enrollment | Device must be enrolled and managed by Swif |
Internet access | Device must be able to reach Android and Swif management services |
Individual settings may have additional operating-system, hardware, or management-mode requirements.
Before You Begin
Before deploying the policy:
Confirm that the target devices are enrolled and online.
Identify whether each device is fully managed, dedicated, or personally owned with a work profile.
Review applications that require camera, microphone, location, storage, contacts, or other runtime permissions.
Confirm whether users require developer options for application development or testing.
Test lock-screen and biometric restrictions on representative device models.
Start with a small pilot group before broad deployment.
Maintain an administrator recovery and exception process.
Security-policy behavior can vary by Android version, device manufacturer, enrollment mode, and hardware capability.
Create the Policy
In the Swif Admin Dashboard, go to Device Management > Policies.
Create a new policy.
Select Android Security Policy.
Enter a descriptive policy name.
Configure the required settings.
Assign the policy to a test device or small test group.
Allow the device to sync.
Verify the result before expanding deployment.
Recommended Configuration
The following baseline is suitable for most company-owned business devices:
Setting | Recommended value |
Disable Credentials Configuration | Enabled |
Allow Debugging Features | Disabled |
Default Permission Policy |
|
Encryption Policy |
|
Ensure Verify Apps Enabled | Enabled |
Private Key Selection Enabled | Disabled |
Disable Screen Capture | Based on data sensitivity |
Disable Location Sharing | Based on business requirements |
Disable Keyguard | Disabled |
Developer Settings |
|
Google Play Protect Verify Apps |
|
Untrusted Apps Policy |
|
Common Criteria Mode | Unspecified or disabled |
MTE Policy |
|
Content Protection Policy |
|
Note: Use Developer Settings and Google Play Protect Verify Apps under Advanced Security Overrides as the primary controls. They replace the older Allow Debugging Features and Ensure Verify Apps Enabled settings.
For personally owned devices, review each restriction carefully and limit enforcement to controls required to protect work data.
Policy Settings
Disable Credentials Configuration
Prevents users from configuring credentials such as certificate authority certificates in the managed credential store.
When enabled, users cannot install or remove affected credentials through device settings.
Recommended value:
Company-owned devices: Enabled
BYOD devices: Enable only when required to protect the work profile
Before enabling this setting, deploy all required Wi-Fi, VPN, authentication, and application certificates through Swif.
Allow Debugging Features
Controls whether users can enable developer and debugging features, including USB debugging.
Value | Behavior |
Enabled | Users can access and enable debugging features. |
Disabled | Debugging features are not allowed. |
This is a legacy Android policy field. Use Advanced Security Overrides > Developer Settings for current deployments.
If developer access is required, assign a separate policy to authorized developers instead of enabling it for the entire organization.
Default Permission Policy
Determines the default response to runtime permission requests.
Value | Behavior |
| Asks the user whether to grant the permission. |
| Automatically grants supported permissions. |
| Automatically denies supported permissions. |
Recommended value: PROMPT
Using GRANT globally can give applications unnecessary access. Using DENY globally can prevent required applications from functioning.
On Android 12 or later, some sensitive permissions can be automatically granted only on fully managed devices. These include camera, microphone, location, activity-recognition, body-sensor, and certain SMS permissions. See Google’s Android Management API permission policy documentation.
Encryption Policy
Controls whether device encryption is required.
Value | Behavior |
| Does not add an encryption requirement. |
| Requires encryption without requiring a password at boot. |
| Requires encryption with password-protected startup. |
Recommended value for company-owned devices: ENABLED_WITH_PASSWORD
Modern Android devices commonly use file-based encryption by default, but selecting an encryption policy communicates the management requirement and allows unsupported or noncompliant devices to be identified.
Test this setting on the organization’s supported device models. Available encryption behavior can depend on the operating system and hardware.
Ensure Verify Apps Enabled
Force-enables application verification so users cannot disable it.
This setting is deprecated in the Android Management API. Use Advanced Security Overrides > Google Play Protect Verify Apps instead.
For new policies, configure:
VERIFY_APPS_ENFORCED
Google documents the replacement under Advanced Security Overrides.
Private Key Selection Enabled
Controls whether Android can display an interface that lets the user choose a private-key alias.
This setting does not take effect when certificate selection is delegated to the Swif agent. Because Swif uses delegated certificate selection on managed devices, changing this setting normally has no effect.
Recommended value: Disabled
Disable Screen Capture
Prevents screen capture on the affected management scope.
When enabled, users may be prevented from:
Taking screenshots
Recording the screen
Using Circle to Search
Sharing the screen through features that rely on Android screen capture
On work-profile devices, the effective scope depends on the enrollment and device ownership mode.
Enable this setting when managed applications display sensitive information. Test screen sharing, remote support, accessibility, conferencing, and authentication workflows before broad deployment.
Disable Location Sharing
Prevents location sharing on the device or managed scope.
Enable this setting when location sharing is prohibited by organizational security or privacy requirements.
Before enabling it, test applications that rely on location, including:
Mapping and navigation
Delivery or field-service applications
Time and attendance applications
Location-based authentication
Emergency and safety applications
This setting controls location sharing. Runtime location access should also be managed through application permissions.
Permission Grants
Permission Grants explicitly set the behavior for individual Android permissions or permission groups.
Each entry contains:
Permission
Policy
These entries override the policy’s Default Permission Policy.
Important: Permission Grants in the Android Security Policy are policy-level rules. They apply to the selected permission across managed applications. They do not target one specific application because this policy does not contain a package-name field.
For app-specific permission rules, configure permissions through the applicable Android application policy.
Permission
Enter an Android permission or permission group.
Common values include:
Permission | Purpose |
| Camera access |
| Microphone access |
| Precise location |
| Approximate location |
| Read contacts |
| Modify contacts |
| Read calendar |
| Modify calendar |
| Read SMS messages |
| Send SMS messages |
| Read phone state |
| Place phone calls |
| Read legacy external storage |
| Write legacy external storage |
Android storage permissions have changed across Android releases. Applications targeting newer Android versions may use scoped storage or newer media permissions instead of READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE.
Use the exact Android permission name declared by the application.
Policy
Value | Behavior |
| Prompts the user to approve the permission. |
| Automatically grants the permission when supported. |
| Automatically denies the permission. |
Avoid automatically granting sensitive permissions across all managed applications unless every affected application requires the access.
Example: To prevent managed applications from accessing the camera by default, add:
Setting | Value |
Permission |
|
Policy |
|
Explicit permission entries take precedence over Default Permission Policy. Google documents this order in its Permission Grant reference.
Lock-Screen Settings
Disable Keyguard
Disables the Android lock screen.
This setting is supported only in dedicated-device management mode, such as a purpose-built kiosk.
Recommended value for normal user devices: Disabled
Warning: Do not enable this setting on ordinary employee devices. Disabling the lock screen can remove an important layer of protection against unauthorized physical access.
Keyguard Disabled Features
Disables selected features on a secure lock screen.
Value | Effect |
| Disables access to the camera from the secure lock screen. |
| Hides all notifications on the secure lock screen. |
| Prevents full notification content from appearing. |
| Prevents trust agents, such as Smart Lock, from bypassing normal authentication. |
| Disables fingerprint authentication on the secure lock screen. |
| Disables lock-screen notification replies on Android 6 and earlier; it has no effect on Android 7 or later. |
| Disables face authentication on the secure lock screen. |
| Disables iris authentication on the secure lock screen. |
| Disables all biometric authentication on the secure lock screen. |
| Disables lock-screen shortcuts on Android 14 or later. |
| Disables all current and future keyguard customizations. |
Recommended configuration for devices containing sensitive data:
UNREDACTED_NOTIFICATIONSTRUST_AGENTS
Select BIOMETRICS only when organizational requirements prohibit biometric authentication. Otherwise, disabling biometrics may reduce usability and cause users to enter their passcodes more frequently.
Use ALL_FEATURES cautiously because it can automatically affect keyguard features introduced in future Android releases. See Google’s Keyguard Disabled Feature reference.
Advanced Security Overrides
Advanced Security Overrides provide newer and more granular Android security controls.
Google notes that these settings are not required in every deployment. Configure them only when they support a documented organizational requirement.
Common Criteria Mode
Controls Android Common Criteria Mode.
Value | Behavior |
| Uses the platform default, which is disabled. |
| Disables Common Criteria Mode. |
| Enables Common Criteria Mode. |
Common Criteria Mode is supported only on company-owned devices running Android 11 or later.
It enables stricter security behavior involving cryptography, network certificate validation, policy integrity, and protected configuration storage.
Warning: Enable Common Criteria Mode only when specifically required. It can affect normal device use. Disabling it after it was enabled can remove user-configured Wi-Fi networks and require some enterprise Wi-Fi networks to be configured again.
Developer Settings
Controls access to developer options and safe boot.
Value | Behavior |
| Uses the default behavior, which disables developer settings. |
| Disables developer settings and prevents user access. |
| Allows users to access and configure developer settings. |
Recommended value: DEVELOPER_SETTINGS_DISABLED
This setting replaces the legacy Allow Debugging Features control.
On a personally owned device with a work profile, this policy cannot disable safe boot. Android can report a management-mode noncompliance result for that portion of the setting.
Google Play Protect Verify Apps
Controls whether Google Play Protect application verification is enforced.
Value | Behavior |
| Uses the default, which enforces verification. |
| Force-enables application verification. |
| Allows the user to choose whether verification is enabled. |
Recommended value: VERIFY_APPS_ENFORCED
This setting replaces Ensure Verify Apps Enabled.
Play Protect helps detect potentially harmful applications, but it does not replace managed application allowlisting, endpoint security, or application-risk review.
Untrusted Apps Policy
Controls installation of applications from unknown or untrusted sources.
Value | Behavior |
| Uses the default behavior, which disallows installation. |
| Disallows untrusted application installation across the device. |
| Allows installation only in the personal profile on devices with work profiles. |
| Allows untrusted application installation across the device. |
Recommended values:
Company-owned devices:
DISALLOW_INSTALLBYOD with a work profile:
DISALLOW_INSTALL, orALLOW_INSTALL_IN_PERSONAL_PROFILE_ONLYif permitted by the organization’s BYOD policy
Avoid ALLOW_INSTALL_DEVICE_WIDE unless there is a documented requirement and additional application-security controls are in place.
MTE Policy
Controls Memory Tagging Extension, a hardware-assisted protection that can help detect certain memory-safety errors.
Value | Behavior |
| Defaults to user choice. |
| Allows the user to enable or disable MTE when supported. |
| Enables MTE and prevents the user from disabling it. |
| Disables MTE and prevents the user from enabling it. |
Although the policy field may be presented for earlier releases, enforced MTE management requires:
Android 14 or later
MTE-compatible hardware
A supported management mode
MTE_ENFORCED is supported on fully managed devices and company-owned devices with a work profile. MTE_DISABLED applies only to fully managed devices.
A restart is required after changing the MTE policy. On unsupported hardware or management modes, Android reports the applicable noncompliance result.
Recommended value:
MTE_ENFORCEDon tested, compatible company-owned devicesMTE_POLICY_UNSPECIFIEDon devices whose compatibility has not been confirmed
See Google’s MTE policy documentation.
Content Protection Policy
Controls Android content protection, which scans for deceptive applications.
Value | Behavior |
| Uses the platform default. |
| Disables content protection and prevents user changes. |
| Enables content protection and prevents user changes. |
Content protection is supported on Android 15 or later.
Recommended value on supported devices:
CONTENT_PROTECTION_ENFORCED
Devices running an earlier Android version may report an API-level noncompliance result.
Personal Apps That Can Read Work Notifications
Specifies personal-profile applications that can read notifications generated by the work profile.
Enter each application’s Android package name, for example:
com.example.notificationapp
By default, personal applications other than eligible system applications cannot read work notifications.
Leave this list empty unless a specific, reviewed application requires cross-profile notification access.
Security warning: Work notifications can contain names, message previews, document information, authentication prompts, and other sensitive data. Allowing a personal application to read them creates a cross-profile data-sharing path.
Company-Owned and BYOD Considerations
Company-Owned Devices
For company-owned Android devices:
Disable developer settings.
Enforce Google Play Protect.
Disallow untrusted application installation.
Require encryption.
Prevent unmanaged credential changes.
Restrict sensitive lock-screen notification content.
Use global permission grants sparingly.
Evaluate MTE and content protection on compatible devices.
Test Common Criteria Mode only when specifically required.
Use a separate policy for dedicated or kiosk devices.
Personally Owned Devices
For BYOD devices with a work profile:
Limit restrictions to the work profile wherever possible.
Do not assume that a work-profile policy controls the entire personal side of the device.
Avoid globally granting sensitive permissions.
Leave personal notification access empty by default.
Clearly disclose screen-capture and location restrictions.
Confirm whether developer-setting restrictions are fully supported.
Test policy removal and work-profile unenrollment.
Provide users with a documented support and exception process.
Verify the Policy
After assigning the policy:
Confirm that the device is online in Swif.
Confirm that the policy reports as installed.
Open Android settings and verify that the expected controls are restricted.
Confirm that developer options and USB debugging cannot be enabled.
Verify that Google Play Protect remains active.
Test installation from an unknown source.
Test required applications and their runtime permissions.
Test screenshots and screen recording if they are restricted.
Lock the device and verify notification, camera, and biometric behavior.
Restart the device and confirm that the settings remain enforced.
For MTE changes, restart the device and review its compliance state.
Confirm that required Wi-Fi, VPN, and certificate-based services continue to work.
Test both the work and personal profiles when using a work-profile enrollment.
Troubleshooting
The Policy Reports Installed but a Setting Has No Effect
Check the following:
Android version
Device ownership
Enrollment and management mode
Hardware support
Swif device connectivity
Whether another policy configures the same setting
Whether the setting applies only to the work profile
Device compliance or policy error details
A policy can be delivered successfully even when one field is unsupported for that device or management mode.
Developer Options Are Still Available
Configure Advanced Security Overrides > Developer Settings as
DEVELOPER_SETTINGS_DISABLED.Do not rely only on the legacy Allow Debugging Features switch.
Allow the device to sync.
Restart the device if necessary.
Confirm whether the device is personally owned with a work profile.
Review the device for a management-mode noncompliance result.
On personally owned work-profile devices, safe boot cannot be disabled through this setting.
Google Play Protect Can Still Be Changed
Set Google Play Protect Verify Apps to
VERIFY_APPS_ENFORCED.Do not rely only on Ensure Verify Apps Enabled.
Confirm that the device has received the latest policy.
Verify that Android Device Policy and Google Play services are current.
Restart the device and check again.
An Application Cannot Access a Required Permission
Review Default Permission Policy.
Check Permission Grants for an explicit
DENY.Confirm whether the application has its own permission policy.
Verify that the permission name is correct.
Confirm that the permission still exists on the application’s target Android version.
Check whether the permission can be automatically granted in the current management mode.
Policy-level Permission Grants override the default. An app-specific permission rule can provide an additional, more specific override.
A Permission Was Granted to More Applications Than Expected
Permission Grants in this policy do not contain an application package name. Therefore, an explicit grant can affect the selected permission across managed applications.
Remove the global grant and configure the permission through the applicable application-specific policy.
Screenshots Are Still Available
Confirm that Disable Screen Capture is enabled.
Verify whether the test is occurring in the work or personal profile.
Confirm the device’s ownership and enrollment mode.
Test inside a managed application.
Allow the device to sync and restart it.
Review the policy status for unsupported-setting errors.
Private Key Selection Does Not Change
This is expected when certificate selection is delegated to the Swif agent. The Private Key Selection Enabled setting has no effect while the delegation is active.
Disable Keyguard Has No Effect
Disable Keyguard is supported only in dedicated-device management mode.
For ordinary user devices, keep the lock screen enabled and configure individual Keyguard Disabled Features instead.
MTE Is Not Enforced
Confirm that:
The device runs Android 14 or later.
The hardware supports MTE.
The device is fully managed or company-owned with a work profile.
The device was restarted after the policy changed.
The device does not report an API-level, hardware-incompatibility, management-mode, or pending-restart result.
Not every Android 14 or later device includes MTE-compatible hardware.
Content Protection Is Not Enforced
Confirm that the device runs Android 15 or later. Earlier versions do not support this policy and may report an API-level noncompliance result.
Common Criteria Mode Causes Network Problems
Common Criteria Mode applies stricter security and certificate behavior.
If connectivity is affected:
Verify Wi-Fi certificate chains.
Confirm server-name validation.
Confirm TLS compatibility.
Review enterprise Wi-Fi profiles.
Test with the organization’s production authentication infrastructure.
Avoid disabling Common Criteria Mode without planning for possible Wi-Fi reconfiguration.
Disabling Common Criteria Mode after it was enabled can remove user-configured Wi-Fi networks.
A Personal Application Cannot Read Work Notifications
Confirm that the device uses a work profile.
Enter the exact Android package name.
Confirm that the application uses Android’s notification-listener service.
Allow the policy to sync.
Review the application’s notification access.
Confirm that the application is not blocked by another policy.
Only allow this access after reviewing the application’s security and data-handling practices.
Security and Compliance Impact
The Android Security Policy can support organizational controls for:
Device encryption
Application verification
Untrusted software prevention
Runtime permission management
Credential protection
Screen-capture restrictions
Lock-screen privacy
Developer-feature restrictions
Work and personal profile separation
Hardware-assisted memory protection
For a secure deployment:
Apply least privilege to application permissions.
Avoid global automatic grants for sensitive permissions.
Disable developer settings on production devices.
Enforce Google Play Protect.
Block untrusted application installation.
Protect lock-screen notification content.
Test advanced settings before organization-wide deployment.
Monitor device noncompliance results.
Review exceptions regularly.
Combine the policy with application, password, update, network, and compliance policies.
This policy supports security and compliance objectives, but it does not independently make an organization compliant with a particular standard or framework.
Notes
The policy supports Android 9 or later.
Company-owned and BYOD devices are supported, but individual settings can have narrower management-mode requirements.
Permission Grants override Default Permission Policy.
Policy-level Permission Grants are not application-specific.
Developer Settings replaces the legacy debugging control.
Google Play Protect Verify Apps replaces Ensure Verify Apps Enabled.
Disable Keyguard applies only to dedicated devices.
Common Criteria Mode requires a company-owned device running Android 11 or later.
MTE enforcement requires Android 14 or later and compatible hardware.
MTE changes require a restart.
Content Protection requires Android 15 or later.
Private Key Selection has no effect while certificate selection is delegated to the Swif agent.
DISABLE_REMOTE_INPUThas no effect on Android 7 or later.SHORTCUTSrequires Android 14 or later.ALL_FEATUREScan disable future lock-screen customizations.
Summary
The Android Security Policy provides centralized control over Android security, privacy, permissions, and lock-screen behavior.
For most company-owned devices:
Disable credential configuration.
Set Default Permission Policy to
PROMPT.Require encryption.
Set Developer Settings to
DEVELOPER_SETTINGS_DISABLED.Set Google Play Protect Verify Apps to
VERIFY_APPS_ENFORCED.Set Untrusted Apps Policy to
DISALLOW_INSTALL.Protect sensitive lock-screen notifications.
Use global Permission Grants only when the rule should affect all managed applications.
Enforce MTE and content protection only on supported devices.
Test the policy on representative devices before broad deployment.
