Zygote
API 33 · TIRAMISU

Android 13 Tiramisu

Per-app language

released
2022-08-15
runtime
ART
design
Material You
status
stable

The story

Android 13 continued the privacy push and made personalisation deeper.

The problem

Storage permissions were still coarse, notifications could not be turned off before install, and apps could not change language independently.

Android 13 added per-app language, the photo picker, granular media permissions and the POST_NOTIFICATIONS runtime permission.

The one thing to remember

Media access became per-file, and notifications required consent.

What shipped

  • Per-app language
  • Photo picker
  • Themed app icons
  • Runtime notification permission
  • Bluetooth LE Audio

Platform internals

What changed underneath the APIs. These are the changes this site's architecture modules explain in depth.

  • Granular media permissions replace READ_EXTERNAL_STORAGE
  • The notification permission becomes a runtime permission
  • Predictive back gesture

What developers had to deal with

  • POST_NOTIFICATIONS runtime permission
  • READ_MEDIA_IMAGES/VIDEO/AUDIO replace storage reads
  • Photo Picker
  • Per-app language
  • Quick Settings API
  • Monetization and themed icons

Permissions introduced here

  • BIND_TV_INTERACTIVE_APPsignature|privileged
  • BODY_SENSORS_BACKGROUNDdangerous
  • DELIVER_COMPANION_MESSAGESunknown
  • MANAGE_WIFI_INTERFACESunknown
  • MANAGE_WIFI_NETWORK_SELECTIONunknown
  • NEARBY_WIFI_DEVICESdangerous
  • OVERRIDE_WIFI_CONFIGunknown
  • POST_NOTIFICATIONSdangerous
  • READ_ASSISTANT_APP_SEARCH_DATAunknown
  • READ_BASIC_PHONE_STATEunknown
  • READ_HOME_APP_SEARCH_DATAunknown
  • READ_MEDIA_AUDIOdangerous
  • READ_MEDIA_IMAGESdangerous
  • READ_MEDIA_VIDEOdangerous
  • READ_NEARBY_STREAMING_POLICYunknown
  • REQUEST_COMPANION_PROFILE_APP_STREAMINGunknown
  • REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTIONunknown
  • REQUEST_COMPANION_PROFILE_COMPUTERunknown
  • REQUEST_COMPANION_SELF_MANAGEDunknown
  • START_VIEW_APP_FEATURESsignature|installer
  • SUBSCRIBE_TO_KEYGUARD_LOCKED_STATEsignature|privileged|module|role
  • USE_EXACT_ALARMunknown

Where this sits

Release 33 of 37 API levels, by date
Headline features
5
Architecture changes
3
Developer changes
6
Sources cited
5

Kernel

This release shipped on Linux kernel versions 5.10, 5.15. Kernel versions vary by device.