O
Documento de definição de compatibilidade do
Android (CDD) para software atualizável
exige que os dispositivos implementem a classe
SystemUpdatePolicy
. O SystemUpdatePolicy
permite que o app do proprietário do dispositivo (DO, na sigla em inglês), se
presente, controle a instalação de atualizações do sistema.
Notificar os proprietários dos dispositivos
O cliente over-the-air (OTA) precisa notificar os apps do proprietário do dispositivo sobre
as atualizações OTA recebidas usando uma API do sistema. O cliente OTA também precisa
incluir uma gravação de carimbo de data/hora quando a atualização OTA estiver disponível
pela primeira vez. Os clientes OTA podem chamar
DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
para notificar os apps de proprietários de dispositivos. Se o cliente OTA não souber se uma atualização
é um patch de segurança, ele poderá usar
DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
.
Se uma atualização não estiver disponível no momento, o cliente OTA vai informar isso
definindo o argumento updateReceivedTime
como -1
.
Recomendamos enviar notificações sempre que o cliente OTA consulta o
servidor OTA ou quando um OTA é enviado para o cliente. Também é possível enviar
notificações com mais frequência.
Política de atualização do sistema
O Android 9 melhora a capacidade dos proprietários de dispositivos de controlar atualizações, permitindo que eles adiem as atualizações OTA por até 90 dias. Com foco em soluções de dispositivos dedicados (antes chamadas de COSU), esse recurso permite que os proprietários pausem a versão do SO em execução em dispositivos durante períodos críticos, como feriados.
Para obedecer ao CDD, o cliente de OTA precisa implementar políticas comportamentais. O DO pode definir as seguintes políticas, que precisam ser respeitadas pelos subsistemas de atualização do sistema do dispositivo:
Os proprietários de dispositivos também podem
definir
períodos de congelamento (no Android 9 ou versões mais recentes) que congelam a versão do SO
em períodos críticos, como feriados ou outros momentos de grande demanda. O sistema
não instala atualizações OTA durante um período de congelamento. Recomendamos o uso de
SystemUpdatePolicy.InstallationOption
(consulte
a seção a seguir). No entanto, o cliente OTA também pode chamar
SystemUpdatePolicy.getFreezePeriods()
para verificar se o dispositivo está em um período de congelamento.