Usar o MDM para implantar atualizações de software em dispositivos Apple
O gerenciamento declarativo de dispositivos é o futuro do gerenciamento de dispositivos da Apple. Ele permite que o dispositivo aplique ajustes de forma assíncrona e relate o estado à solução MDM sem precisar de consultas constantes. Isso é ideal para desempenho e escalabilidade e também permite uma abordagem moderna para gerenciar atualizações de software. O gerenciamento declarativo de dispositivos fornece relatórios de status proativos de dispositivos conforme valores e configurações mudam. Dessa maneira, uma solução MDM sempre tem uma visão atualizada dos dispositivos sem precisar realizar consultas regulares.
Em vez de enviar um comando de atualização de software a um dispositivo para iniciar uma atualização, uma solução MDM declara o estado desejado da versão do sistema operacional e delega ao próprio dispositivo a tarefa de obter esse estado. Isso possibilita um processo de atualização de software gerenciado mais resiliente e maior transparência para o usuário.
A importância de utilizar as declarações de atualização de software
As soluções MDM devem utilizar as declarações de atualização de software sempre que possível. No entanto, os comandos e perfis de atualização de software legado ainda estão disponíveis e são compatíveis. Eles podem funcionar junto com declarações de atualização de software com as seguintes alterações:
Os atrasos definidos por uma declaração têm precedência em relação aos atrasos configurados por uma restrição.
Os ajustes da atualização automática de software no macOS aplicados por uma declaração têm precedência sobre os ajustes de atualização automática fornecidas em um perfil de configuração.
Quando houver uma atualização de software pendente configurada usando o gerenciamento declarativo de dispositivos, alguns comandos do MDM não são mais processados pelo cliente, retornando erros para comunicar que há uma declaração ativa no dispositivo, conforme mostrado na tabela a seguir:
Comando do MDM | Resultado | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Limitado: no macOS, atualizações baseadas no sistema operacional que não são gerenciadas podem aparecer na resposta do comando, por exemplo, no Xcode ou em ferramentas de linha de comando. | ||||||||||
| O dispositivo retorna um erro | ||||||||||
| O dispositivo retorna um vetor de estado vazio. |
Uso do Serviço de Pesquisa de Software da Apple
O Serviço de Pesquisa de Software da Apple (disponível no site https://gdmf.apple.com/v2/pmv) é o recurso oficial para obtenção de uma lista das atualizações principais, secundárias e Proteções Rápidas disponibilizadas publicamente. Ele permite que uma solução MDM consulte versões logo que são publicadas e calcule a aplicabilidade para cada modelo de hardware de maneira pontual e precisa.
A resposta JSON contém três listas de lançamentos de software disponíveis:
PublicAssetSets: esta lista contém os lançamentos mais recentes disponíveis para o público em geral para tentativas de atualização de versão secundária ou principal.
AssetSets: esta lista é um subconjunto de PublicAssetSets e contém todos os lançamentos disponíveis para que soluções MDM enviem para dispositivos supervisionados.
PublicRapidSecurityResponses: essa lista contém as versões de Proteções Rápidas disponíveis atualmente para dispositivos Apple.
Cada elemento da lista contém ProductVersion
(o número de versão de produto) e Build
(compilação) do sistema operacional, a PostingDate
(data de publicação) quando a versão foi publicada, a ExpirationDate
(data de validade) e uma lista de SupportedDevices
(dispositivos compatíveis) com o lançamento em questão. A lista de dispositivos corresponde aos valores de ProductName
do dispositivo, que são retornados na resposta de DeviceInformation
, o pedido de autenticação original (Authenticate
) ou em MachineInfo
quando o dispositivo tenta se registrar.
Geralmente, a data de validade é definida para 180 dias depois da data de publicação e define a data em que a assinatura da atualização expira. Não é possível instalar uma atualização expirada em dispositivos. Quando atualizações subsequentes são disponibilizadas, a data de validade das atualizações anteriores pode ser atualizada. Se uma data de validade não é fornecida, isso significa que a atualização ainda não expirou. Uma atualização expira apenas quando sua data de validade é uma data passada.
Os materiais são agrupados por plataforma do sistema operacional com as seguintes chaves:
iOS
(que inclui o iPadOS, tvOS e watchOS)macOS
xrOS
(que é o visionOS)
{
"AssetSets": {
"iOS": [
{
"ProductVersion": "17.5",
"Build": "21F6079",
"PostingDate": "2024-05-13",
"ExpirationDate": "2024-08-15",
"SupportedDevices": ["iPad11,1", "iPad11,2", "iPad11,3", "iPad11,4", "iPad11,6", "iPad11,7", "iPad12,1", "iPad12,2", "iPad13,1","iPad13,10", "iPad13,11", "iPad13,16", "iPad13,17", “iPad13,18", "iPad13,19", "iPad13,2", "iPad13,4", “iPad13,5", "iPad13,6", "iPad13,7", "iPad13,8", "iPad13,9", "iPad14,1", "iPad14,2", "iPad14,3", "iPad14,4", "iPad14,5", "iPad14,6", "iPad6,11", "iPad6,12", "iPad6,3", "iPad6,4", "iPad6,7", "iPad6,8", "iPad7,1", "iPad7,11", "iPad7,12", "iPad7,2", "iPad7,3", "iPad7,4", "iPad7,5", "iPad7,6", "iPad8,1", "iPad8,10", "iPad8,11", "iPad8,12", "iPad8,2", "iPad8,3", "iPad8,4", "iPad8,5", "iPad8,6", "iPad8,7", "iPad8,8", "iPad8,9", "iPhone10,1", "iPhone10,2", "iPhone10,3", "iPhone10,4", "iPhone10,5", "iPhone10,6", "iPhone11,2", "iPhone11,6", "iPhone11,8", "iPhone12,1", "iPhone12,3", "iPhone12,5", "iPhone12,8", "iPhone13,1", "iPhone13,2", "iPhone13,3", "iPhone13,4", "iPhone14,2", "iPhone14,3", "iPhone14,4", "iPhone14,5", "iPhone14,6", "iPhone14,7", "iPhone14,8", "iPhone15,2", "iPhone15,3"
]
},
Use a lista de versão do produto para determinar quais versões são posteriores à versão do sistema operacional atual do dispositivo e que são aplicáveis ao dispositivo específico. Forneça essa lista de versões ao administrador de MDM como possíveis candidatas de atualizações do sistema operacional.
Envio de relatório de estado para a solução MDM
Para receber atualizações de itens de estado conforme eles mudam, o servidor deve enviar uma declaração ManagementStatusSubscriptions
ao dispositivo para assinar cada relatório de estado. O dispositivo envia então um StatusReport
à solução MDM quando uma declaração ManagementStatusSubscriptions
se tornar ativa, se o status de um item assinado mudar, e a cada 24 horas.
Para fins de monitoramento de versões do sistema operacional e estado de atualização de software, a solução MDM pode querer assinar os seguintes relatórios de estado:
Relatório de estado | Description |
---|---|
| A versão de compilação do sistema operacional no dispositivo (por exemplo, 21E219). |
| A versão do sistema operacional em uso no dispositivo (por exemplo, 17.4). |
| As versões de compilação do sistema operacional e da Proteção Rápida em uso no dispositivo, por exemplo (20A123a ou 20F75c). |
| A versão da Proteção Rápida do sistema operacional em uso no dispositivo (por exemplo, a). |
| Dicionário que contém as versões de compilação e do sistema operacional da atualização de software pendente no dispositivo. |
| O estado da instalação da atualização de software, que tem os seguintes valores:
|
| Um dicionário com detalhes sobre o motivo de uma atualização de software pendente. A chave
|
| Detalhes sobre uma falha de atualização de software. Os detalhes incluem o número de vezes que a atualização do software falhou, a marca temporal da última falha e o motivo da falha. |
| O nome do programa beta registrado do dispositivo ou uma string vazia se não houver nenhum programa beta registrado. |
Além de outros relatórios, as soluções MDM também podem querer disponibilizar softwareupdate.install-reason
aos administradores para fins de suporte e para fornecer informações adicionais sobre como uma atualização foi acionada. Este dicionário pode ser usado para determinar se um usuário iniciou a atualização por conta própria, se a atualização aconteceu automaticamente ou se foi forçada por uma declaração de execução de atualização de software.
Solicitação de uma versão mínima específica do software durante o registro no MDM
Se um dispositivo for compatível com esse recurso, ele retornará uma chave MDM_CAN_REQUEST_SOFTWARE_UPDATE, definida como Verdadeira, nos dados MachineInfo
que envia na solicitação HTTP POST inicial para a solução MDM quando o dispositivo detectar uma configuração de gerenciamento no Assistente de Configuração. Para obter mais informações, consulte o arquivo MachineInfo yaml no repositório GitHub do gerenciamento de dispositivos Apple.
Além disso, os dispositivos fornecem os seguintes campos nos dados MachineInfo
(todas as strings) :
Chave | Sistema operacional mínimo compatível | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION | iOS 17 iPadOS 17 macOS 14 | A versão de compilação instalada no dispositivo (por exemplo, 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | A versão do sistema operacional instalado no dispositivo (por exemplo, 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | A versão da Proteção Rápida do dispositivo (se houver uma disponível). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | A versão extra da Proteção Rápida do dispositivo (se houver uma disponível). | |||||||||
SOFTWARE_UPDATE_DEVICE_ID | iOS 17.4 iPadOS 17.4 macOS 14.4 | O identificador do modelo do dispositivo usado para procurar atualizações disponíveis do sistema operacional no Serviço de Pesquisa de Software da Apple. |
Com base nas informações fornecidas, a solução MDM pode decidir se deve forçar a atualização do dispositivo.
Se a solução MDM decidir não forçar a atualização do software, ela simplesmente retorna o perfil de registro no MDM em resposta à solicitação HTTP POST, como normalmente faria para permitir que um registro no MDM prossiga.
Se a solução MDM decidir forçar a atualização do software, ela deve retornar uma resposta HTTP com o código de estado 403 e incluir um objeto JSON ou XML no corpo de resposta (o cabeçalho de resposta HTTP Content-Type precisa ser enviado para
application/json
ouapplication/xml
respectivamente).
Após receber essa resposta de erro, o dispositivo tenta atualizar para a versão especificada. Se a atualização for bem-sucedida, o dispositivo será reiniciado e o usuário deverá passar pelo Assistente de Configuração novamente. A solicitação POST MachineInfo
seguinte do dispositivo para a solução MDM mostra a versão atualizada do sistema operacional, e a solução MDM pode então prosseguir com o registro no MDM. Se a atualização falhar, um erro será mostrado ao usuário e o painel do Gerenciamento Remoto aparece novamente no Assistente de Configuração.
O esquema de resposta
está definido na tabela abaixo.
Chave | Tipo | Obrigatório | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| String | Sim | Deve ser enviado para | ||||||||
| String | Não | A descrição do erro. Usada apenas para fins de registro. | ||||||||
| String | Não | A descrição do erro adequada para exibição ao usuário. | ||||||||
| Dicionário | Sim | Dados adicionais especificando a atualização do software. |
O esquema de dicionário de detalhes
está definido aqui.
Chave | Tipo | Obrigatório | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| String | Sim | A versão do sistema operacional para a qual o dispositivo precisa ser atualizado. | ||||||||
| String | Não | A versão da compilação para a qual o dispositivo precisa ser atualizado. | ||||||||
| Dicionário | Não | O dispositivo se registra no programa beta, permitindo atualizações de software obrigatórias para versões do sistema operacional do programa beta. O dispositivo permanece no programa beta após a conclusão da atualização obrigatória do software. |
Se apenas a chave OSVersion
for especificada, o dispositivo baixa e instala automaticamente qualquer Proteção Rápida disponível para esta versão. Caso seja necessária uma compilação ou versão suplementar específica, a solução MDM também pode especificar opcionalmente a chave BuildVersion
. Por exemplo, para exigir que um dispositivo execute o iOS 16.5.1(a) antes do seu registro — apesar de iOS 16.5.1(c) já estar disponível — a solução MDM precisa definir OSVersion
como iOS 16.5.1 e BuildVersion
como 20F770750b.
Importante: Antes do macOS 15, apenas versões das listas PublicAssetSets
e PublicRapidSecurityResponses
podiam ser especificadas. No macOS 15, os recursos de AssetSets
também podem ser usados.
Ajustes do MDM para atualizações de software
A declaração com.apple.configuration.softwareupdate.settings
(disponível no iOS 18, iPadOS 18 e macOS 15) consiste em dicionários que podem ser usados para configurar vários aspectos do comportamento de atualização do software.
Depois que uma solução MDM distribui chaves diferentes em várias declarações, um dispositivo mescla os ajustes de todas as declarações de ajustes de atualização de software ativas. Caso a mesma chave seja configurada por múltiplas declarações, o comportamento da mesclagem depende da chave individual e é descrito nas tabelas abaixo.
Configuração de atualizações de software automáticas com MDM
A declaração com.apple.configuration.softwareupdate.settings
oferece um dicionário para definir o comportamento das atualizações automáticas de software em dispositivos iPhone, iPad e Mac supervisionados. Para obter mais informações, consulte Chaves do dicionário AutomaticActions.
Como o MDM lida com as Proteções Rápidas
As Proteções Rápidas sempre se aplicam à atualização mais recente de um sistema operacional, que se torna a versão de base da Proteção Rápida. Por exemplo, se um iPhone tiver o sistema operacional iOS 17.2 instalado, então a atualização suplementar 17.2 (a) é aplicada, se houver uma disponível. No iOS 18, iPadOS 18 e macOS 15, foram disponibilizadas atualizações combinadas, que permitem que uma atualização de software inclua qualquer Proteção Rápida.
Em versões anteriores ao iOS 18, iPadOS 18 e macOS 15, uma solução MDM pode precisar acionar duas atualizações de software para garantir que uma versão suplementar específica esteja presente: primeiro, ela deve atualizar o dispositivo para a versão base da atualização suplementar, se o dispositivo ainda não estiver nessa versão base (por exemplo, de iOS 17.1 para iOS 17.2); então ela deve atualizar a versão base para a versão suplementar (por exemplo, de iOS 17.2 para iOS 17.2 (a)).
No iOS 18, iPadOS 18 e macOS 15, uma solução MDM pode especificar:
A versão do sistema operacional (que instala automaticamente as Proteções Rápidas disponíveis)
A versão de compilação suplementar (que faz com que o dispositivo execute uma atualização necessária para a versão base automaticamente como parte do processo)
Essas duas abordagens se aplicam à configuração da obrigatoriedade da atualização de software e à versão mínima obrigatória durante o Registro de Dispositivo Automatizado.
A declaração com.apple.configuration.softwareupdate.settings
também pode ser usada para configurar o comportamento da Proteção Rápida em dispositivos iPhone, iPad e Mac supervisionados. Para obter mais informações, consulte Chaves do dicionário RapidSecurityResponse para iOS, iPadOS e macOS.
Adiamento de uma atualização com MDM
O adiamento de uma atualização principal ou secundária de software de 1 para 90 dias é feito usando a declaração com.apple.configuration.softwareupdate.settings
em dispositivos iPhone, iPad e Mac supervisionados.
Um adiamento configurado define quantos dias uma versão não é oferecida aos usuários após se tornar disponível publicamente. Independentemente de um adiamento configurado, uma solução MDM ainda pode impor uma atualização principal ou secundária de software ou Proteção Rápida específica em dispositivos gerenciados. Para obter mais informações, consulte Chaves do dicionário Deferrals para iOS e iPadOS e Chaves do dicionário Deferrals para macOS.
Nota: adiar atualizações de software também adia qualquer Proteção Rápida que dependa da nova versão.
Atualizações de software obrigatórias com MDM
Para impor uma atualização de software em um determinado momento em dispositivos registrados usando Registro de Dispositivo ou Registro de Dispositivo Automatizado, as soluções MDM podem a aplicar a declaração com.apple.configuration.softwareupdate.enforcement.specific
.
Se uma configuração especificar um sistema operacional ou uma versão de compilação que seja igual ou mais antiga que a versão atual do dispositivo, a configuração será ignorada.
Se houver várias configurações com um sistema operacional ou uma versão de compilação mais recente do que a versão atual do dispositivo, a configuração com a data e a hora de destino mais antigas será processada primeiro, e as outras permanecerão na fila. Quando o dispositivo é atualizado com uma nova versão, o conjunto de configurações é reprocessado para determinar qual será a próxima a ser processada.
Todas as Proteções Rápidas disponíveis são instaladas automaticamente se uma solução MDM definir apenas TargetOSVersion
. Para direcionar uma versão específica ou uma Proteção Rápida, uma solução MDM pode usar a chave TargetBuildVersion
além de especificar a compilação, incluindo o identificador da versão suplementar.
Para obter mais informações, consulte Chaves do dicionário de atualizações de software obrigatórias.
Notifications
A chave Notificações altera o comportamento de notificação padrão para mostrar apenas uma notificação 1 hora antes da atualização obrigatória e da contagem regressiva de reinicialização. Para obter mais informações, consulte Chave Notificações.
Uso do bootstrap token em computadores Mac com Apple Silicon
Para autorizar uma atualização de software obrigatória em um computador Mac supervisionado com Apple Silicon, uma solução MDM pode solicitar e guardar um bootstrap token. Isso permite uma experiência de atualização de software completamente integrada e evita a necessidade de interação do usuário como parte do processo. Quando necessário, o dispositivo usa GetBootstrapTokenRequest
para recuperar o bootstrap token da solução MDM.
Na primeira etapa, a solução MDM usa o comando SecurityInfo
para determinar se o dispositivo é compatível com um bootstrap token. Se a resposta incluir BootstrapTokenRequiredForSoftwareUpdate
definido como verdadeiro, o dispositivo pode usar um bootstrap token para autorizar uma atualização de software.
Para que um bootstrap seja criado, a solução MDM precisa adicionar com.apple.mdm.bootstraptoken
ao vetor ServerCapabilities
no perfil do MDM. Para obter mais informações, consulte MDM payload (em inglês) no site Apple Developer.
Depois que o dispositivo receber o bootstrap token, ele cria um bootstrap token na próxima vez que um usuário com token seguro ativado iniciar sessão. Em seguida, ele se comunica com o ponto final de verificação da solução MDM e guarda o token usando SetBootstrapTokenRequest
. Para obter mais informações, consulte Set Bootstrap Token (em inglês) no site Apple Developer.
Para obter a especificação de esquema mais atual, consulte o repositório GitHub do gerenciamento de dispositivos Apple.