Skip to main content

Android Security Policy

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:

  1. Confirm that the target devices are enrolled and online.

  2. Identify whether each device is fully managed, dedicated, or personally owned with a work profile.

  3. Review applications that require camera, microphone, location, storage, contacts, or other runtime permissions.

  4. Confirm whether users require developer options for application development or testing.

  5. Test lock-screen and biometric restrictions on representative device models.

  6. Start with a small pilot group before broad deployment.

  7. 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

  1. In the Swif Admin Dashboard, go to Device Management > Policies.

  2. Create a new policy.

  3. Select Android Security Policy.

  4. Enter a descriptive policy name.

  5. Configure the required settings.

  6. Assign the policy to a test device or small test group.

  7. Allow the device to sync.

  8. 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

PROMPT

Encryption Policy

ENABLED_WITH_PASSWORD

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

DEVELOPER_SETTINGS_DISABLED

Google Play Protect Verify Apps

VERIFY_APPS_ENFORCED

Untrusted Apps Policy

DISALLOW_INSTALL

Common Criteria Mode

Unspecified or disabled

MTE Policy

MTE_ENFORCED only on supported devices

Content Protection Policy

CONTENT_PROTECTION_ENFORCED on Android 15 or later

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

PROMPT

Asks the user whether to grant the permission.

GRANT

Automatically grants supported permissions.

DENY

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

ENCRYPTION_POLICY_UNSPECIFIED

Does not add an encryption requirement.

ENABLED_WITHOUT_PASSWORD

Requires encryption without requiring a password at boot.

ENABLED_WITH_PASSWORD

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

android.permission.CAMERA

Camera access

android.permission.RECORD_AUDIO

Microphone access

android.permission.ACCESS_FINE_LOCATION

Precise location

android.permission.ACCESS_COARSE_LOCATION

Approximate location

android.permission.READ_CONTACTS

Read contacts

android.permission.WRITE_CONTACTS

Modify contacts

android.permission.READ_CALENDAR

Read calendar

android.permission.WRITE_CALENDAR

Modify calendar

android.permission.READ_SMS

Read SMS messages

android.permission.SEND_SMS

Send SMS messages

android.permission.READ_PHONE_STATE

Read phone state

android.permission.CALL_PHONE

Place phone calls

android.permission.READ_EXTERNAL_STORAGE

Read legacy external storage

android.permission.WRITE_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

PROMPT

Prompts the user to approve the permission.

GRANT

Automatically grants the permission when supported.

DENY

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

android.permission.CAMERA

Policy

DENY

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

CAMERA

Disables access to the camera from the secure lock screen.

NOTIFICATIONS

Hides all notifications on the secure lock screen.

UNREDACTED_NOTIFICATIONS

Prevents full notification content from appearing.

TRUST_AGENTS

Prevents trust agents, such as Smart Lock, from bypassing normal authentication.

DISABLE_FINGERPRINT

Disables fingerprint authentication on the secure lock screen.

DISABLE_REMOTE_INPUT

Disables lock-screen notification replies on Android 6 and earlier; it has no effect on Android 7 or later.

FACE

Disables face authentication on the secure lock screen.

IRIS

Disables iris authentication on the secure lock screen.

BIOMETRICS

Disables all biometric authentication on the secure lock screen.

SHORTCUTS

Disables lock-screen shortcuts on Android 14 or later.

ALL_FEATURES

Disables all current and future keyguard customizations.

Recommended configuration for devices containing sensitive data:

  • UNREDACTED_NOTIFICATIONS

  • TRUST_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

COMMON_CRITERIA_MODE_UNSPECIFIED

Uses the platform default, which is disabled.

COMMON_CRITERIA_MODE_DISABLED

Disables Common Criteria Mode.

COMMON_CRITERIA_MODE_ENABLED

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

DEVELOPER_SETTINGS_UNSPECIFIED

Uses the default behavior, which disables developer settings.

DEVELOPER_SETTINGS_DISABLED

Disables developer settings and prevents user access.

DEVELOPER_SETTINGS_ALLOWED

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

GOOGLE_PLAY_PROTECT_VERIFY_APPS_UNSPECIFIED

Uses the default, which enforces verification.

VERIFY_APPS_ENFORCED

Force-enables application verification.

VERIFY_APPS_USER_CHOICE

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

UNTRUSTED_APPS_POLICY_UNSPECIFIED

Uses the default behavior, which disallows installation.

DISALLOW_INSTALL

Disallows untrusted application installation across the device.

ALLOW_INSTALL_IN_PERSONAL_PROFILE_ONLY

Allows installation only in the personal profile on devices with work profiles.

ALLOW_INSTALL_DEVICE_WIDE

Allows untrusted application installation across the device.

Recommended values:

  • Company-owned devices: DISALLOW_INSTALL

  • BYOD with a work profile: DISALLOW_INSTALL, or ALLOW_INSTALL_IN_PERSONAL_PROFILE_ONLY if 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

MTE_POLICY_UNSPECIFIED

Defaults to user choice.

MTE_USER_CHOICE

Allows the user to enable or disable MTE when supported.

MTE_ENFORCED

Enables MTE and prevents the user from disabling it.

MTE_DISABLED

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_ENFORCED on tested, compatible company-owned devices

  • MTE_POLICY_UNSPECIFIED on 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

CONTENT_PROTECTION_UNSPECIFIED

Uses the platform default.

CONTENT_PROTECTION_DISABLED

Disables content protection and prevents user changes.

CONTENT_PROTECTION_ENFORCED

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:

  1. Confirm that the device is online in Swif.

  2. Confirm that the policy reports as installed.

  3. Open Android settings and verify that the expected controls are restricted.

  4. Confirm that developer options and USB debugging cannot be enabled.

  5. Verify that Google Play Protect remains active.

  6. Test installation from an unknown source.

  7. Test required applications and their runtime permissions.

  8. Test screenshots and screen recording if they are restricted.

  9. Lock the device and verify notification, camera, and biometric behavior.

  10. Restart the device and confirm that the settings remain enforced.

  11. For MTE changes, restart the device and review its compliance state.

  12. 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_INPUT has no effect on Android 7 or later.

  • SHORTCUTS requires Android 14 or later.

  • ALL_FEATURES can 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:

  1. Disable credential configuration.

  2. Set Default Permission Policy to PROMPT.

  3. Require encryption.

  4. Set Developer Settings to DEVELOPER_SETTINGS_DISABLED.

  5. Set Google Play Protect Verify Apps to VERIFY_APPS_ENFORCED.

  6. Set Untrusted Apps Policy to DISALLOW_INSTALL.

  7. Protect sensitive lock-screen notifications.

  8. Use global Permission Grants only when the rule should affect all managed applications.

  9. Enforce MTE and content protection only on supported devices.

  10. Test the policy on representative devices before broad deployment.

Related Resources

Did this answer your question?