Android assigns a unique Linux UID to each installed app. What direct security benefit does this provide?
- A.It stops the app reaching the network, because every socket call is refused unless the uid appears in the inet group, and all outbound traffic is dropped by the kernel otherwise
- B.It reserves a dedicated CPU core for the app, because the scheduler pins each uid to a core at launch, and all of its threads therefore run without contention from other packages
- C.The Linux kernel enforces file and process access controls based on UID, so apps cannot read each other's data directory without explicitly sharing via IPC
- D.It lets the app open another package's files for debugging, because the platform treats a shared uid as a debugging aid, and every app signed by one developer lands in the same identity
Why C is correct
Each app's data in /data/data/<package>/ is owned by its unique UID. Standard Linux DAC (Discretionary Access Control) prevents other UIDs from reading those files. Even on a non-rooted device, an arbitrary app cannot open another app's database because the kernel rejects the access at the file system level.
Know someone studying for Mobile Security Fundamentals? Send them this one.