
Melhorias de segurança significativas das principais versões recentes do Android.
Melhorias de segurança significativas das versões principais recentes do Android, começando com Android 5.0 Lollipop (API 21).
Melhorias de segurança - Android 5
WebView é um pacote separado, veja Melhorias de segurança no Android 5.0 e O WebView atualizável no Android 5.0 Lollipop: o que é e por que você deveria se importar?Melhorias de segurança no Android 6
isInsideSecureHardware) para verificar se uma chave do KeyStore está armazenada em hardware seguro (por exemplo, Ambiente de Execução Confiável (TEE) ou Secure Element (SE)), veja método isInsideSecureHardware de KeyInfoMelhorias de segurança - Android 7
Melhorias de segurança - Android 8
WebView, para que o código JavaScript não possa acessar a memória do aplicativo tão facilmente, veja O que há de novo na segurança do WebView e Seção de Segurança das Mudanças de Comportamento do Android 8.0 para Todos os AplicativosWebView respeita o Network Security Config e a flag cleartextTrafficPermitted (em versões mais antigas do Android, ele carrega sites HTTP mesmo que o tráfego em texto claro não deva ser permitido pela configuração), veja Seção de Segurança das Mudanças de Comportamento do Android 8.0 para Aplicativos Direcionados ao Android 8.0WebView para que os usuários sejam avisados ao tentarem navegar para um site potencialmente inseguro (verificado pelo Google Safe Browsing) se ativado, veja Seção de APIs WebView dos Recursos e APIs do Android 8.0FLAG_SECURE de Window é mais amplamente suportada e proíbe a captura de tela da tela em que essa flag estiver definidaNotas de lançamento do Android 9 - Recursos de segurança
cleartextTrafficPermitted como true em seu Network Security Config se ainda quiserem usá-lo (não recomendado), veja Seção Rede TLS habilitada por padrão em Mudanças de comportamento: aplicativos direcionados ao nível de API 28+ e Android: tráfego HTTP em texto claro não permitido no Android 9Melhorias de segurança - Android 10
Notas de lançamento do Android 10 - Recursos de segurança
WebView, veja método setAllowFileAccess de WebSettingsNotas de lançamento do Android 11 - Segurança
taskAffinity com o mesmo valor do alvo para enganar o usuário e fazê-lo abrir esse aplicativo mesmo que pretendia abrir o aplicativo alvo e usava o ícone legítimo do aplicativo) não é mais possível, veja Vulnerabilidade do ataque StrandHogg / Afinidade de tarefa e Vulnerabilidade StrandhoggrequestLegacyExternalStorage, veja Atualizações de armazenamento no Android 11 e Seção sobre como optar por não participar em seu aplicativo de produção em Casos de uso e práticas recomendadas de armazenamento no Androidandroid:exported precisa de ser definida explicitamente nos Manifests para componentes (Activities, Content Providers, etc.) que declarem Intent Filters, ver secção Safer component exporting de Behavior changes: Apps targeting Android 12requestLegacyExternalStorage, ver Security Enhancements - Android 13
Android 13 release notes - Security
POST_NOTIFICATIONS foi adicionada para enviar notificações não isentas (incluindo Foreground Services (FGS)) a partir de uma aplicação, ver Notification runtime permission e android.permission.POST_NOTIFICATIONSSecurity Enhancements - Android 14
Android 14 Security Release Notes
targetSdk: aplicações que tenham como alvo versões do Android anteriores ao Android 6 (API 23) já não podem ser instaladas. Isto significa que pode assumir que as security restrictions (notavelmente o Runtime Permission handling neste caso) introduzidas com o Android 6 (API 23) se aplicam agora a todas as aplicações instaladas no dispositivo (espera-se que este mínimo aumente com cada futura versão do Android), ver secção Minimum installable target API level de Behavior changes: all appsQUERY_ALL_PACKAGES concedida - o que requer uma revisão manual especial da Google Play para ser obtida), ver secção Media owner package names might be redacted de Behavior changes: all appsAndroid 15 Security Release Notes
PendingIntent agora bloqueiam background Activity launches por defeito se a sua aplicação tiver como alvo o Android 15 (API 35), ver secção Other changes de Behavior changes: Apps targeting Android 15 or higherPendingIntent permita privilégios de lançamento de atividades em segundo plano ou que o remetente tenha esses privilégios, se a sua aplicação tiver como alvo o Android 15 (API 35), ver Android 16 Security Release Notes* Adicionada segurança padrão contra ataques de redirecionamento de Intent, bloqueando o lançamento de Intents recebidas de outros apps, por exemplo, agrupadas como um extra na Intent que lança o app atual, consulte a seção Segurança aprimorada contra ataques de redirecionamento de Intent de Mudanças de comportamento: todos os apps
RESULT_DISCOVERY_TIMEOUT. Em vez disso, o usuário é notificado de eventos de timeout com um diálogo visual. Quando o usuário fecha o diálogo, o app é alertado sobre a falha de associação com RESULT_USER_REJECTED, consulte a seção Companion apps no longer notified of discovery timeouts de Mudanças de comportamento: todos os appsMediaStore#getVersion() agora será exclusivo para cada app. Isso elimina propriedades de identificação da string de versão para evitar abuso e uso para técnicas de fingerprinting, consulte a seção Bloqueio da versão do MediaStore de Mudanças de comportamento: apps direcionados ao Android 16 ou superior e o método getVersion de MediaStoreNotas de lançamento de segurança do Android 17
READ_CONTACTS, consulte a seção Android contacts picker de Recursos e APIsKeyStoreException, consulte a seção Per-app keystore limits de Mudanças de comportamento: todos os appssetView) não podem mais ser exibidos a partir do segundo plano. Isso visa mitigar certos ataques de Tapjacking que dependiam desses elementos para obscurecer a interface de um aplicativo vítima. Note que todo o método setView está obsoleto no Android 11 (API 30). Veja documentação do método setView de ToastBiometricPrompt para autenticação.FLAG_SECURE é adicionada para pedidos de credenciais biométricas ou do dispositivo (PIN, pattern ou password), incluindo tanto o desbloqueio do dispositivo como o BiometricPrompt em aplicações - isto significa que não pode tirar capturas de ecrã destes ecrãs e que também aparecem a preto em partilhas de ecrã, ver source for com.android.systemui.biometrics.AuthContainerView on Android Code Searchapksigner a usar o esquema de assinatura v3.1 por defeito para rotação direcionada para Android 13 e superiores.Exception, ver secção Safer dynamic code loading de Behavior changes: Apps targeting Android 14 or highernull) deixarão de corresponder a quaisquer intent-filters. Isto significa que os intents usados para iniciar atividades ou serviços devem ter uma ação claramente definida, ver secção Safer Intents de Behavior changes: Apps targeting Android 15 or higherPendingIntent é tratado como o remetente do intent que o envolve, não como o remetente do pending intent, ver secção Safer Intents de Behavior changes: Apps targeting Android 15 or higherBiometricPrompt: não pode fazer "fall back" para credenciais do dispositivo depois de falhar com biometria para ainda assim completar a autenticação do utilizador. Note que o utilizador ainda pode usar credenciais do dispositivo por escolha através de um botão no prompt se esse autenticador for permitido (e se não tiver falhado o prompt demasiadas vezes). Quando o dispositivo é bloqueado, o prompt será cancelado e um novo prompt precisa de ser acionado depois de o dispositivo ser desbloqueado para que a autenticação seja bem-sucedida. Ver Android 15 makes sure thieves can't clean out your bank account if they steal your unlocked phonemoduleHash na estrutura KeyDescription, que pode ser usado para verificar a integridade dos módulos APEX carregados, consulte a seção Device integrity das notas da versão Android 16 e Key and ID attestation