ALWAYS_SANDBOX_DISPLAY_APIS
ID da mudança:185004937
Estado padrão: desativada para todos os apps.
Quando ativado, aplica o sandbox da API Display a um pacote
, independente do modo de janela. As APIs Display sempre vão fornecer
os limites do app.
Para saber mais sobre essa mudança, consulte a seção na página
Mudanças de comportamento do Android 12 sobre
Métodos de exibição que foram descontinuados.
|
AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER
ID da mudança:163400105
Estado padrão: ativada para apps destinados ao Android 12 (nível 32 da API) ou mais recentes.
A partir do Android 12, a plataforma pode oferecer sugestões não textuais, como imagens, usando a estrutura de preenchimento automático
melhorada (consulte serviços de preenchimento automático). Normalmente, para que um app possa processar essas sugestões,
ele precisa implementar a API OnReceiveContentListener .
Para facilitar a adoção dessa API em apps que já implementaram a API
InputConnection.commitContent(InputContentInfo, int, Bundle) ,
ela vai ser reutilizada como alternativa caso o OnReceiveContentListener ainda não tenha sido implementado pelo app. Esse substituto só é ativado no
Android 12 (nível 31 da API). Esse ID da mudança desativa o substituto, para que os apps destinados ao Android 12 (nível 32 da API) e versões mais recentes tenham que implementar a
API OnReceiveContentListener para aceitar sugestões não textuais.
|
BLOCK_FLAG_SLIPPERY
ID da mudança:157929241
Estado padrão: ativada para todos os apps.
Em apps executados no Android 12 (nível 31 da API), verifica se
FLAG_SLIPPERY
está sendo usada em alguma janela no app. Esperamos que essa sinalização seja usada apenas pelos componentes do sistema, já que é um
campo sem suporte. Caso usada, ela será restrita.
|
BLOCK_GPS_STATUS_USAGE
ID da mudança:144027538
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps direcionados ao Android 12 (nível 31 da API) e mais recentes, todos os usos da API GpsStatus
precisam ser substituídos pelas APIs GnssStatus .
|
BLOCK_IMMUTABLE_PENDING_INTENTS
ID da mudança:171317480
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps direcionados ao Android 12 (nível 31 da API) e mais recentes, os objetos PendingIntent
imutáveis transmitidos às APIs de localização geram uma IllegalArgumentException.
|
BLOCK_PENDING_INTENT_SYSTEM_API_USAGE
ID da mudança:169887240
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, as APIs LocationRequest do sistema não podem ser usadas com solicitações de
localização PendingIntent .
|
BLOCK_UNTRUSTED_TOUCHES
ID da mudança:158002302
Estado padrão: ativada para todos os apps.
Para preservar a segurança do sistema e uma boa experiência do usuário, o Android 12 impede que os apps consumam eventos de toque
em que uma sobreposição oculte o app de forma não segura.
Para saber mais sobre essa mudança, consulte Eventos de toque não confiáveis estão bloqueados.
|
CALL_ACTIVITY_RESULT_BEFORE_RESUME
ID da mudança:78294732
Estado padrão: ativada para apps destinados ao Android 12 (nível 32 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 32 da API) e versões mais recentes, corrige o ciclo de vida do resultado da atividade para garantir que ele seja
recebido antes do conteúdo ser retomado.
|
CAMERA_MIC_INDICATORS_NOT_PRESENT
ID da mudança:162547999
Estado padrão: desativada para todos os apps.
Indica que o dispositivo oferece suporte a indicadores de câmera e microfone. Se presente, vai ser false ,
porque o método CompatChanges#isChangeEnabled
retornará true se o ID da mudança não estiver presente.
|
CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS
ID da mudança:146211400
Estado padrão: ativada para apps destinados ao Android 12 (nível 32 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 32 da API) e versões mais recentes, o gerenciador não vai instalar um pacote se houver grupos de permissões incorretos.
Os grupos de permissões só podem ser compartilhados entre apps que compartilham um certificado. Caso a permissão pertença a um grupo específico, o grupo também vai precisar ser definido.
|
CHANGE_ID_AUTH_STATE_DENIED
ID da mudança:181350407
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps clientes direcionados ao Android 12 (nível 31 da API) e mais recentes, uma SecurityException é gerada quando eles estão no estado de autorização
negada e tentam enviar uma mensagem a um nanoapp.
|
CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION
ID da mudança:136069189
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps direcionados ao Android 12 (nível 31 da API) e mais recentes, uma SecurityException é gerada quando um app que não tem a
permissão HIGH_SAMPLING_RATE_SENSORS é executado no modo de depuração e solicita taxas de amostragem maiores que 200 Hz.
|
DELIVER_HISTORICAL_LOCATIONS
ID da mudança:73144566
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, os clientes de local podem acessar localizações anteriores ao
momento atual em algumas circunstâncias.
|
DISPLAY_INFO_NR_ADVANCED_SUPPORTED
ID da mudança:181658987
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps direcionados ao Android 12 (nível 31 da API) e versões mais recentes, oferece compatibilidade com versões anteriores para TelephonyDisplayInfo .
|
DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE
ID da mudança:170503758
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps direcionados ao Android 12 (nível 31 da API) e mais recentes, a plataforma pode reduzir o frame rate de um app para um divisor da
taxa de atualização, se for mais indicado (por exemplo, se o app for chamado para Surface.setFrameRate(float, int) ).
Os apps receberão callbacks
Choreographer.postFrameCallback(Choreographer.FrameCallback) e pressão de retorno no frame rate limitado. Os apps usam Display.getRefreshRate() e
Display.Mode.getRefreshRate() para saber qual é a taxa de atualização da tela.
Display.getRefreshRate() sempre retornará o frame rate do app, e não a taxa de atualização da tela física para permitir que
apps sejam executados no ritmo de frame correto. O Display.Mode.getRefreshRate() retornará o frame rate do app se ele for compilado para uma versão
anterior e, a partir do Android 12 (nível 31 da API), retornará a taxa de atualização da tela física.
|
DOWNSCALED
ID da mudança:168419799
Estado padrão: desativada para todos os apps.
Essa mudança é a responsável por todas as alterações de redução de escalonamento
por buffer em cada app. A ativação dessa mudança permite que os seguintes fatores de escalonamento sejam
aplicados:
Quando essa mudança é ativada para um pacote de apps, o app é forçado
a ser redimensionado para o fator de escalonamento mais alto ativado. Por exemplo, 80% será
usado se 80% e 70%
(DOWNSCALE_80 e
DOWNSCALE_70 ) estiverem
ativados.
|
DOWNSCALE_30
ID da mudança:189970040
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também estiver
ativada, ativar essa mudança para um pacote vai forçar o app a
presumir que ele será executado em uma tela com 30% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_35
ID da mudança:189969749
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também
estiver ativada, ativar essa mudança para um pacote forçará o app a presumir
que ele está sendo executado em uma tela com 35% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_40
ID da mudança:189970038
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também estiver
ativada, ativar essa mudança para um pacote vai forçar o app a
presumir que ele será executado em uma tela com 40% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_45
ID da mudança:189969782
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também
estiver ativada, ativar essa mudança para um pacote vai forçar o app a
presumir que ele será executado em uma tela com 45% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_50
ID da mudança:176926741
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também
estiver ativada, ativar essa mudança para um pacote vai forçar o app a
presumir que ele está sendo executado em uma tela com 50% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_55
ID da mudança:189970036
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também estiver
ativada, ativar essa mudança para um pacote vai forçar o app a
presumir que ele será executado em uma tela com 55% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_60
ID da mudança:176926771
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também
estiver ativada, ativar essa mudança para um pacote vai forçar o app a
presumir que ele está sendo executado em uma tela com 60% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_65
ID da mudança:189969744
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também
estiver ativada, ativar essa mudança para um pacote vai forçar o app a
presumir que ele será executado em uma tela com 65% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_70
ID da mudança:176926829
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também estiver
ativada, ativar essa mudança para um pacote vai forçar o app a
presumir que ele está sendo executado em uma tela com 70% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_75
ID da mudança:189969779
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também
estiver ativada, ativar essa mudança para um pacote vai forçar o app a presumir
que ele está sendo executado em uma tela com 75% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_80
ID da mudança:176926753
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também
estiver ativada, ativar essa mudança para um pacote vai forçar o app a
presumir que ele está sendo executado em uma tela com 80% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_85
ID da mudança:189969734
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também estiver
ativada, ativar essa mudança para um pacote vai forçar o app a
presumir que ele está sendo executado em uma tela com 85% da resolução vertical e horizontal
da tela real.
|
DOWNSCALE_90
ID da mudança:182811243
Estado padrão: desativada para todos os apps.
Quando a propriedade DOWNSCALED também
estiver ativada, ativar essa mudança para um pacote vai forçar o app a
presumir que ele será executado em uma tela com 90% da resolução vertical e horizontal
da tela real.
|
DO_NOT_DOWNSCALE_TO_1080P_ON_TV
ID da mudança:157629738
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Os apps para Android TV destinados ao Android 12 (nível 31 da API) e mais recentes precisam funcionar em qualquer tamanho da janela, incluindo tamanhos maiores que 1080p.
Os apps destinados a versões anteriores do Android não esperam que as janelas sejam maiores que 1080p. Portanto, a janela será reduzida para 1080p quando necessário.
|
DROP_CLOSE_SYSTEM_DIALOGS
ID da mudança:174664120
Estado padrão: ativada para todos os apps.
Para melhorar o controle do usuário ao interagir com apps e com o sistema, a ação da intent ACTION_CLOSE_SYSTEM_DIALOGS
foi suspensa a partir do Android 12.
Para saber mais sobre essa mudança, consulte Apps não podem fechar caixas de diálogo do sistema.
|
ENABLE_CHECKS_FOR_PRIVATE_FILES
ID da mudança:172100307
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Os apps destinados ao Android 12 (nível 31 da API) e mais recentes não podem inserir nem atualizar arquivos particulares usando o provedor de mídia.
|
ENABLE_DEFERRED_SCAN
ID da mudança:180326732
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Ative esta opção para adiar a verificação que é acionada como parte de MediaProvider#update() .
|
ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION
ID da mudança:157233955
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps direcionados ao Android 12 (nível 31 da API) e mais recentes, ativa a proteção READ_PHONE_STATE em APIs que consultam e notificam o estado da chamada, como TelecomManager#getCallState ,
TelephonyManager.getCallStateForSubscription() e
TelephonyCallback.CallStateListener .
|
ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION
ID da mudança:183407956
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps direcionados ao Android 12 (nível 31 da API) e mais recentes, ativa as proteções READ_PHONE_NUMBERS ou READ_PRIVILEGED_PHONE_STATE
em getPhoneAccount(PhoneAccountHandle) .
|
ENABLE_INCLUDE_ALL_VOLUMES
ID da mudança:182734110
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Ative esta opção para incluir linhas de bancos de dados de um volume desconectado recentemente no MediaProvider#query .
|
ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS
ID da mudança:178209446
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Ative esta opção para autorizar que os apps com a permissão Manifest.permission.MANAGE_EXTERNAL_STORAGE
solicitem acesso ao armazenamento externo bruto.
|
ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS
ID da mudança:185199076
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps direcionados ao Android 12 (nível 31 da API) e mais recentes, é necessário que todos os alarmes não exatos tenham um tamanho de janela mínimo de cerca de alguns minutos. Na prática, os alarmes que precisam de
janelas menores são idênticos aos alarmes exatos e precisam usar as APIs correspondentes fornecidas, como
setExact(int, long, PendingIntent) . Alarmes não exatos com janelas menores especificada
terão as janelas alongadas pelo sistema.
|
ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES
ID da mudança:142191088
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Os apps destinados ao Android 12 (nível 31 da API) e mais recentes precisam declarar dependências para as bibliotecas compartilhadas nativas públicas
definidas pelo fabricante do dispositivo, usando a tag uses-native-library no AndroidManifest.xml . Se alguma das dependências
não for atendida (por exemplo, se uma delas não existir), o gerenciador de pacotes não instalará o app. A dependência pode ser
especificada como opcional, usando o atributo android:required na tag. Nesse caso, deixar de atender a dependência não interromperá
a instalação.
Depois de instalado, o app recebe apenas as bibliotecas compartilhadas nativas especificadas no manifesto dele. Chamar dlopen em
uma biblioteca compartilhada nativa que não aparece no manifesto do app causará uma falha mesmo que a biblioteca exista no dispositivo.
|
ENFORCE_STRICT_QUERY_BUILDER
ID da mudança:143231523
Estado padrão: desativada para todos os apps.
Quando ativada, o SQLiteQueryBuilder
verifica todas as seleções de consulta CalendarProvider2 em relação a argumentos maliciosos.
|
FGS_BG_START_RESTRICTION_CHANGE_ID
ID da mudança:170668199
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, restringe o momento em que os apps podem iniciar serviços em primeiro plano durante a execução em segundo plano.
|
FGS_START_EXCEPTION_CHANGE_ID
ID da mudança:174041399
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e versões mais recentes, permite que o sistema gere uma IllegalStateException caso um app tente iniciar um serviço em primeiro plano durante a execução em segundo plano.
|
ID da mudança:156215187
Estado padrão: desativada para todos os apps.
Em apps direcionados ao Android 12 (nível 31 da API) e mais recentes, conclua a InputConnection quando o dispositivo se tornar
non-interactive (não interativo).
Se ativado pelo input method atual, a conexão de entrada atual será
finished (finalizada) sempre que os dispositivos se tornarem não interativos.
Se não estiver ativada, a conexão de entrada atual vai ser desativada silenciosamente quando os dispositivos se tornarem não interativos, e um par de métodos
onFinishInput() e
onStartInput()
será enviado quando o dispositivo se tornar interativo novamente.
|
FORCE_DISABLE_HEVC_SUPPORT
ID da mudança:174227820
Estado padrão: desativada para todos os apps.
Força um app a deixar de ser compatível com o recurso de mídia HEVC.
Os apps precisam declarar no manifesto os recursos de mídia
a que oferecem suporte, mas essa flag pode ser usada para forçar um app a não
oferecer suporte a HEVC, forçando a transcodificação ao acessar mídias
codificadas em HEVC. Definir essa flag substitui todos os padrões no nível do SO
para apps. Ela fica desativada por padrão, o que significa que os padrões do SO
têm prioridade. Se essa flag e
FORCE_ENABLE_HEVC_SUPPORT estiverem ativadas, o SO vai ignorar
as duas flags.
|
FORCE_ENABLE_HEVC_SUPPORT
ID da mudança:174228127
Estado padrão: desativada para todos os apps.
Força o app a oferecer suporte ao recurso de mídia HEVC. Os apps
precisam declarar no manifesto os recursos de mídia
a que oferecem suporte. No entanto, essa flag pode ser usada para forçar um app a oferecer suporte a HEVC,
evitando a transcodificação ao acessar mídias codificadas em HEVC. Definir
essa flag substitui todos os padrões no nível do SO do app. Ele fica desativado por
padrão, o que significa que os padrões do SO têm prioridade. Se
essa flag e FORCE_DISABLE_HEVC_SUPPORT estiverem ativadas,
o SO vai ignorar as duas flags.
|
FORCE_NON_RESIZE_APP
ID da mudança:181136395
Estado padrão: desativada para todos os apps.
Força os pacotes em que é aplicada a não serem redimensionáveis.
|
FORCE_RESIZE_APP
ID da mudança:174042936
Estado padrão: desativada para todos os apps.
Força os pacotes aos quais a substituição é aplicada a serem redimensionáveis. Só é permitido
redimensionar janelas no modo de janela em tela cheia. Não é possível forçar o app
a entrar no modo de várias janelas redimensionáveis.
|
HIDE_PROP_ICUBINARY_DATA_PATH
ID da mudança:171979766
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps direcionados ao Android 12 (nível 31 da API) e mais recentes, remove o acesso à propriedade android.icu.impl.ICUBinary.dataPath .
|
IGNORE_ALLOW_BACKUP_IN_D2D
ID da mudança:183147249
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, a propriedade android:allowBackup é ignorada em apps durante migrações entre dispositivos (D2D).
|
IGNORE_FULL_BACKUP_CONTENT_IN_D2D
ID da mudança:180523564
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, as regras de inclusão e exclusão especificadas usando android:fullBackupContent são ignoradas durante as transferências entre dispositivos (D2D).
|
IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY
ID da mudança:169273070
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps direcionados ao Android 12 (API de nível 31) ou mais recentes, agora o método getSupportedLocales() retorna
uma lista de localidades vazia quando uma não estiver definida, em vez da localidade padrão do sistema.
|
IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE
ID da mudança:158482162
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, a permissão BACKUP necessária para o método
isBackupServiceActive() é aplicada no lado do serviço, e não no lado do cliente para o BackupManager .
|
KEYSTORE_OPERATION_CREATION_MAY_FAIL
ID da mudança:169897160
Estado padrão: desativada para todos os apps.
Quando ativada, a criação da operação de keystore pode falhar de acordo com
a nova estratégia de remoção. O keystore funcionava com base no pressuposto
de que a criação de operações criptográficas sempre ocorria corretamente.
No entanto, o back-end KeyMint tem um número limitado de slots de
operação.
Para que o número de slots de operação parecesse ser "infinito",
o daemon do Keystore removia as operações menos usadas recentemente caso
não houvesse um slot de operação disponível. Como resultado, boas operações
podiam ser encerradas de forma prematura. Isso abriu o AndroidKeystore para negação de serviço (DoS)
e livelocks indesejados. Por exemplo, se
vários apps fossem ativados ao mesmo tempo devido a otimizações de gerenciamento de
energia e tentassem executar operações de criptografia, eles passariam a
encerrar as operações uns dos outros, sem fazer nenhum progresso.
Para eliminar os livelocks e desestimular as tentativas de DoS, mudamos a estratégia de remoção, de forma que os clientes que usam poucos slots de operação de forma breve têm preferência. Consequentemente, operações únicas que
não ficam inativas por mais de cinco segundos quase sempre são concluídas
sem interrupções pela estratégia de remoção. Ainda existem algumas
operações relacionadas à criptografia do sistema de arquivos que podem remover até mesmo
essas operações, mas esses casos são extremamente raros. Como efeito colateral dessa nova estratégia de remoção, a criação pode apresentar falha se o cliente tiver um poder de remoção menor do que todas as operações existentes.
Estratégia de remoção: para encontrar um candidato adequado, computamos o malus do autor da chamada e de cada operação existente. O
malus é o inverso do poder de remoção (autor da chamada) ou da resistência
à remoção (operação atual). Para que o autor da chamada possa remover
uma operação, ele precisa encontrar uma operação com malus maior do que o
próprio. Para mais detalhes sobre a estratégia de remoção, consulte a implementação
de
operation.rs .
No Android 11 (nível 30 da API) e versões anteriores, o KeyStore2 procura um slot de operação livre no
daemon do Keystore. Para apps direcionados
ao Android 11 (nível 30 da API) e versões anteriores, ainda vai parecer que a inicialização de objetos de criptografia e
assinatura sempre funciona. No entanto, pode levar
mais tempo para realizar uma operação. Todas as versões do Android se beneficiam da programação de slots
mais justa e de ter uma chance melhor de concluir
uma operação.
|
LOCK_DOWN_CLOSE_SYSTEM_DIALOGS
ID da mudança:174664365
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, não é possível enviar Intent.ACTION_CLOSE_SYSTEM_DIALOGS ,
a menos que o app também tenha a permissão android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS . Essa é a versão mais restritiva de #DROP_CLOSE_SYSTEM_DIALOGS
que espera que o app pare de enviar a intent Intent.ACTION_CLOSE_SYSTEM_DIALOGS quando o app for iniciado no Android 12 (nível 31 da API) ou mais recente.
|
LOCK_DOWN_COLLAPSE_STATUS_BAR
ID da mudança:173031413
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps direcionados ao Android 12 (nível 31 da API) e mais recentes, a permissão Manifest.permission.STATUS_BAR é necessária para recolher os
painéis da barra de status por motivos de segurança. Isso estava sendo explorado por malwares para impedir o usuário de acessar notificações críticas.
|
LOW_POWER_EXCEPTIONS
ID da mudança:168936375
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps direcionados ao Android 12 (nível 31 da API) e mais recentes, todos os objetos LocationRequest marcados como de baixo custo de bateria
geram exceções caso o autor da chamada não tenha a permissão LOCATION_HARDWARE , em vez de descartar silenciosamente
a parte de baixo custo da solicitação.
|
MISSING_EXPORTED_FLAG
ID da mudança:150232615
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps direcionados ao Android 12 (nível 31 da API) e mais recentes, é necessário especificar um valor explícito para o
atributo android:exported sempre que um filtro de intent for definido.
Para saber mais sobre essa mudança, consulte Exportação mais segura de componentes.
|
NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE
ID da mudança:207557677
Estado padrão: ativada para apps destinados ao Android 12 (nível 32 da API) ou mais recentes.
Para apps direcionados ao Android 12 (nível 32 da API) e versões mais recentes, as alocações de heap nativas no processo AppZygote e nos descendentes
usam uma tag diferente de zero no byte mais significativo.
Para saber mais sobre essa mudança, consulte Ponteiros com tag.
|
NATIVE_HEAP_ZERO_INIT
ID da mudança:178038272
Estado padrão: desativada para todos os apps.
Ative a inicialização em zero automática para alocações de memória de heap nativas.
|
NATIVE_MEMTAG_ASYNC
ID da mudança:135772972
Estado padrão: desativada para todos os apps.
Ative a verificação assíncrona (ASYNC) de tags de memória nesse processo. Essa sinalização afeta apenas o hardware com suporte à extensão ARM
Memory Tagging Extension (MTE).
|
NATIVE_MEMTAG_SYNC
ID da mudança:177438394
Estado padrão: desativada para todos os apps.
Ativa a verificação síncrona (SYNC) de tags de memória nesse processo. Essa sinalização afeta apenas o hardware compatível com a extensão ARM
Memory Tagging Extension (MTE). Se NATIVE_MEMTAG_ASYNC e essa opção estiverem ativadas, essa opção terá
preferência e a MTE será ativada no modo SYNC.
|
NEVER_SANDBOX_DISPLAY_APIS
ID da mudança:184838306
Estado padrão: desativada para todos os apps.
Quando ativada, impede que o sandbox da API Display seja aplicado a uma
atividade com efeito letterbox ou SCM. As APIs Display vão continuar a fornecer limites de
DisplayArea.
Para saber mais sobre essa mudança, consulte a seção na página
Mudanças de comportamento do Android
12 sobre
Métodos de exibição que foram descontinuados.
|
NOTIFICATION_CANCELLATION_REASONS
ID da mudança:175319604
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Possibilita que listeners de notificação entendam motivos novos mais específicos de cancelamento.
|
NOTIFICATION_TRAMPOLINE_BLOCK
ID da mudança:167676448
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para melhorar o desempenho e a UX do app, os apps direcionados ao Android 12 não podem usar serviços nem broadcast receivers
como notificações em trampolim.
Para saber mais sobre essa mudança, consulte Notificações em trampolim não podem ser criadas em serviços ou broadcast receivers.
|
NULL_TELEPHONY_THROW_NO_CB
ID da mudança:182185642
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Usada para verificar se a versão do SDK de destino do processo atual é o Android 12 (nível 31 da API) ou mais recente.
Ela se aplica aos métodos a seguir:
|
OVERRIDE_MIN_ASPECT_RATIO
ID da mudança:174042980
Estado padrão: desativada para todos os apps.
Essa mudança é a responsável por todas as mudanças que forçam uma determinada proporção mínima. A ativação dela possibilita que as proporções mínimas a seguir
sejam aplicadas:
Quando essa mudança é ativada para um pacote de apps, a proporção mínima fornecida no manifesto do app é substituída pela maior proporção
ativada, a menos que o valor do manifesto seja maior.
|
OVERRIDE_MIN_ASPECT_RATIO_LARGE
ID da mudança:180326787
Estado padrão: desativada para todos os apps.
Quando OVERRIDE_MIN_ASPECT_RATIO também estiver ativado, ativar essa mudança para um pacote vai definir
a proporção mínima da atividade como um valor alto, conforme definido por OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE .
|
OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
ID da mudança:180326845
Estado padrão: desativada para todos os apps.
Quando OVERRIDE_MIN_ASPECT_RATIO também estiver ativado, ativar essa mudança para um pacote definirá
a proporção mínima da atividade como um valor médio, conforme definido por OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE .
|
PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED
ID da mudança:160794467
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps direcionados ao Android 12 (nível 31 da API) e mais recentes, é necessário especificar a mutabilidade de cada objeto PendingIntent
criado pelo app. Esse novo requisito melhora a segurança do app.
Para saber mais sobre essa mudança, consulte Intents pendentes precisam declarar mutabilidade.
|
PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT
ID da mudança:165573442
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Apps de administrador destinados ao Android 12 (nível 31 da API) e mais recentes não podem usar DevicePolicyManager.setPasswordQuality(ComponentName, int)
para definir a qualidade da senha na instância DevicePolicyManager recebida ao chamar DevicePolicyManager.getParentProfileInstance(ComponentName) .
Em vez disso, eles precisam usar DevicePolicyManager.setRequiredPasswordComplexity(int) para definir
requisitos de senha abrangentes em todo o dispositivo.
|
RATE_LIMIT_TOASTS
ID da mudança:174840628
Estado padrão: essa mudança não pode ser alternada. Ela só é registrada pelo framework de compatibilidade.
Ativa a limitação de taxa para o número de
chamadas Toast.show()
a fim de evitar sobrecarregar o usuário com muitos avisos em um
período limitado. Qualquer tentativa de mostrar mais avisos do que o permitido em um
determinado período faz com que o aviso seja descartado.
|
REQUIRE_EXACT_ALARM_PERMISSION
ID da mudança:171306433
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, os apps precisam ter a permissão Manifest.permission.SCHEDULE_EXACT_ALARM
para usar qualquer API e definir alarmes exatos, como setExactAndAllowWhileIdle(int, long, PendingIntent)
e setAlarmClock(AlarmClockInfo, PendingIntent) .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID
ID da mudança:182478738
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, os apps precisam ter a permissão Manifest.permission.READ_PHONE_STATE para
chamar TelephonyCallback.ActiveDataSubscriptionIdListener .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO
ID da mudança:184323934
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, os apps precisam ter a permissão Manifest.permission.READ_PHONE_STATE para
chamar TelephonyCallback.CellInfoListener .
|
REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO
ID da mudança:183164979
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, os apps precisam ter a permissão Manifest.permission.READ_PHONE_STATE para
chamar TelephonyCallback.DisplayInfoListener .
|
RESTRICT_ADB_BACKUP
ID da mudança:171032338
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps direcionados ao Android 12 (nível 31 da API) ou mais recentes, o adb backup é ativado automaticamente para apps executados como depuráveis, com o atributo android:debuggable definido como true (verdadeiro), e
indisponíveis para outros apps.
|
RESTRICT_DOMAINS
ID da mudança:175408749
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps direcionados ao Android 12 (nível 31 da API) e mais recentes, é necessário ter a forma atualizada da API de verificação de links de apps. Esse requisito significa que um app precisa declarar domínios em um filtro de intent que
inclua todos os itens abaixo:
android:autoVerify="true"
Intent.ACTION_VIEW
Intent.CATEGORY_BROWSABLE
Intet.CATEGORY_DEFAULT
- Somente
IntentFilter.SCHEME_HTTP e/ou IntentFilter.SCHEME_HTTPS , sem outros esquemas
Em versões anteriores do Android, Intent.CATEGORY_BROWSABLE não era um requisito, outros esquemas eram permitidos e a definição de autoVerify como true (verdadeiro) em qualquer filtro de intent fingiria
implicitamente que todos os filtros de intent estavam definidos como autoVerify="true" .
|
SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE
ID da mudança:151105954
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Para apps direcionados ao Android 12 (nível 31 da API) e mais recentes, impõe que todas as attributionTags enviadas aos métodos noteOp(String, int, String) ,
noteProxyOp(String, String) ,
e startOp(String, int, String) ,
sejam definidas no manifesto do pacote que é especificado como um parâmetro dos métodos.
Para que essa mudança funcione, é necessário a ativar
tanto no pacote que chama noteOp(String, int, String) quanto no pacote especificado como parâmetro do método.
|
SELINUX_LATEST_CHANGES
ID da mudança:143539591
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps destinados ao Android 12 (nível 31 da API) e mais recentes, ativa as mudanças mais recentes do SELinux. A desativação dessa mudança para apps destinados
ao Android 12 (nível 31 da API) ou mais recentes é automática e não tem efeito nenhum para apps que usam um ID de usuário compartilhado.
|
SETTINGS_API_V2
ID da mudança:178111421
Estado padrão: ativada para todos os apps.
A nova API de preferências de usuário para verificar domínios marcados como autoVerify=true nos filtros de intent do AndroidManifest.xml ainda não
foi implementada na prévia atual da plataforma. Por enquanto, é possível visualizar as mudanças nas novas preferências de usuários ativando esse ChangeId e usando os comandos
adb shell pm set-app-links-user-selection e semelhantes.
|
USE_SHORT_FGS_USAGE_INTERACTION_TIME
ID da mudança:183972877
Estado padrão: ativada para apps destinados ao Android 12 (nível 31 da API) ou mais recentes.
Em apps direcionados ao Android 12 (nível 31 da API) e mais recentes, determina se é necessário usar um tempo limite menor antes de elevar o bucket em espera para
ACTIVE (ativo) quando os apps iniciam um serviço em primeiro plano.
|