API 34 · UPSIDE_DOWN_CAKE
Android 14 Upside Down Cake
Partial screen recording
The story
Android 14 tightened the rules around background work and media access.
The problem
Foreground services had become a loophole for permanent background execution, and media access was still all-or-nothing.
Android 14 required foreground service types and their permissions, added selected-photos access, and restricted full-screen intents.
Foreground services had to say why they existed.
What shipped
- Partial screen recording
- Selected photos access
- Regional preferences
- Generative AI wallpapers
- Predictive back improvements
Platform internals
What changed underneath the APIs. These are the changes this site's architecture modules explain in depth.
- Foreground service types are mandatory
- Selected photos access via READ_MEDIA_VISUAL_USER_SELECTED
What developers had to deal with
- Foreground service types required when targeting 34
- READ_MEDIA_VISUAL_USER_SELECTED
- Non-linear font scaling
- Full-screen intent restrictions
- User-initiated data transfer jobs
Permissions introduced here
BIND_CREDENTIAL_PROVIDER_SERVICEsignatureCONFIGURE_WIFI_DISPLAYunknownCREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALSnormalCREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERSnormalCREDENTIAL_MANAGER_SET_ORIGINnormalDETECT_SCREEN_CAPTUREnormalENFORCE_UPDATE_OWNERSHIPnormalEXECUTE_APP_ACTIONinternal|roleFOREGROUND_SERVICE_CAMERAnormal|instantFOREGROUND_SERVICE_CONNECTED_DEVICEnormal|instantFOREGROUND_SERVICE_DATA_SYNCnormal|instantFOREGROUND_SERVICE_HEALTHnormal|instantFOREGROUND_SERVICE_LOCATIONnormal|instantFOREGROUND_SERVICE_MEDIA_PLAYBACKnormal|instantFOREGROUND_SERVICE_MEDIA_PROJECTIONnormal|instantFOREGROUND_SERVICE_MICROPHONEnormal|instantFOREGROUND_SERVICE_PHONE_CALLnormal|instantFOREGROUND_SERVICE_REMOTE_MESSAGINGnormal|instantFOREGROUND_SERVICE_SPECIAL_USEnormal|appop|instantFOREGROUND_SERVICE_SYSTEM_EXEMPTEDnormal|instantLAUNCH_CAPTURE_CONTENT_ACTIVITY_FOR_NOTEinternal|roleMANAGE_DEVICE_LOCK_STATEinternal|roleMANAGE_DEVICE_POLICY_ACCESSIBILITYinternal|roleMANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENTinternal|role
…and 80 more.
Where this sits
Release 34 of 37 API levels, by date
- Headline features
- 5
- Architecture changes
- 2
- Developer changes
- 5
- Sources cited
- 5
Kernel
This release shipped on Linux kernel versions 5.15, 6.1. Kernel versions vary by device.