Usar MDM para implementar atualizações de software em dispositivos Apple
A gestão declarativa de dispositivos é o futuro da gestão de dispositivos Apple. Isto permite que o dispositivo aplique definições de forma assíncrona e comunique o estado à solução de gestão de dispositivos móveis (MDM) sem precisar de consultas constantes. Isto é ideal para desempenho e escalabilidade e também permite uma abordagem moderna para gerir atualizações de software. A gestão declarativa de dispositivos fornece relatórios de estado proativos de dispositivos conforme os valores e configurações mudam. Desta forma, uma solução MDM tem sempre uma visão atualizada dos dispositivos sem ter de 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 operativo e delega ao próprio dispositivo a tarefa de obter esse estado. Isto permite um processo de atualização de software gerido mais resiliente e maior transparência para o utilizador.
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. Podem funcionar em conjunto com declarações de atualização de software com as seguintes alterações:
Os adiamentos definidos por uma declaração têm precedência sobre os adiamentos configurados por uma restrição.
As definições de atualização de software automática no macOS aplicadas por uma declaração têm precedência sobre as definições de atualização automática fornecidas num perfil de configuração.
Quando houver uma atualização de software pendente configurada usando a gestão declarativa de dispositivos, alguns comandos do MDM deixam de ser processados pelo cliente, devolvendo erros para comunicar que há uma declaração ativa no dispositivo, conforme mostrado na tabela abaixo:
Comando de MDM | Resultado | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Limitado: no macOS, as atualizações baseadas no sistema operativo que não são geridas podem aparecer na resposta do comando (por exemplo, no Xcode ou na ferramentas da linha de comandos). | ||||||||||
| O dispositivo devolve um erro | ||||||||||
| O dispositivo devolve um vetor de estado vazio. |
Usar o serviço de procura de software Apple
O Apple Software Lookup Service (disponível em https://gdmf.apple.com/v2/pmv) é o recurso oficial para obter uma lista de atualizações secundárias, atualizações principais e respostas de segurança rápidas disponíveis publicamente. Permite que uma solução MDM envie consultas às versões assim que são publicadas e calcule a aplicabilidade para cada modelo de hardware de forma atempada e precisa.
A resposta JSON contém três listas de versões de software disponíveis:
PublicAssetSets: esta lista contém as últimas versões disponíveis para o público em geral se tentar fazer uma atualização secundária ou principal.
AssetSets: esta lista é um subconjunto de PublicAssetSets e contém todas as versões disponíveis para as soluções MDM enviarem para dispositivos supervisionados.
PublicRapidSecurityResponses: esta lista contém versões de resposta de segurança rápida que não são disponibilizadas atualmente para dispositivos Apple.
Cada elemento da lista contém o número de ProductVersion
e o Build
do sistema operativo, a PostingDate
quando a versão foi publicada, a ExpirationDate
e uma lista de SupportedDevices
com essa versão. A lista de dispositivos corresponde ao valor ProductName
do dispositivo, o que é devolvido no pedido Authenticate
inicial ou na resposta DeviceInformation
, ou em MachineInfo
quando o dispositivo se tentar registar.
A data de validade, normalmente definida para 180 dias após a data de publicação, define a data em que a assinatura da atualização caduca. Uma atualização caducada já não pode ser instalada nos dispositivos. Quando as atualizações subsequentes forem disponibilizadas, é possível que as datas de validade das versões anteriores sejam atualizadas. Se não for fornecida uma data de validade, a atualização ainda não caducou. Uma atualização somente caducou quando apresenta uma data de validade no passado.
Os recursos são agrupados por plataforma do sistema operativo utilizando 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ões de produtos para determinar que versões são superiores à versão atual do sistema operativo do dispositivo e que são aplicáveis a um dispositivo específico. Forneça essa lista de versões ao administrador MDM como potenciais candidatos a atualização do sistema operativo.
Enviar um relatório de estado para a solução MDM
Para receber atualizações de elementos de estado conforme estes mudam, o servidor deve enviar uma declaração ManagementStatusSubscriptions
ao dispositivo para assinar cada relatório de estado. Depois, o dispositivo envia um StatusReport
à solução MDM quando uma declaração ManagementStatusSubscriptions
se tornar ativa, se o estado de um elemento assinado mudar, e a cada 24 horas.
Para efeitos de monitorização de versões do sistema operativo 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 (Descrição) |
---|---|
| A versão da build do sistema operativo no dispositivo (por exemplo, 21E219). |
| A versão do sistema operativo em utilização no dispositivo (por exemplo, 17.4). |
| As versões de build do sistema operativo e da resposta de segurança rápida em utilização no dispositivo, por exemplo (20A123a ou 20F75c). |
| A versão da resposta de segurança rápida do sistema operativo em utilização no dispositivo (por exemplo, a). |
| Um dicionário que contém as versões da build e do sistema operativo da atualização de software que está 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 para 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, o carimbo temporal da última falha e o motivo da falha. |
| O nome do programa beta registado do dispositivo ou uma cadeia vazia se não houver nenhum programa beta registado. |
Para além de outros relatórios, as soluções MDM também podem querer disponibilizar softwareupdate.install-reason
aos administradores para efeitos 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 utilizador 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.
Pedir uma versão mínima específica do software durante o registo na solução MDM
Se um dispositivo for compatível com esta funcionalidade, devolve uma chave MDM_CAN_REQUEST_SOFTWARE_UPDATE, definida como “Verdadeiro”, nos dados MachineInfo
que envia no pedido HTTP POST inicial para a solução MDM quando o dispositivo detetar uma configuração de gestão no Assistente de Configuração. Encontrará mais informação sobre o ficheiro MachineInfo yaml no repositório GitHub de gestão de dispositivos Apple.
Além disso, os dispositivos fornecem os seguintes campos nos dados MachineInfo
(todas as cadeias):
Chave | Sistema operativo mínimo compatível | Description (Descrição) | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION (VERSÃO) | iOS 17 iPadOS 17 macOS 14 | A versão da build instalada no dispositivo (por exemplo, 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | A versão do sistema operativo instalado no dispositivo (por exemplo, 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | A versão da resposta de segurança rápida do dispositivo (se houver uma disponível). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | A versão extra da resposta de segurança 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 operativo no serviço de pesquisa de software Apple. |
Com base na informação fornecida, a solução MDM pode decidir forçar o dispositivo a atualizar.
Se a solução MDM decidir não forçar a atualização do software, devolve simplesmente o perfil de registo na MDM em resposta ao pedido HTTP POST, como faria normalmente para permitir que um registo na solução MDM avance.
Se a solução MDM decidir forçar a atualização do software, deve devolver 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 tem de ser enviado para
application/json
ouapplication/xml
, respetivamente).
Depois de receber esta resposta de erro, o dispositivo tenta atualizar a versão especificada. Se a atualização for bem-sucedida, o dispositivo será reiniciado e o utilizador deverá passar pelo Assistente de Configuração novamente. O pedido POST MachineInfo
seguinte do dispositivo para a solução MDM mostra a versão atualizada do sistema operativo, e a solução MDM pode então avançar com o registo na MDM. Se a atualização falhar, é mostrado um erro ao utilizador e o painel de gestão remota aparece novamente no Assistente de Configuração.
O esquema de resposta
está definido na tabela abaixo.
Chave | Tipo | Necessário | Description (Descrição) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Cadeia | Sim | Deve ser definido com | ||||||||
| Cadeia | Não | A descrição do erro. Usado apenas para efeitos de início de sessão. | ||||||||
| Cadeia | Não | A descrição do erro adequada para apresentação ao utilizador. | ||||||||
| Dicionário | Sim | Dados adicionados a especificar a atualização de software. |
O esquema de dicionário de detalhes
está definido aqui.
Chave | Tipo | Necessário | Description (Descrição) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Cadeia | Sim | A versão do sistema operativo para a qual o dispositivo tem de ser atualizado. | ||||||||
| Cadeia | Não | A versão da build para a qual o dispositivo tem de ser atualizado. | ||||||||
| Dicionário | Não | O dispositivo regista-se no programa beta, permitindo atualizações de software obrigatórias para versões do sistema operativo do programa beta. O dispositivo permanece no programa beta após a conclusão da atualização obrigatória do software. |
Se apenas for especificada a chave OSVersion
, o dispositivo descarrega e instala automaticamente quaisquer respostas de segurança rápidas disponíveis para esta versão. Caso seja necessária uma build 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 registo — apesar de iOS 16.5.1(c) já estar disponível — a solução MDM tem de definir OSVersion
como iOS 16.5.1 e BuildVersion
como 20F770750b.
Importante: Antes do macOS 15, apenas os lançamentos das listas PublicAssetSets
e PublicRapidSecurityResponses
podiam ser especificados. No macOS 15, os recursos de AssetSets
também podem ser usados.
Definições da 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 aspetos do comportamento das atualizações do software.
Depois de uma solução MDM distribuir diferentes chaves em várias declarações, um dispositivo combina as definições de todas as declarações de definições de atualização de software ativas. Caso a mesma chave seja configurada por múltiplas declarações, o comportamento da combinação depende da chave individual e está descrito nas tabelas abaixo.
Configurar 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. Encontrará informação adicional em Teclas de dicionário AutomaticActions.
Como a MDM lida com as respostas de segurança rápidas
As respostas rápidas de segurança aplicam-se sempre à atualização mais recente de um sistema operativo, que se torna a versão de base da resposta rápida de segurança. Por exemplo, se um iPhone tiver o sistema operativo iOS 17.2 instalado, 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 quaisquer respostas de segurança rápidas disponíveis.
Em versões anteriores ao iOS 18, iPadOS 18 e macOS 15, uma solução MDM pode ter de acionar duas atualizações de software para garantir que uma versão suplementar específica está presente: primeiro, é necessário atualizar o dispositivo para a versão base da atualização suplementar, se o dispositivo ainda não estiver na versão base (por exemplo, do iOS 17.1 para o iOS 17.2); depois é necessário atualizar a versão base para a versão suplementar (por exemplo, do iOS 17.2 para o iOS 17.2 (a)).
No iOS 18, iPadOS 18 e macOS 15, uma solução MDM pode especificar:
A versão do sistema operativo (que instala automaticamente as respostas de segurança 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)
Estas duas abordagens aplicam-se à configuração da aplicação da atualizações de software e à versão mínima obrigatória durante o registo automático de dispositivos.
A declaração com.apple.configuration.softwareupdate.settings
também pode ser usada para configurar o comportamento da resposta de segurança rápida em dispositivos iPhone, iPad e Mac supervisionados. Encontrará informação adicional em Chaves do dicionário RapidSecurityResponse para iOS, iPadOS e macOS..
Adiar uma atualização de software com MDM
Para adiar uma atualização de software entre 1 a 90 dias, é necessário usar a declaração com.apple.configuration.softwareupdate.settings
nos dispositivos iPhone, iPad e Mac supervisionados.
Um adiamento configurado define durante quantos dias um lançamento não é oferecido aos utilizadores depois de ter sido disponibilizado publicamente. Independentemente de um adiamento configurado, uma solução MDM ainda pode impor uma atualização principal ou secundária de software ou resposta de segurança rápida específica em dispositivos geridos. Encontrará mais informação em Chaves de dicionário de adiamentos para iOS e iPadOS e Chaves de dicionário de adiamentos para macOS
Nota: O adiamento das atualizações de software também adia as respostas de segurança rápida que estão dependentes dessa versão.
Aplicar atualizações de software com MDM
Para aplicar uma atualização de software por um determinado tempo em dispositivos registados usando o registo de dispositivos e o registo automático de dispositivos, as soluções MDM podem aplicar a declaração com.apple.configuration.softwareupdate.enforcement.specific
.
Se uma configuração especificar um sistema operativo ou uma versão da build que seja igual ou anterior à versão de dispositivo atual, a configuração é ignorada.
Se houver várias configurações com um sistema operativo 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 de espera. Quando o dispositivo é atualizado para uma nova versão, o conjunto de configurações é reprocessado para determinar qual será o próximo a ser processado.
Quaisquer respostas de segurança 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 resposta de segurança rápida, uma solução MDM pode usar a chave TargetBuildVersion
para além de especificar a versão, incluindo o identificador de versão suplementar.
Encontrará informação adicional em Aplicar chaves de dicionário de atualizações de software.
Notificações
A chave Notificações altera o comportamento de notificação predefinida para mostrar apenas uma notificação uma hora antes da atualização obrigatória e da contagem decrescente para o reinício. Encontrará informação adicional em Chave de notificações.
Usar o token bootstrap para computadores Mac com Apple Silicon
Para autorizar uma atualização de software aplicada num computador Mac com Apple Silicon supervisionado, uma solução MDM pode solicitar e depositar um token boostrap. Isto permite uma experiência de atualização de software completamente integrada e evita a necessidade de interação do utilizador como parte do processo. Quando necessário, o dispositivo usa um GetBootstrapTokenRequest
para obter o token bootstrap da solução MDM.
No primeiro passo, a solução MDM usa o comando SecurityInfo
para determinar se o dispositivo é compatível com um token bootstrap. Se a resposta incluir BootstrapTokenRequiredForSoftwareUpdate
definido como verdadeiro, o dispositivo pode usar um token bootstrap para autorizar uma atualização de software.
Para fazer com que um bootstrap seja criado, a solução MDM tem de adicionar com.apple.mdm.bootstraptoken
à matriz ServerCapabilities
no perfil MDM. Encontrará mais informação em MDM payload (em inglês) no site da Apple para Programadores.
Depois de o dispositivo receber o token bootstrap, cria um token bootstrap da próxima vez que um utilizador com token seguro iniciar sessão. Em seguida, comunica com o ponto terminal de verificação da solução MDM e guarda o token usando SetBootstrapTokenRequest
. Encontrará mais informação em Set Bootstrap Token (em inglês) no site da Apple para Programadores.
Para obter a especificação de esquema mais atual, consulte o repositório GitHub de gestão de dispositivos Apple.