In Android, what is the difference between 'normal', 'dangerous', 'signature', and 'signatureOrSystem' (now 'privileged') permission protection levels?
- A.Normal: granted to every app at install; Dangerous: granted once the user roots the handset because the platform treats the class as privileged; Signature: granted to any app installed on the same device (the certificate is ignored); Privileged: reserved for Google's own titles under a separate allow-list
- B.Normal: auto-granted at install with no prompt (low risk). Dangerous: requires runtime user approval (access to sensitive data). Signature: auto-granted only to apps signed with the same certificate as the declaring app. Privileged: granted only to apps in /system/priv-app/ signed with the platform key
- C.Normal, Dangerous: both raise a runtime prompt because the platform treats every sensitive capability alike; Signature requires the requesting app to sit in the foreground (the check runs at call time); Privileged requires enrollment as a device administrator