
Fases das atualizações obrigatórias de software da Apple
As atualizações obrigatórias de software usando gerenciamento de dispositivos envolvem cinco componentes principais:
Serviço de gerenciamento de dispositivos
O dispositivo
O usuário
O Serviço de Pesquisa de Software da Apple
O Catálogo de Atualização de Software da Apple
Fase 1
O serviço de gerenciamento de dispositivos monitora regularmente a Pesquisa de Software da Apple em busca de novas versões. Se encontrar uma, a solução usa a chave SupportedDevices
do catálogo e a compara à sua lista de dispositivos gerenciados para determinar a quais dispositivos a versão é aplicável.
O serviço de gerenciamento de dispositivos também deve assinar os relatórios de estado softwareupdate.*
e device.operating-system.*
para recuperar atualizações automaticamente quando algum desses valores for alterado.

Fase 2
O serviço de gerenciamento de dispositivos cria uma declaração com.apple.configuration.softwareupdate.enforcement.specific
com a versão detectada e define TargetLocalDateTime
e opcionalmente DetailsURL
de acordo com os requisitos organizacionais. O serviço de gerenciamento de dispositivos envia uma notificação push ao dispositivo para acionar a sincronização das declarações. Para obter mais informações, consulte Integrating Declarative Management (em inglês) no site Apple Developer.

Fase 3
Após a declaração se tornar ativa em um dispositivo, o sistema operacional se comunica com o Catálogo de Atualização de Software da Apple para recuperar o URL de download e começa a baixar a atualização, se os requisitos forem atendidos. O dispositivo apresenta uma notificação ao usuário e retorna o seguinte ao serviço de gerenciamento de dispositivos:
1. Um valor para softwareupdate.install-state
de “waiting”, o que indica que o processo para solicitar a atualização foi iniciado.
2. Um valor para softwareupdate.install-state
de “downloading”, o que indica que a atualização está sendo baixada pelo dispositivo.
Se um serviço de cache de conteúdo estiver disponível para o dispositivo, ele tentará baixar a atualização de software do cache de conteúdo.
Após o dispositivo baixar a atualização com sucesso, ele a prepara para instalação. Após a conclusão desse processo, o sistema operacional envia um valor de softwareupdate.install-state
de “prepared”
ao serviço de gerenciamento de dispositivos.

Fase 4
O dispositivo entra no período de notificação. Dependendo de quando a instalação ocorrer, essa notificação pode exibir textos e opções diferentes.

Fase 5
Se o usuário não instalar a atualização antes do prazo da atualização obrigatória, o dispositivo iniciará a instalação e enviará softwareupdate.install-state
com o valor de installing
ao serviço de gerenciamento de dispositivos. Antes de iniciar a instalação, o Mac com Apple Silicon entra em contato com o serviço de gerenciamento de dispositivos para recuperar o bootstrap token (se houver um disponível).
Se a atualização for bem-sucedida, o dispositivo será reiniciado. Se a atualização falhar, softwareupdate.install-state
com o valor de failed
é enviado. De qualquer maneira, o dispositivo enviar um relatório de estado softwareupdate.failure-reason
. Se a atualização for bem-sucedida, a chave da conta recebe o valor 0
.

Fase 6
O dispositivo envia as informações a seguir ao serviço de gerenciamento de dispositivos. Dependendo da atualização, alguns objetos podem não ter valores de retorno.
StatusDeviceOperatingSystemVersion: um relatório de estado da versão do sistema operacional do dispositivo.
StatusDeviceOperatingSystemBuildVersion: um relatório de estado do identificador da compilação do software do dispositivo.
StatusDeviceOperatingSystemSupplementalBuildVersion: um relatório de estado da versão do sistema operacional do dispositivo e do identificador da compilação da Proteção Rápida.
StatusDeviceOperatingSystemSupplementalExtraVersion: um relatório de estado do identificador da Proteção Rápida do sistema operacional do dispositivo.

Fase 7
O serviço de gerenciamento de dispositivos cancela a atribuição da declaração do dispositivo e envia uma notificação push a ele para iniciar a sincronização. Após a sincronização, o dispositivo remove a declaração.
