{
  "id": "android_permission",
  "kind": "datatype",
  "status": "draft",
  "name": "Android platform permission name",
  "doc": "Name of a permission defined by the Android platform, as an app requests it in a uses-permission element of AndroidManifest.xml and as the constants of android.Manifest.permission hold it. Almost all start with android.permission. followed by an uppercase name (android.permission.CAMERA); a few older ones use a com.android.<component>.permission. prefix (com.android.voicemail.permission.ADD_VOICEMAIL). APK analysis tools and VirusTotal list them to show what an app can access. Apps can also define their own permissions with any package-style name; the regexp covers only the platform form.",
  "is_pii": false,
  "categories": [
    "software"
  ],
  "langs": [
    "common"
  ],
  "classification": "categorical",
  "regexp": "^(?:android|com\\.android\\.[a-z]+)\\.permission\\.[A-Z][A-Z0-9_]*$",
  "examples": [
    {
      "value": "android.permission.ACCESS_COARSE_LOCATION",
      "description": "Approximate location",
      "valid": true
    },
    {
      "value": "android.permission.POST_NOTIFICATIONS",
      "description": "Show notifications (Android 13 and later)",
      "valid": true
    },
    {
      "value": "com.android.voicemail.permission.ADD_VOICEMAIL",
      "description": "Platform permission with a component prefix",
      "valid": true
    },
    {
      "value": "ACCESS_COARSE_LOCATION",
      "description": "Constant name without the prefix",
      "valid": false
    },
    {
      "value": "android.permission.access_coarse_location",
      "description": "Lowercase permission name",
      "valid": false
    }
  ],
  "links": [
    {
      "type": "doc",
      "url": "https://developer.android.com/reference/android/Manifest.permission"
    },
    {
      "type": "other",
      "url": "https://virustotal.readme.io/reference/file-object-androguard"
    }
  ],
  "quality": {
    "score": 75,
    "missing": [
      "mapping (Wikidata, Schema.org, ...)",
      "translation",
      "detector coverage"
    ]
  },
  "source": {
    "path": "data/datatypes/any/software/android_permission.yaml",
    "url": "https://github.com/apicrafter/metacrafter-registry/blob/main/data/datatypes/any/software/android_permission.yaml",
    "edit_url": "https://github.com/apicrafter/metacrafter-registry/edit/main/data/datatypes/any/software/android_permission.yaml"
  },
  "urls": {
    "html": "https://registry.apicrafter.io/datatype/android_permission",
    "json": "https://registry.apicrafter.io/api/v1/datatypes/android_permission.json"
  }
}