The alternative to the shared user ID approach is to
use the Android permissions. In addition to sharing data
and components, the permissions are used to gain access
to critical system modules. Each android application can
request and define a set of permissions. This means that
each application can expose a subset of its functionalities
to other applications if they have been granted the
corresponding permissions. In addition, each application
can request a set of permissions to access other
applications or system libraries. Permissions are granted
by the operating system at installation and cannot be
changed afterwards. There are four types of permissions:
normal, dangerous, signature and signature-or-system.