DSU Loader в Android 11 допомагає розробникам тестувати програми на стандартному Android

Android 11 постачатиметься з завантажувачем DSU у параметрах розробника, який дозволить автоматично завантажувати та встановлювати сумісні GSI! Читайте далі, щоб дізнатися більше!

Хороша екосистема додатків є одним із найважливіших стовпів успіху операційної системи. І Google, і Apple визнають цінність наявності хороших програм на своїх платформах, тому обидві компанії намагаються збалансувати потреби своїх користувачів і розробників програм. Користувачі продовжують наполягати на змінах в ОС, і хоча більшість людей загалом цінують нові функції, ці зміни не завжди приносять задоволення розробникам програм, оскільки вони можуть змінити багато основних функцій і поведінка. Для розробників, які постійно працюють над тим, щоб підтримувати актуальність своїх програм, робота з цими змінами доповнює їхній робочий список. Навіть якщо ці зміни безпосередньо не впливають на їхні додатки, розробникам все одно потрібно переконатися, що їхні додатки працюватимуть на новому оновленні ОС. Протягом багатьох років Google вносив багато змін, щоб спростити цей процес для розробників додатків Android, і тепер це нове Функція в Android 11 під назвою DSU Loader спростить розробникам програм тестування своїх програм на новому Android версії.

Він починається з Project Treble

Проект Treble, представлений в Android 8.0, є головним перебудова ОС Android. Мета проекту Treble полягала в тому, щоб розділити ОС Android на дві великі частини: фреймворк і реалізацію постачальника («постачальник» тут стосується виробника будь-якого запатентованого апаратного компонента, який міститься в пристрої, зазвичай посилаючись на кремній). Фреймворк ОС Android – це сама операційна система, включаючи всі системні програми, інтерфейс користувача та його компоненти, а також API, які є спільними для пристроїв Android. Реалізація постачальника містить HAL постачальника (рівні абстракції обладнання) і ядро ​​Linux і модулі ядра Linux.

Оскільки OEM-виробники постачають смартфони з багатьма різними апаратними компонентами від багатьох різних постачальників, їм доводиться виконувати багато роботи, щоб установити та запустити апаратне забезпечення в одній версії ОС Android. Тоді з кожним новим оновленням ОС Android їм доводиться робити ще більше, щоб переконатися, що їх обладнання працює з новою версією. Але з Project Treble, що стандартизує ABI (Application Binary Interface) між фреймворком ОС Android і HAL для певної версії Android, Виробники оригінального обладнання Android можуть розпочати тестування оновлень для своїх пристроїв, не чекаючи, поки виробники кремнію та інші виробники компонентів оновлять свою сторону код. Ця зміна помітно прискорилася спосіб обробки оновлень Android.

Це суть того, що Project Treble зробив для оновлень Android, але що важливіше для програми розробників тут є те, що Treble увімкнув використання Generic System Images (GSI) для сумісності тестування.

Поява GSI

Щоб OEM-виробники могли перевірити, чи правильно вони впровадили Project Treble, Google вимагає, щоб OEM мав змогу завантажувати чисту збірку Android із AOSP на пристрої. Ця чиста збірка Android називається Generic System Image або GSI. Якщо GSI завантажується та більшість основного обладнання працює належним чином, тоді виробник обладнання знає, що його пристрій відповідає вимогам Project Treble. Таким чином, початковою метою GSI було тестування сумісності з високими частотами, але, як ми бачили зі спільнотою розробників тут, у XDA-Developers, їх можна використовувати для інших цілей. Ми бачили, як GSIs по суті може дозволити пристроям із важким UX Android користуватися найновішою версією Android із робочими функціями протягом декількох днів після нового випуску. Але Google передбачає іншу мету GSI: дати розробникам додатків можливість тестувати свої додатки на новій версії Android на фізичному пристрої, яким вони вже володіють.

З Android 10 Google випустив власні збірки GSI для розробників. Google закріпив ідею про те, що розробники додатків повинні використовувати GSI для завантаження чистої збірки Android на власному апаратному забезпеченні, що полегшує перевірку поведінки їх додатків на стандартному Android. Таким чином, цей метод доповнив існуючі варіанти тестування сумісності додатків на стандартному Android без змін поведінки OEM, інші за допомогою смартфона Pixel, використання офіційного емулятора Android в Android Studio або розгортання збірок програми на примірнику пристрою в хмарі.

Незважаючи на всі зручності, які принесли GSI, їх встановлення все ще було громіздким процесом. Розробникам додатків може бути незручно встановлювати образ системи вручну на пристрої Android, оскільки зазвичай це те, з чим знайомі лише любителі або розробники ОС Android. Встановлення GSI потребувало перепрошивання образу системи через швидке завантаження, для чого потрібно вимкнути Android Verified Boot і розблокувати завантажувач. Розблокування завантажувача, у свою чергу, вимагає повного видалення даних користувача. І, як ми всі знаємо, не існує єдиного процесу чи посібника для розблокування завантажувача кожного пристрою Android, тому немає жодної послідовності. Наприклад, пристрої Samsung не мають швидкого завантаження, тоді як пристрої Xiaomi змушують вас пройти через кілька обручів, щоб розблокувати завантажувач. Це зручний безлад, який може розплутатися у щось простіше.

Тут на допомогу приходять динамічні оновлення системи.

Динамічні оновлення системи просто встановлюють GSI

Google зрозумів, що поточний метод встановлення GSI не є ідеальним рішенням, тому вони почали працювати над кращим рішенням. В Android 10 Google почав тестувати динамічні оновлення системи, або DSU. DSU — це новий спосіб тимчасово інсталювати GSI без необхідності використовувати команди швидкого завантаження для перезавантаження образу системи, перезаписуючи початкову інсталяцію. За допомогою DSU ви можете завантажитися в GSI, протестувати свою програму, а потім зручно перезавантажити її назад до початкової інсталяції, яка залишилася недоторканою.

Причина того, що DSU може інсталювати GSI, не торкаючись оригінальної інсталяції, полягає в тому, що він створює нові образи системи та розділів даних, які тимчасово зберігаються в /data/gsi. Потім ці образи монтуються під час завантаження, а не оригінальні розділи системи та даних. Оскільки телефону потрібен додатковий простір для зберігання цих нових, тимчасових зображень, ваш телефон повинен мати на борту «логічні розділи», які є розділами, які динамічно змінюють розмір. Логічні розділи — це нова система розділення простору користувача для Android, яка є обов’язковою для пристроїв, які запускаються з Android 10. Якщо ваш пристрій запускається з Android 10, він має підтримувати встановлення GSI через DSU.

В Android 10 усе, що вам потрібно зробити, щоб встановити GSI через DSU це змінити властивість системи, а потім запустити DynamicSystemUpdatesInstallationService надсилаючи намір із шляхом до GSI як додатковий намір.

Хоча цей процес може здатися незнайомим, він набагато легший і менш нав’язливий порівняно з використанням команди швидкого завантаження та вирішення проблем, пов’язаних із усім, включаючи оригінальну інсталяцію витертий. Вам потрібні певні знання ADB і наміри використовувати DSU, але це не повинно бути проблемою для більшості розробників програм. Тим не менш, немає причин, щоб процес не можна було зробити ще простішим. Крім того, є той факт, що встановлення GSI через DSU все одно потребує розблокування завантажувача, видаляючи всі дані користувача під час цього процесу. З цією метою Google вніс зміни, щоб покращити обидва аспекти встановлення GSI. В Android 11 вони взагалі усунули необхідність використовувати командний рядок для встановлення GSI. Крім того, вони також дозволили встановити GSI без розблокування завантажувача.

Завантажувач DSU в Android 11

DSU Loader — це новий інструмент, представлений у параметрах розробника Android 11, який дозволяє вам завантажити і встановити найновіший GSI від Google без необхідності вводити будь-які команди швидкого завантаження або ADB. Просто торкніться параметра DSU Loader у налаштуваннях, і з’явиться діалогове вікно зі списком підтримуваних GSI безпосередньо від Google. Ці підтримувані GSI базуватимуться на вашій поточній ОС та архітектурі, тому ви можете інсталювати лише ті GSI, які новіші за вашу версію ОС і відповідають вашій архітектурі SoC. Просто виберіть GSI, який ви хочете встановити, і він буде завантажений із серверів Google і автоматично встановлений у фоновому режимі.

DSU Loader на Android 11

За допомогою DSU Loader розробникам ніколи не потрібно торкатися командного рядка, щоб встановити GSI. Принаймні, це мрія, адже залишилося вирішити одне питання.

Шлях вперед

Наразі, щоб інсталювати GSI через DSU Loader, вам потрібен розблокований завантажувач. Хоча це може звести нанівець мету всього випробування, це не повинно бути так, і нам сказали, що це буде виправлено. Google планує, щоб користувачі могли завантажувати GSI, підписані Google, через DSU без необхідності розблокувати завантажувач. Насправді Google вимагає цього усі пристрої запуску Android 10 включають відкриті ключі Android Verified Boot GSI для Android 10, Android 11 і Android 12, підписаних Google. Включення відкритих ключів AVB у RAM-диск пристрою гарантує, що AVB не відхилить GSI, який ви намагаєтеся завантажити. Ось чому поточний метод передбачає розблокування завантажувача — шляхом прошивання порожнього образу vbmeta до розділу vbmeta ви вимикаєте AVB, щоб він не відхиляв GSI, який ви збираєтесь прошивати. Однак вимкнення AVB становить серйозний ризик для безпеки, оскільки це означає, що будь-які модифіковані розділ system/boot/product/vendor можна завантажити на пристрій, тому Google хоче зробити позбутися цієї вимоги.

Вимоги до запуску Android 10 GSI

Отже, коли можна очікувати завантаження GSI через DSU без необхідності розблокувати завантажувач або використовувати будь-які інструменти командного рядка? Сподіваємося, незабаром, оскільки Google згадав нам, що їм потрібно було виправити кілька недоліків у початковому попередньому перегляді розробника Android 11, перш ніж вони зможуть все це працювати належним чином. Рухаючись вперед, можна очікувати встановлення майбутніх GSI Developer Preview через DSU без необхідності розблокувати завантажувач. Можливо, коли Android 12 Developer Previews стане доступним, ви навіть зможете повністю завантажити його за допомогою DSU Loader у параметрах розробника Android 11. Для розробників додатків це означає, що у вас буде ще один спосіб перевірити свої додатки на фізичному апаратному забезпеченні з новою версією Android.