Signature permission can be granted to the application
signed with the same certificate as application declaring
the permission. The signature permission is in effect a
refinement of the shared user ID approach and provides
more control in sharing application data and components.
On the other hand, signature-or-system permission
extends the signature permission by granting permission
to the applications installed in the Android system image.
However, caution is required since both the signature and
signature-or-system permissions will grant access rights
without asking for the user's explicit approval.