O
No Android
Software atualizável do Documento de definição de compatibilidade (CDD)
exige que os dispositivos implementem
SystemUpdatePolicy
. SystemUpdatePolicy
permite que o app do proprietário do dispositivo (DO) faça o seguinte:
controlar a instalação de atualizações do sistema.
Notificar os proprietários do dispositivo
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 do carimbo de data/hora de quando a atualização OTA foi disponibilizada pela primeira vez
disponíveis. Os clientes OTA podem chamar
DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
para notificar os apps proprietários de dispositivos. Se o cliente OTA não souber se uma atualização
é um patch de segurança, o cliente OTA pode voltar a usar
DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
:
Se uma atualização não estiver disponível no momento, o cliente OTA informará isso ao
definindo o argumento updateReceivedTime
como -1
.
Recomendamos enviar notificações sempre que o cliente OTA perguntar
um servidor OTA ou quando um OTA é enviado ao 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 dispositivo dedicado (anteriormente 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 estar em conformidade com o CDD, o cliente de agência de viagens on-line precisa implementar estratégias políticas. O DO pode definir as políticas a seguir, que devem ser respeitados pelos subsistemas de atualização do sistema do dispositivo:
Os proprietários de dispositivos também podem
ajustado
períodos de congelamento (no Android 9 ou posterior) que congelam a versão do SO;
em períodos críticos, como feriados ou outros horários de pico. 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.
Implementar opções de instalação
O Android 9 introduz uma @SystemApi,
SystemUpdatePolicy.InstallationOption
, que foi projetado
para os clientes de atualização do sistema.
SystemUpdatePolicy.InstallationOption
serve como um wrapper.
para as políticas e os períodos de congelamento. Uma opção de instalação informa
aos clientes como agir em relação às atualizações do sistema recebidas e por quanto tempo essa ação
é válida, considerando a política de atualização do sistema atual ou qualquer período
de congelamento que possa ser definido. A opção de instalação pode ser uma das
seguintes:
-
TYPE_INSTALL_AUTOMATIC
: as atualizações de entrada do sistema são instaladas imediatamente e sem intervenção dos usuários disponíveis. O dispositivo é reinicializado automaticamente. -
TYPE_POSTPONE
: as atualizações do sistema recebidas podem ser adiadas por até 30 dias. Os usuários não podem instalar uma atualização manualmente. Os fabricantes de dispositivos podem escolher se vão bloquear ou não os patches de segurança. -
TYPE_PAUSE
: as atualizações do sistema podem ser adiadas indefinidamente até novo aviso. Os usuários não conseguem instalar uma atualização manualmente.TYPE_PAUSE
atrasa todas as atualizações, incluindo patches de segurança.
Os clientes de atualização do sistema podem consultar
SystemUpdatePolicy.InstallationOption
em
SystemUpdatePolicy.getInstallationOptionAt(long when)
,
em que when representa o tempo em que a opção de instalação
consultados em milissegundos desde o Período. Usando o método
SystemUpdatePolicy.getInstallationOptionAt(long when)
,
os clientes de atualização do sistema podem agir de acordo com a opção retornada até que o
tempo efetivo expire. Depois que a opção retornada expirar, o cliente poderá fazer outra consulta, usando um novo carimbo de data/hora, para a opção mais recente.
O cliente de atualização do sistema precisa detectar transmissões
DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED
caso toda a política seja atualizada.
Valide a política TYPE_PAUSE
É possível validar manualmente se a opção TYPE_PAUSE
funciona
em um sistema OTA.
A política TYPE_PAUSE está em vigor
Para validar se uma política TYPE_PAUSE
está funcionando:
-
Defina uma política automática e especifique
TYPE_PAUSE
. - Enquanto o relógio do sistema estiver no período de pausa, envie uma atualização OTA.
- Verifique se o dispositivo não aceita a atualização OTA e se o usuário não pode instalar a atualização manualmente.
- Se o dispositivo for A/B, reinicie-o e verifique se a reinicialização não acionou uma instalação automática da atualização.
A política TYPE_PAUSE expirou
Para validar se uma política TYPE_PAUSE
expirada está funcionando:
-
Defina uma política automática e especifique
TYPE_PAUSE
. - Enquanto o relógio do sistema estiver no período de pausa, envie uma atualização OTA.
- Aguarde o período de pausa expirar.
- Verifique se o dispositivo é reinicializado automaticamente e se a atualização OTA está realizadas após a reinicialização.