A System app is an app which is placed under /system/app folder in an Android device. As /system is read-only, such an app cannot be uninstalled by an "ordinary" user.
A System application is NOT an application which is signed by the OS’s platform signatures. This is a common mistake believed by many and we shall come to this later on. A System application is merely an application which is placed under /system/app
folder in an Android device. An application can only be installed in that folder if we have access to the OS’s ROM (system.img
), or if /system
is mounted read-write (which requires root permissions on the device).
System apps have several benefits:
- they are largely protected (e.g. cannot be uninstalled by the user), as
/system
is read-only - being thus protected, they survive a factory-reset (only the apps, not their data)
- they are considered "trusted" (as the sources are assumed to be safe, confirmed by the ROM creator)
- being "trusted", they can get access to some restricted app permissions which are not available to "user-space apps" (e.g.
ACCOUNT_MANAGER
,MANAGE_APP_TOKENS
); if a user-space app requests those, they are denied.
A non-System application is an ordinary application, which will be installed under /data/app
folder, which is read-write. A user can uninstall such applications normally from the Settings application. One can check if an application is a System application or not using ApplicationInfo.FLAG_SYSTEM
. If the constant returns true, then the application in question is a System application.
Read more at ricston.com