In UNIX's security model, you log in as a user, and then every process you start can access everything that belongs to your user account - that is, the trust is based on the user account, not on the particular executable.
But on my Android phone, it seems things are slightly different - every app seems to run under its own user account. Is that correct? Or is it that apps made by the same author run under the same user account? Does the author's private signing key give access to the user account?
Also, I read that the Linux kernel was modified to accommodate Android's security model:
In order to get a working Android system, you need the new lock type they have created, as well as hooks in the core system for their security model. In order to write a driver for hardware to work on Android, you need to properly integrate into this new lock, as well as sometimes the bizarre security model.
I'm particularly interested what these kernel changes were, and why are they bizarre?