App Permissions

The permissions field in the app manifest controls the app's access to various sensitive APIs on the device (sometimes called WebAPIs). The permissions are described in the following tables. The three levels of permission, in brief, are:

  • Web apps: These only have a basic level of permissions, and don't have access to privileged or internal APIs.
  • Privileged apps: These have all the permissions of web apps plus more. Hosted apps can't be privileged โ€” they must be packaged apps.

Hosted app and privileged app permissions

Manifest permissionAPI nameMinimum app type requiredaccess propertyDefault granted
alarmsAlarmhostednoneAllow
audio-capturegetUserMedia, Web Speech APIhosted for getUserMedia, privileged for Web Speech APInonePrompt for all installed App types for getUserMedia, Allow for Web Speech API.
audio-channel-alarmAudioChannelsprivilegednoneAllow
audio-channel-contentAudioChannelshostednoneAllow
audio-channel-normalAudioChannelshostednoneAllow
audio-channel-notificationAudioChannelsprivilegednoneAllow
browserBrowserprivilegednoneAllow
cameraCameraprivileged in KaiOS certifiednonePrompt for all installed App types.`
contactsContactsprivilegedreadonly, readwrite, readcreate, or createonlyPrompt for all installed App types.
desktop-notificationNotificationhostednonePrompt for Web content. Allow for all installed App types.
device-storage:musicDevice Storageprivilegedreadonly, readwrite, readcreate, or createonlyPrompt
device-storage:picturesDevice Storageprivilegedreadonly, readwrite, readcreate, or createonlyPrompt
device-storage:sdcardDevice Storageprivilegedreadonly, readwrite, readcreate, or createonlyPrompt
device-storage:videosDevice Storageprivilegedreadonly, readwrite, readcreate, or createonlyPrompt
fmradioFM RadiohostednoneAllow
geolocationGeolocationhostednonePrompt (even for certified Apps)
inputKeyboardprivilegednoneAllow
mobileidMobile identityprivilegednonePrompt
mobilenetworkMobile NetworkprivilegednoneAllow
moz-firefox-accountsFirefox AccountsprivilegednonePrompt for all installed App types.
nfcNFC APIprivilegednoneAllow
nfc-shareNFC APIprivilegednoneAllow
nfc-read, nfc-writeNFC APIWas certified/internal at this stage in development.noneAllow
pushSimple PushhostednoneAllow
speech-recognitionWeb Speech APIprivilegednoneAllow
systemXHRSystemXHRprivilegednoneAllow
tcp-socketTCP SocketprivilegednoneAllow
video-captureGetUserMediahostednonePrompt for all installed App types.

Certified app permissions

Manifest permissionAPI nameMinimum app type requiredaccess property
attentionAttention Screencertifiednone
audio-channel-ringerAudioChannelscertifiednone
audio-channel-telephonyAudioChannelscertifiednone
audio-channel-publicnotificationAudioChannelscertifiednone
background-sensorsBackground Sensorcertifiednone
backgroundservice (Deprecated)Background Servicescertifiednone
bluetoothcertifiednone
browser:embedded-system-appBrowsercertifiednone
cameraCameracertifiednone
cellbroadcastcertifiednone
No permission needed, but datastores-access/datastores-owned needs to be set in the manifest (see Data Store API Manifest fields.)Data Storecertifieddatastores-access/ datastores-owned
device-storage:appsDevice Storagecertifiedread
embed-appsEmbed Appscertifiednone
idleIdlecertifiednone
mobileconnectionMobile Connectioncertifiednone
network-eventsNetwork Eventscertifiednone
networkstats-manageNetwork Statscertifiednone
open-remote-windowOpen out-of-process windowscertifiednone
permissionsPermissions (Firefox OS)certifiednone
powerPower Managementcertifiednone
presentation-device-managePresentationcertifiednone
settingsSettingscertifiedreadonly or readwrite
smsWebSMScertifiednone
telephonyWeb Telephonycertifiednone
timeTimeManagercertifiednone
voicemailVoicemailcertifiednone
webapps-manageOpen Webappscertifiednone
wifi-manageWiFi Managementcertifiednone
wappushWAP Pushcertifiednone