
Використання керування пристроями для розгортання оновлень програмного забезпечення на пристроях Apple
Декларативне керування пристроями є майбутнім системи керування пристроями Apple. Цей підхід дає пристрою змогу асинхронно застосовувати параметри та звітувати про статус службі керування пристроями без постійного опитування. Ця система ідеально підходить для підвищення продуктивності та масштабованості, а також забезпечує вдосконалений підхід до керування оновленнями ПЗ. Декларативне керування пристроями забезпечує випереджувальний підхід до звітування про статус пристроїв під час змінення значень і конфігурацій. У такий спосіб служба керування пристроями завжди має актуальні відомості про пристрої, не застосовуючи регулярне опитування.
Замість надсилання команди ініціалізації оновлення ПЗ на пристрій, служба керування пристроями оголошує статус потрібної версії операційної системи та делегує виконання цього статусу пристрою. Це забезпечує стійкіший процес керованого оновлення ПЗ та більшу прозорість.
Важливість використання декларацій оновлення ПЗ
Служби керування пристроями повинні використовувати декларації оновлення програмного забезпечення, якщо це можливо. Однак попередні команди оновлення ПЗ та профілі досі доступні та підтримуються. Вони можуть працювати разом із деклараціями оновлення ПЗ, якщо застосовано такі зміни:
Визначені декларацією відтермінування мають пріоритет над відтермінуваннями, які сконфігуровані обмеженням.
Параметри автоматичних оновлень ПЗ в macOS, застосовані декларацією, мають пріоритет над параметрами автоматичних оновлень, які забезпечує профіль конфігурації.
Якщо наявне незастосоване оновлення ПЗ, яке операційна система налаштовує за допомогою декларативного керування пристроями, клієнт більше не може обробляти деякі команди керування пристроями і повертає помилки, що свідчать про наявність активної декларації на пристрої, як показано в таблиці нижче:
Команда керування пристроями | Результат | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Обмежено: на Mac некеровані оновлення на основі операційної системи можуть зʼявлятися у відповіді команди, наприклад в Xcode чи інструментах командного рядка. | ||||||||||
| Пристрій повертає помилку | ||||||||||
| Пристрій повертає пустий масив стану. | ||||||||||
Використання служби Apple Software Lookup
Сервіс Apple Software Lookup (доступний за адресою https://gdmf.apple.com/v2/pmv) є офіційним ресурсом з отримання списку загальнодоступних оновлень, удосконалень і швидких безпекових оновлень. Це дає змогу службі керування пристроями запитувати релізи, як тільки Apple їх опублікує, і точно та вчасно обчислювати придатність для кожної моделі обладнання.
Відповідь JSON містить три списки доступних випусків програмного забезпечення:
PublicAssetSets. Цей список містить останні випуски, доступні назагал для спроб оновлення чи модернізації.
AssetSets. Цей список є підмножиною
PublicAssetSetsі містить усі релізи, доступні службам керування пристроями для надсилання на пристрої.PublicRapidSecurityResponses. Цей список містить випуски швидких безпекових оновлень, доступні на даний момент для пристроїв Apple.
Кожен елемент у списку містить номер версії продукту ProductVersion та збірки операційної системи Build, дату публікації випуску PostingDate, термін дії ExpirationDate, а також список підтримуваних цим випуском пристроїв SupportedDevices. Список пристроїв відповідає значенню ProductName цього пристрою, який повертається у відповідь на DeviceInformation, початковий запит Authenticate або в MachineInfo, коли пристрій намагається зареєструватися.
Термін дії зазвичай становить 180 днів після дати публікації та визначає дату, до якої діє підпис оновлення. Протерміноване оновлення не можна інсталювати на пристрої. Коли випускаються наступні оновлення, термін дії попередніх оновлень може оновлюватися. Якщо термін дії не вказано, оновлення ще актуальне. Термін дії завершився лише в тому випадку, якщо дата завершення терміну дії в минулому.
Ресурси групуються за платформою операційної системи за допомогою таких ключів:
iOS(зокрема iPadOS, tvOS і watchOS)macOSvisionOS
{ "AssetSets": { "iOS": [ {"ProductVersion": "18.2.1","Build": "22C6161","PostingDate": "2025-01-06","ExpirationDate": "2025-04-17","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,10", "iPad14,11", "iPad14,2", "iPad14,3", "iPad14,4", "iPad14,5", "iPad14,6", "iPad14,8", "iPad14,9", "iPad16,1", "iPad16,2", "iPad16,3", "iPad16,4", "iPad16,5", "iPad16,6", "iPad7,11", "iPad7,12", "iPad8,1", "iPad8,10", "iPad8,11", "iPad8,12", "iPad8,2", "iPad8,3", "iPad8,4", "iPad8,5", "iPad8,6", "iPad8,7", "iPad8,8", "iPad8,9", "iPhone11,2", "iPhone11,4", "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", "iPhone15,4", "iPhone15,5", "iPhone16,1", "iPhone16,2", "iPhone17,1", "iPhone17,2", "iPhone17,3", "iPhone17,4" ] },Використовуйте список версій продукту, щоб визначити, які версії є новішими за актуальну версію операційної системи пристрою, і які застосовні до певного пристрою. Потім надайте цей список версій адміністратору служби керування пристроями як потенційні кандидати на оновлення операційної системи.
Надсилання звіту про стан до служби керування пристроями
Щоб отримувати оновлення про зміну стану елементів, сервер потрібно підписати на відповідні звіти декларацією ManagementStatusSubscriptions для пристрою. Відтак пристрій надсилає StatusReport службі керування пристроями, коли декларація ManagementStatusSubscriptions активується, якщо стан підписаного елемента змінюється, а також кожні 24 години.
З метою моніторингу версій операційної системи та статусу оновлень ПЗ службу керування пристроями можна підписати на наведені нижче звіти про стан.
Звіт про статус | Опис |
|---|---|
| Версія збірки операційної системи на пристрої (наприклад, 21E219). |
| Версія операційної системи пристрою (наприклад, 17.4). |
| Версії збірки операційної системи та швидких безпекових оновлень, наприклад 20A123a або 20F75c. |
| Версія швидкого безпекового оновлення операційної системи, яка використовується на пристрої (наприклад, a). |
| Словник, який містить версії оновлення ПЗ збірки та операційної системи, що очікують на інсталювання на пристрої. |
| Стан інсталювання оновлення ПЗ з такими значеннями:
|
| Словник із відомостями про причину очікування оновлення ПЗ. Ключ
|
| Надає відомості про помилку оновлення ПЗ. Відомості містять кількість помилок оновлення ПЗ, позначку часу останньої помилки, а також причину помилки. |
| Назва програми бета-тестування, у якій зареєстровано пристрій. Рядок пустий, якщо реєстрація відсутня. |
Окрім інших звітів, служби керування пристроями можуть дозволити адміністраторам доступ до softwareupdate.install-reason, щоб забезпечити кращу підтримку та докладніші відомості про ініціалізацію оновлення. За допомогою цього словника можна визначати, чи користувач сам ініціював оновлення, чи оновлення відбулося автоматично, або чи було воно запущене декларацією запровадження оновлення ПЗ.
Запит на певну мінімальну версію ПЗ під час реєстрації
Якщо пристрій підтримує цю функцію, він повертає ключ MDM_CAN_REQUEST_SOFTWARE_UPDATE зі значенням True (Так) у даних MachineInfo, які надсилаються в початковому запиті HTTP POST до служби керування пристроями, коли пристрій виявляє конфігурацію керування в Асистенті налаштування. Більше інформації наведено в розділі Файл MachineInfo yaml сховища GitHub для служби керування пристроями Apple.
Крім того, пристрої подають наведені нижче поля в даних MachineInfo (усі рядки):
Ключ | Мінімальні підтримувані версії операційної системи | Опис | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
VERSION | iOS 17 iPadOS 17 macOS 14 | Версія інстальованої на пристрої збірки (наприклад, 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | Версія операційної системи, інстальованої на пристрої (наприклад, 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | Версія швидкого безпекового оновлення пристрою (за наявності). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | Додаток до версії швидкого безпекового оновлення пристрою (за наявності). | |||||||||
SOFTWARE_UPDATE_DEVICE_ID | iOS 17.4 iPadOS 17.4 macOS 14.4 | Ідентифікатор моделі пристрою, який було використано для пошуку доступних версій операційної системи в службі Apple Software Lookup. | |||||||||
На основі поданої інформації служба керування пристроями зможе вирішити, чи потрібно запроваджувати оновлення на пристрої.
Якщо служба керування пристроями вирішить не запроваджувати оновлення ПЗ, вона як зазвичай просто поверне профіль реєстрації у відповідь на запит
HTTP POST, щоб дозволити реєстрацію.Якщо служба керування пристроями починає примусово виконувати оновлення ПЗ, вона має повернути відповідь
HTTPз кодом стану 403, а також додати обʼєкт JSON чи XML у текст відповіді (заголовком відповідіHTTP Content-Typeмає бутиapplication/jsonчиapplication/xmlвідповідно).
Отримавши відповідь про цю помилку, пристрій спробує оновитися до вказаної версії. Якщо оновлення завершиться успішно, пристрій перезапуститься, а користувачу потрібно буде знову скористатися асистентом налаштування. Наступний запит MachineInfo POST від пристрою до служби керування пристроями покаже оновлену версію операційної системи, і служба зможе продовжити реєстрацію. Якщо оновитися не вдасться, користувач побачить повідомлення про помилку, а в асистенті налаштування знову зʼявиться панель віддаленого керування.
Схема response визначається в таблиці нижче.
Ключ | Тип | Обов’язково | Опис | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Рядок | Так | Має бути вказано | ||||||||
| Рядок | Ні | Опис помилки. Використовується лише для журналювання. | ||||||||
| Рядок | Ні | Опис помилки, придатний для демонстрації користувачу. | ||||||||
| Словник | Так | Додаткові дані щодо оновлення ПЗ. | ||||||||
Схема словника details визначається тут.
Ключ | Тип | Обов’язково | Опис | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Рядок | Так | Версія операційної системи, до якої має оновитися пристрій. | ||||||||
| Рядок | Ні | Версія збірки, до якої має оновитися пристрій. | ||||||||
| Словник | Ні | Пристрій реєструється в програмі бета-тестування, що дає змогу запроваджувати оновлення ПЗ до бета-версій операційних систем. Пристрій залишається в програмі бета-тестувань після запровадження оновлення ПЗ. | ||||||||
Якщо вказано лише OSVersion, пристрій автоматично викачуватиме та інсталюватиме всі швидкі безпекові оновлення, доступні для цієї версії. Якщо є потреба в певній збірці чи допоміжній версії, служба керування пристроями може додатково вказати BuildVersion. Наприклад, щоб зобовʼязати пристрій використовувати iOS 16.5.1(a) до реєстрації, якщо вже доступна iOS 16.5.1(c), службі керування пристроями потрібно задати OSVersion як iOS 16.5.1 і BuildVersion як 20F770750b.
Важливо! У системах до macOS 15 можна вказувати випуски лише зі списків PublicAssetSets і PublicRapidSecurityResponses. У macOS 15 можна також використовувати ресурси з AssetSets.
Параметри керування пристроями для оновлення програмного забезпечення
Декларація com.apple.configuration.softwareupdate.settings (доступна в iOS 18, iPadOS 18, macOS 15 та tvOS 18.4 і новіших) складається зі словників, які можна використовувати для конфігурування різних аспектів поведінки оновлення ПЗ.
Після того як служба керування пристроями розповсюдить різні ключі серед кількох декларацій, пристрій обʼєднує параметри для всіх активних декларацій параметрів оновлень ПЗ. Якщо той самий ключ конфігурований кількома деклараціями, поведінка обʼєднання залежатиме від окремого ключа як описано в таблицях нижче.
Конфігурування автоматичних оновлень ПЗ через керування пристроями
Декларація com.apple.configuration.softwareupdate.settings пропонує словник для визначення поведінки автоматичного оновлення ПЗ на пристроях iPhone, iPad, Apple TV і Mac під наглядом. Докладну інформацію наведено в статті Ключі словника AutomaticActions.
Як служба керування пристроями обробляє швидкі безпекові оновлення
Швидкі безпекові оновлення завжди застосовуються до найновішого оновлення операційної системи, яка стає базовою версією швидкого безпекового оновлення. Наприклад, якщо на iPhone інстальовано версію операційної системи iOS 17.2, застосовується допоміжне оновлення 17.2 (a), якщо воно доступне. В iOS 18, iPadOS 18 і macOS 15 дозволено сукупні оновлення, що уможливлює наявність швидких безпекових оновлень у будь-якому оновленні ПЗ.
У системах до версій iOS 18, iPadOS 18 і macOS 15 службі керування пристроями може знадобитися ініціювати два окремі оновлення ПЗ, щоб забезпечити наявність потрібної допоміжної версії. Спочатку потрібно оновити пристрій до базової версії допоміжного оновлення, якщо цього ще не зроблено (наприклад, iOS 17.1 до iOS 17.2). Потім потрібно оновити базову версію до допоміжної версії (наприклад, iOS 17.2 до iOS 17.2 (a)).
В iOS 18, iPadOS 18 і macOS 15 служба керування пристроями може зазначити один з варіантів:
Версію операційної системи (що призведе до автоматичного інсталювання доступних швидких безпекових оновлень)
Версію допоміжної збірки (що в процесі призведе до автоматичного оновлення пристрою до базової версії)
Ці два підходи застосовуються до конфігурації запровадження оновлення ПЗ, а також до запровадженої мінімальної версії під час автоматичної реєстрації пристрою.
Декларацію com.apple.configuration.softwareupdate.settings також можна використовувати для настроювання поведінки швидких безпекових оновлень на пристроях iPhone, iPad і Mac під наглядом. Докладну інформацію наведено в статті Ключі словника RapidSecurityResponse для iOS, iPadOS і macOS.
Відкладення оновлення програмного забезпечення з керуванням пристроями
Відтермінування оновлень ПЗ чи системи від 1 до 90 днів виконується за допомогою декларації com.apple.configuration.softwareupdate.settings на пристроях iPhone, iPad і Mac під наглядом.
Конфігуроване відкладення визначає кількість днів після публічного випуску, через які організація запропонує користувачам випущену версію. Незалежно від конфігурованого відтермінування служба керування пристроями усе одно може запроваджувати певні оновлення ПЗ, модернізацію чи швидкі безпекові оновлення на пристроях під наглядом. Додаткову інформацію дивіться в розділах Ключі словника відтермінувань для iOS, iPadOS і tvOS і Ключі словника відтермінувань для macOS.
Примітка. Відтермінування оновлень ПЗ також відтерміновує швидкі безпекові оновлення, які залежать від тієї версії.
Примусове оновлення програмного забезпечення з керуванням пристроями
Щоб примусово запровадити оновлення ПЗ у певний час на пристроях, які зареєстровано шляхом реєстрації пристрою чи автоматизованої реєстрації пристрою, служба керування пристроями може застосувати декларацію com.apple.configuration.softwareupdate.enforcement.specific.
Якщо конфігурацію застосовується до пристрою, який вказує операційну систему або версію збірки, яка така сама чи старіша за поточну версію пристрою, пристрій повертає помилку в звіті про стан.
Якщо в новішій версії операційної системи чи збірки, ніж поточна, присутні кілька конфігурацій, конфігурація з найбільш ранньою цільовою датою та часом обробляється першою, а інші залишаються в черзі. Коли пристрій оновлюється до нової версії, відбувається повторна обробка набору конфігурацій для визначення черговості обробки. Під час цього процесу пристрій ігнорує всі наявні конфігурації, які зазначають версію, старішу або рівну поточній.
Операційна система автоматично інсталює всі доступні швидкі безпекові оновлення, якщо служба керування пристроями визначає лише TargetOSVersion. Щоб вибрати певний випуск чи швидке безпекове оновлення, служба керування пристроями може використовувати ключ TargetBuildVersion додатково до визначення збірки, включно з ідентифікатором допоміжної версії.
Докладніше читайте в статті Ключі словника запровадження оновлень ПЗ.
Сповіщення
Ключ Notifications (Сповіщення) змінює стандартну поведінку сповіщень так, щоб відображати сповіщення за 1 годину до часу запровадження і початку відліку до перезавантаження. Докладну інформацію наведено в статті Ключ Notifications (Сповіщення).
Використання токена самозавантаження для компʼютерів Mac із процесором Apple
Щоб авторизувати примусове оновлення ПЗ на компʼютері Mac із Apple silicon під наглядом, служба керування пристроями може запитувати депонування токена самозавантаження. Це забезпечує абсолютно безперешкодний процес оновлення ПЗ і дає змогу уникнути взаємодії користувача під час цього процесу. За потреби пристрій використовує GetBootstrapTokenRequest, щоб отримувати токен самозавантаження від служби керування пристроями.
Під час першого кроку служба керування пристроями визначає, чи підтримує пристрій токен самозавантаження за допомогою команди SecurityInfo. Якщо відповідь містить BootstrapTokenRequiredForSoftwareUpdate зі значенням true, пристрій може використовувати токен самозавантаження для авторизації оновлення ПЗ.
Щоб створити токен самозавантаження, службі керування пристроями потрібно додати com.apple.mdm.bootstraptoken до масиву ServerCapabilities у профілі керування пристроями. Більше інформації наведено в статті Профіль керування пристроями на вебсайті Apple Developer.
Після того як пристрій отримує токен самозавантаження, він створює токен самозавантаження, коли наступного разу користувач із підтримкою токена безпеки входить у систему. Відтак пристрій звертається до кінцевої точки реєстрації служби керування пристроями і депонує токен за допомогою SetBootstrapTokenRequest. Більше інформації наведено в статті Налаштування токена самозавантаження на вебсайті Apple Developer.
Найбільш актуальну специфікацію схеми наведено в розділі сховища GitHub для рішення керування пристроями Apple.