A partir de 27 de março de 2025, recomendamos usar android-latest-release em vez de aosp-main para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Os apps assinados pela plataforma são aqueles que compartilham o mesmo certificado de assinatura (ou compatível) com o pacote da plataforma (android). Um app assinado pela plataforma pode ser
um app do sistema (localizado em uma partição de imagem do sistema) ou um app não do sistema.
As permissões de assinatura da plataforma são definidas pelo pacote da plataforma
e também têm o nível de proteção signature. Builds depuráveis são builds
cujos android.os.Build.isDebuggable() retornam true, como userdebug ou
eng.
Historicamente, os fabricantes de dispositivos tinham pouco controle sobre quais permissões
signature da plataforma podiam ser concedidas a apps não do sistema assinados pela plataforma.
A partir do Android 15, os fabricantes podem conceder explicitamente
permissões de assinatura da plataforma nos arquivos XML de configuração do sistema no
diretório /etc/permissions. Se um app não do sistema assinado por plataforma não for
adicionado à lista de permissões de assinatura de plataforma, essa permissão vai agir
como se o app não fosse assinado pela plataforma em builds não depuráveis.
Adicionar uma lista de permissões
É possível listar listas de permissões para apps em um único arquivo XML ou em vários
arquivos XML localizados no diretório frameworks/base/etc/permissions:
Não há regras rígidas sobre como o conteúdo é organizado. Os implementadores de dispositivos podem
determinar a estrutura do conteúdo, desde que os apps apropriados e as
permissões deles sejam adicionados à lista de permissões.
Personalizar uma lista de permissões
O AOSP inclui uma implementação de lista de permissões que pode ser personalizada conforme necessário,
semelhante à
lista de permissões privilegiadas. Por
exemplo:
Para encontrar as permissões ausentes, instale o app assinado pela plataforma e inspecione os registros
do dispositivo para o seguinte formato de mensagens de aviso:
Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist
O sistema ainda pode conceder a permissão em builds depuráveis, mas não em
builds não depuráveis, como builds user.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Signature permission allowlist\n\nPlatform signed apps are apps sharing the same (or compatible) signing\ncertificate with the platform package (`android`). A platform signed app can be\na system app (located on a system image partition), or a nonsystem app.\nPlatform signature permissions are permissions defined by the platform package\nthat also have the `signature` protection level. Debuggable builds are builds\nwhose `android.os.Build.isDebuggable()` return `true`, such as `userdebug` or\n`eng` builds.\n| **Note:** On this page, `/etc/permissions` resolves to \u003cvar translate=\"no\"\u003epartition\u003c/var\u003e`/etc/permissions`.\n\nHistorically, device manufacturers had little control over which platform\n`signature` permissions could be granted to platform signed nonsystem apps.\nStarting in Android 15, manufacturers can explicitly\ngrant platform signature permissions in the system configuration XML files in\nthe `/etc/permissions` directory. If a platform signed nonsystem app isn't\nadded to the allowlist for a platform signature permission, that permission acts\nas if the app isn't platform signed on nondebuggable builds.\n| **Note:** The allowlist isn't enforced on debuggable builds to facilitate easier testing.\n| **Note:** platform signed system apps and their requested permissions aren't affected by this change, however permissions newly requested by a system app update (but not requested by the original system app) still need to be added to the allowlist.\n\nAdd an allowlist\n----------------\n\nYou can list permission allowlists for apps in a single XML file or in multiple\nXML files located in the `frameworks/base/etc/permissions` directory:\n\n- `/etc/permissions/signature-permissions-`\u003cvar translate=\"no\"\u003eOEM_NAME\u003c/var\u003e`.xml`\n- `/etc/permissions/signature-permissions-`\u003cvar translate=\"no\"\u003eDEVICE_NAME\u003c/var\u003e`.xml`\n\nNo strict rule applies to how content is organized. Device implementers can\ndetermine content structure as long as the appropriate apps and their\npermissions are added to the allowlist.\n\nCustomize an allowlist\n----------------------\n\nAOSP includes an allowlist implementation that you can customize as needed,\nsimilar to the\n[privileged permission allowlist](/docs/core/permissions/perms-allowlist). For\nexample: \n\n \u003c!--\n ~ This XML file declares which platform signature permissions to grant to\n ~ platform signed nonsystem apps.\n --\u003e\n\n \u003cpermissions\u003e\n \u003csignature-permissions package=\"com.android.example\"\u003e\n \u003cpermission name=\"android.permission.READ_DEVICE_CONFIG\"/\u003e\n ...\n \u003c/signature-permissions\u003e\n ...\n \u003c/permissions\u003e\n\nFind missing permissions\n------------------------\n\nTo find missing permissions, install your platform signed app and inspect device\nlogs for the following format of warning messages: \n\n Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist\n\nThe system can still grant the permission on debuggable builds, but not on\nnondebuggable builds such as `user` builds."]]