Application Signing
All Android applications (.apk files) must be signed with a certificate whose
private key is held by their developer. This certificate identifies the author
of the application. The certificate does not need to be signed by
a certificate authority: it is perfectly allowable, and typical, for Android
applications to use self-signed certificates. The certificate is used only
to establish trust relationships between applications, not for wholesale
control over whether an application can be installed. The most significant
ways that signatures impact security is by determining who can access
signature-based permissions and who can share user IDs.