While the Android system specifies a great number of system permissions that are required to access certain portions of the default APIs, there is nothing to prevent an app from using custom permissions, where the app defines a new permission and then runs with that permission, provides an API (or methods) that require a calling process to have that permission, or both.