Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 61 additions & 8 deletions androidmanagement/v1/androidmanagement-api.json
Original file line number Diff line number Diff line change
Expand Up @@ -1260,7 +1260,7 @@
}
}
},
"revision": "20250827",
"revision": "20250829",
"rootUrl": "https://androidmanagement.googleapis.com/",
"schemas": {
"AdbShellCommandEvent": {
Expand Down Expand Up @@ -1340,7 +1340,7 @@
"type": "string"
},
"developerSettings": {
"description": "Controls access to developer settings: developer options and safe boot. Replaces safeBootDisabled (deprecated) and debuggingFeaturesAllowed (deprecated). On personally-owned devices with a work profile, setting this policy will not disable safe boot. In this case, a NonComplianceDetail with ADMIN_TYPE is reported.",
"description": "Controls access to developer settings: developer options and safe boot. Replaces safeBootDisabled (deprecated) and debuggingFeaturesAllowed (deprecated). On personally-owned devices with a work profile, setting this policy will not disable safe boot. In this case, a NonComplianceDetail with MANAGEMENT_MODE is reported.",
"enum": [
"DEVELOPER_SETTINGS_UNSPECIFIED",
"DEVELOPER_SETTINGS_DISABLED",
Expand Down Expand Up @@ -2090,6 +2090,10 @@
],
"type": "string"
},
"customAppConfig": {
"$ref": "CustomAppConfig",
"description": "Optional. Configuration for this custom app.install_type must be set to CUSTOM for this to be set."
},
"defaultPermissionPolicy": {
"description": "The default policy for all permissions requested by the app. If specified, this overrides the policy-level default_permission_policy which applies to all apps. It does not override the permission_grants which applies to all apps.",
"enum": [
Expand Down Expand Up @@ -2143,7 +2147,7 @@
},
"extensionConfig": {
"$ref": "ExtensionConfig",
"description": "Configuration to enable this app as an extension app, with the capability of interacting with Android Device Policy offline.This field can be set for at most one app.The signing key certificate fingerprint of the app on the device must match one of the entries in signingKeyFingerprintsSha256 or the signing key certificate fingerprints obtained from Play Store for the app to be able to communicate with Android Device Policy. If the app is not on Play Store and signingKeyFingerprintsSha256 is not set, a NonComplianceDetail with INVALID_VALUE is reported."
"description": "Configuration to enable this app as an extension app, with the capability of interacting with Android Device Policy offline.This field can be set for at most one app.The signing key certificate fingerprint of the app on the device must match one of the entries in ApplicationPolicy.signingKeyCerts or ExtensionConfig.signingKeyFingerprintsSha256 (deprecated) or the signing key certificate fingerprints obtained from Play Store for the app to be able to communicate with Android Device Policy. If the app is not on Play Store and if ApplicationPolicy.signingKeyCerts and ExtensionConfig.signingKeyFingerprintsSha256 (deprecated) are not set, a NonComplianceDetail with INVALID_VALUE is reported."
},
"installConstraint": {
"description": "Optional. The constraints for installing the app. You can specify a maximum of one InstallConstraint. Multiple constraints are rejected.",
Expand All @@ -2166,7 +2170,8 @@
"BLOCKED",
"AVAILABLE",
"REQUIRED_FOR_SETUP",
"KIOSK"
"KIOSK",
"CUSTOM"
],
"enumDescriptions": [
"Unspecified. Defaults to AVAILABLE.",
Expand All @@ -2175,7 +2180,8 @@
"The app is blocked and can't be installed. If the app was installed under a previous policy, it will be uninstalled. This also blocks its instant app functionality.",
"The app is available to install.",
"The app is automatically installed and can't be removed by the user and will prevent setup from completion until installation is complete.",
"The app is automatically installed in kiosk mode: it's set as the preferred home intent and whitelisted for lock task mode. Device setup won't complete until the app is installed. After installation, users won't be able to remove the app. You can only set this installType for one app per policy. When this is present in the policy, status bar will be automatically disabled."
"The app is automatically installed in kiosk mode: it's set as the preferred home intent and whitelisted for lock task mode. Device setup won't complete until the app is installed. After installation, users won't be able to remove the app. You can only set this installType for one app per policy. When this is present in the policy, status bar will be automatically disabled.",
"The app can only be installed and updated via AMAPI SDK command (https://developers.google.com/android/management/extensibility-sdk-integration).Note: This only affects fully managed devices. Play related fields minimumVersionCode, accessibleTrackIds, autoUpdateMode, installConstraint and installPriority cannot be set for the app. The app isn't available in the Play Store. The app installed on the device has applicationSource set to CUSTOM. The signing key certificate fingerprint of the app on the device must match one of the entries in ApplicationPolicy.signingKeyCerts . Otherwise, a NonComplianceDetail with APP_SIGNING_CERT_MISMATCH is reported. Changing the installType to and from CUSTOM uninstalls the existing app if its signing key certificate fingerprint doesn't match the one from the new app source. Removing the app from applications doesn't uninstall the existing app if it conforms to playStoreMode. See also customAppConfig. This is different from the Google Play Custom App Publishing (https://developers.google.com/android/work/play/custom-app-api/get-started) feature."
],
"type": "string"
},
Expand Down Expand Up @@ -2234,6 +2240,13 @@
],
"type": "string"
},
"signingKeyCerts": {
"description": "Optional. Signing key certificates of the app.This field is required in the following cases: The app has installType set to CUSTOM (i.e. a custom app). The app has extensionConfig set (i.e. an extension app) but ExtensionConfig.signingKeyFingerprintsSha256 (deprecated) is not set and the app does not exist on the Play Store.If this field is not set for a custom app, the policy is rejected. If it is not set when required for a non-custom app, a NonComplianceDetail with INVALID_VALUE is reported.For other cases, this field is optional and the signing key certificates obtained from Play Store are used.See following policy settings to see how this field is used: choosePrivateKeyRules ApplicationPolicy.InstallType.CUSTOM ApplicationPolicy.extensionConfig",
"items": {
"$ref": "ApplicationSigningKeyCert"
},
"type": "array"
},
"userControlSettings": {
"description": "Optional. Specifies whether user control is permitted for the app. User control includes user actions like force-stopping and clearing app data. Certain types of apps have special treatment, see USER_CONTROL_SETTINGS_UNSPECIFIED and USER_CONTROL_ALLOWED for more details.",
"enum": [
Expand Down Expand Up @@ -2291,13 +2304,15 @@
"APPLICATION_SOURCE_UNSPECIFIED",
"SYSTEM_APP_FACTORY_VERSION",
"SYSTEM_APP_UPDATED_VERSION",
"INSTALLED_FROM_PLAY_STORE"
"INSTALLED_FROM_PLAY_STORE",
"CUSTOM"
],
"enumDescriptions": [
"The app was sideloaded from an unspecified source.",
"This is a system app from the device's factory image.",
"This is an updated system app.",
"The app was installed from the Google Play Store."
"The app was installed from the Google Play Store.",
"The app was installed using the AMAPI SDK command (https://developers.google.com/android/management/extensibility-sdk-integration). See also: CUSTOM"
],
"type": "string"
},
Expand Down Expand Up @@ -2389,6 +2404,18 @@
},
"type": "object"
},
"ApplicationSigningKeyCert": {
"description": "The application signing key certificate.",
"id": "ApplicationSigningKeyCert",
"properties": {
"signingKeyCertFingerprintSha256": {
"description": "Required. The SHA-256 hash value of the signing key certificate of the app. This must be a valid SHA-256 hash value, i.e. 32 bytes. Otherwise, the policy is rejected.",
"format": "byte",
"type": "string"
}
},
"type": "object"
},
"BackupServiceToggledEvent": {
"description": "An admin has enabled or disabled backup service.",
"id": "BackupServiceToggledEvent",
Expand Down Expand Up @@ -2528,7 +2555,7 @@
"id": "ChoosePrivateKeyRule",
"properties": {
"packageNames": {
"description": "The package names to which this rule applies. The hash of the signing certificate for each app is verified against the hash provided by Play. If no package names are specified, then the alias is provided to all apps that call KeyChain.choosePrivateKeyAlias (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29) or any overloads (but not without calling KeyChain.choosePrivateKeyAlias, even on Android 11 and above). Any app with the same Android UID as a package specified here will have access when they call KeyChain.choosePrivateKeyAlias.",
"description": "The package names to which this rule applies. The signing key certificate fingerprint of the app is verified against the signing key certificate fingerprints provided by Play Store and ApplicationPolicy.signingKeyCerts . If no package names are specified, then the alias is provided to all apps that call KeyChain.choosePrivateKeyAlias (https://developer.android.com/reference/android/security/KeyChain#choosePrivateKeyAlias%28android.app.Activity,%20android.security.KeyChainAliasCallback,%20java.lang.String[],%20java.security.Principal[],%20java.lang.String,%20int,%20java.lang.String%29) or any overloads (but not without calling KeyChain.choosePrivateKeyAlias, even on Android 11 and above). Any app with the same Android UID as a package specified here will have access when they call KeyChain.choosePrivateKeyAlias.",
"items": {
"type": "string"
},
Expand Down Expand Up @@ -2962,6 +2989,27 @@
},
"type": "object"
},
"CustomAppConfig": {
"description": "Configuration for a custom app.",
"id": "CustomAppConfig",
"properties": {
"userUninstallSettings": {
"description": "Optional. User uninstall settings of the custom app.",
"enum": [
"USER_UNINSTALL_SETTINGS_UNSPECIFIED",
"DISALLOW_UNINSTALL_BY_USER",
"ALLOW_UNINSTALL_BY_USER"
],
"enumDescriptions": [
"Unspecified. Defaults to DISALLOW_UNINSTALL_BY_USER.",
"User is not allowed to uninstall the custom app.",
"User is allowed to uninstall the custom app."
],
"type": "string"
}
},
"type": "object"
},
"Date": {
"description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: A full date, with non-zero year, month, and day values. A month and day, with a zero year (for example, an anniversary). A year on its own, with a zero month and a zero day. A year and month, with a zero day (for example, a credit card expiration date).Related types: google.type.TimeOfDay google.type.DateTime google.protobuf.Timestamp",
"id": "Date",
Expand Down Expand Up @@ -3914,6 +3962,7 @@
"type": "string"
},
"signingKeyFingerprintsSha256": {
"deprecated": true,
"description": "Hex-encoded SHA-256 hashes of the signing key certificates of the extension app. Only hexadecimal string representations of 64 characters are valid.The signing key certificate fingerprints are always obtained from the Play Store and this field is used to provide additional signing key certificate fingerprints. However, if the application is not available on the Play Store, this field needs to be set. A NonComplianceDetail with INVALID_VALUE is reported if this field is not set when the application is not available on the Play Store.The signing key certificate fingerprint of the extension app on the device must match one of the signing key certificate fingerprints obtained from the Play Store or the ones provided in this field for the app to be able to communicate with Android Device Policy.In production use cases, it is recommended to leave this empty.",
"items": {
"type": "string"
Expand Down Expand Up @@ -5136,6 +5185,7 @@
"APP_INCOMPATIBLE",
"APP_NOT_UPDATED",
"DEVICE_INCOMPATIBLE",
"APP_SIGNING_CERT_MISMATCH",
"PROJECT_NOT_PERMITTED"
],
"enumDescriptions": [
Expand All @@ -5151,6 +5201,7 @@
"The setting can't be applied to the app because the app doesn't support it, for example because its target SDK version is not high enough.",
"The app is installed, but it hasn't been updated to the minimum version code specified by policy.",
"The device is incompatible with the policy requirements.",
"The app's signing certificate does not match the setting value.",
"The Google Cloud Platform project used to manage the device is not permitted to use this policy."
],
"type": "string"
Expand Down Expand Up @@ -5222,6 +5273,7 @@
"APP_INCOMPATIBLE",
"APP_NOT_UPDATED",
"DEVICE_INCOMPATIBLE",
"APP_SIGNING_CERT_MISMATCH",
"PROJECT_NOT_PERMITTED"
],
"enumDescriptions": [
Expand All @@ -5237,6 +5289,7 @@
"The setting can't be applied to the app because the app doesn't support it, for example because its target SDK version is not high enough.",
"The app is installed, but it hasn't been updated to the minimum version code specified by policy.",
"The device is incompatible with the policy requirements.",
"The app's signing certificate does not match the setting value.",
"The Google Cloud Platform project used to manage the device is not permitted to use this policy."
],
"type": "string"
Expand Down
Loading