Os apps assinados pela plataforma são apps que compartilham a mesma assinatura (ou compatível).
certificado com o pacote de plataforma (android
). Um app assinado por plataforma pode ser
um app do sistema (localizado em uma partição de imagem do sistema) ou um app que não é do sistema.
As permissões de assinatura da plataforma são permissões definidas pelo pacote da plataforma
que também têm o nível de proteção signature
. Os builds depuráveis são builds
com android.os.Build.isDebuggable()
que retornam true
, como userdebug
ou
eng
builds.
Historicamente, os fabricantes de dispositivos tinham pouco controle sobre qual plataforma
signature
permissões podem ser concedidas a apps assinados pela plataforma que não são do sistema.
A partir do Android 15, os fabricantes podem explicitamente
conceder permissões de assinatura da plataforma nos arquivos XML de configuração do sistema no
diretório /etc/permissions
. Se um app que não é do sistema assinado pela plataforma não estiver
for adicionada à lista de permissões para uma permissão de assinatura de plataforma, essa permissão
como se o app não tivesse assinatura de plataforma em builds não depuráveis.
Adicionar uma lista de permissões
É possível listar as 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
:
/etc/permissions/signature-permissions-OEM_NAME.xml
/etc/permissions/signature-permissions-DEVICE_NAME.xml
Nenhuma regra rígida se aplica à organização do conteúdo. Os implementadores de dispositivos podem determinar a estrutura do conteúdo, desde que os apps apropriados e os são adicionadas à lista de permissões.
Personalizar uma lista de permissões
O AOSP inclui uma implementação de lista de permissões que você pode personalizar conforme necessário. semelhantes aos lista de permissões de permissões privilegiadas. Por exemplo:
<!--
~ This XML file declares which platform signature permissions to grant to
~ platform signed nonsystem apps.
-->
<permissions>
<signature-permissions package="com.android.example">
<permission name="android.permission.READ_DEVICE_CONFIG"/>
...
</signature-permissions>
...
</permissions>
Encontrar permissões ausentes
Para encontrar permissões ausentes, instale o app assinado pela plataforma e inspecione o 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
.