sintaxe:
<permission android:description="string resource"
            android:icon="drawable resource"
            android:label="string resource"
            android:name="string"
            android:permissionGroup="string"
            android:protectionLevel=["normal" | "dangerous" |
                                     "signature" | ...] />
contido em:
<manifest>
descrição:
Declara uma permissão de segurança que pode ser usada para limitar o acesso a componentes ou recursos específicos do aplicativo em que foi declarada ou em outros. Consulte a seção Permissões na introdução e o documento Segurança e permissões para ver mais informações sobre como as permissões funcionam.
atributos:
android:description
Uma descrição da permissão legível pelo usuário, mais longa e mais informativa do que o rótulo. Ela pode ser exibida para explicar a permissão ao usuário, por exemplo, quando outro aplicativo pede para receber a permissão do usuário.

Esse atributo precisa ser definido como uma referência a um recurso de string. Diferente do atributo label, ele não pode ser uma string bruta.

android:icon
Uma referência a um recurso drawable para um ícone que representa a permissão.
android:label
Um nome para a permissão, que pode ser exibido aos usuários.

Como conveniência, o rótulo pode ser configurado diretamente como uma string bruta enquanto você desenvolve o aplicativo. No entanto, quando o aplicativo estiver pronto para ser publicado, ele precisa ser definido como uma referência a um recurso de string, para que possa ser localizado como outras strings na interface do usuário.

android:name
O nome da permissão. Esse é o nome que vai ser usado no código para fazer referência à permissão, por exemplo, em um elemento <uses-permission> e nos atributos permission dos componentes do aplicativo.

Observação: o sistema não permite que vários pacotes declarem uma permissão com o mesmo nome, a menos que todos os pacotes sejam assinados com o mesmo certificado. Se um pacote declarar uma permissão, o sistema não vai permitir que o usuário instale outros pacotes com o mesmo nome de permissão, a menos que esses pacotes sejam assinados com o mesmo certificado do primeiro pacote.

Recomendamos adicionar o nome do pacote dos apps como prefixo nas permissões, usando a nomeação no estilo de domínio inverso. Esse prefixo precisa ser seguido de .permission. e de uma descrição do recurso que a permissão representa, usando letras maiúsculas em SNAKE_CASE. Por exemplo: com.example.myapp.permission.ENGAGE_HYPERSPACE

Essa recomendação evita conflitos na nomenclatura e ajuda a identificar com clareza o proprietário e a intenção de uma permissão personalizada.

android:permissionGroup
Atribui esta permissão a um grupo. O valor desse atributo é o nome do grupo, que precisa ser declarado com o elemento <permission-group> neste ou em outro aplicativo. Se esse atributo não for definido, a permissão não vai pertencer a um grupo.
android:protectionLevel

Caracteriza o possível risco implicado na permissão e indica o procedimento que o sistema precisa seguir ao determinar se vai conceder ou não a permissão a um aplicativo que a solicite.

Cada nível de proteção consiste em um tipo de permissão básico e em zero ou mais sinalizações. Por exemplo, o nível de proteção "dangerous" não tem sinalizações. Por outro lado, o nível de proteção "signature|privileged" é uma combinação do tipo de permissão básico "signature" e a sinalização "privileged".

A tabela abaixo mostra todos os tipos de permissão básicos. Para uma lista de sinalizações, consulte protectionLevel.

Valor Significado
"normal" O valor padrão. Uma permissão de menor risco que concede a apps que a solicitarem acesso a recursos isolados no nível do aplicativo, com risco mínimo a outros aplicativos, ao sistema ou ao usuário. O sistema concede automaticamente esse tipo de permissão a um aplicativo solicitante na instalação, sem solicitar a aprovação explícita do usuário, embora o usuário sempre tenha a opção de revisar essas permissões antes da instalação.
"dangerous" Uma permissão de alto risco que concede ao aplicativo que a solicita acesso a dados particulares do usuário ou controle sobre o dispositivo que pode afetar negativamente o usuário. Como esse tipo de permissão apresenta risco em potencial, o sistema pode não a conceder automaticamente ao aplicativo que faz a solicitação. Por exemplo, qualquer permissão perigosa solicitada por um aplicativo pode ser exibida ao usuário e exigir confirmação antes de prosseguir, ou alguma outra medida pode ser tomada para evitar que o usuário permita automaticamente o uso de tais instalações.
"signature" Uma permissão concedida pelo sistema somente se o aplicativo que a solicitar estiver assinado com o mesmo certificado que o aplicativo que declarou a permissão. Se os certificados forem correspondentes, o sistema concede a permissão automaticamente sem notificar o usuário ou solicitar a aprovação explícita dele.
"signatureOrSystem"

Sinônimo antigo para "signature|privileged". Descontinuado no nível 23 da API.

Uma permissão que o sistema concede apenas a aplicativos que estejam em uma pasta dedicada na imagem do sistema Android ou que sejam assinados com o mesmo certificado do aplicativo que declarou a permissão. Evite usar essa opção, porque o nível de proteção de signature é suficiente para a maioria das necessidades e funciona independente de onde os aplicativos estiverem instalados. A permissão "signatureOrSystem" é usada para algumas situações especiais em que vários fornecedores têm aplicativos integrados a uma imagem do sistema e precisam compartilhar explicitamente recursos específicos porque estão sendo criados em conjunto.

introduzido em:
Nível 1 da API
veja também:
<uses-permission>
<permission-tree>
<permission-group>