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.