Новий проект під назвою Dynamic Android дозволить розробникам тестувати AOSP Android Q GSI на будь-якому пристрої під керуванням Android Q або новішої версії.
Завдяки Проект Trebleвиробники смартфонів надали оновлення програмного забезпечення Android Pie швидше, ніж вони змогли це зробити для оновлення Android Oreo, принаймні для флагманських смартфонів. Однак Google не хоче, щоб переваги Project Treble використовували тільки виробники оригінального обладнання. Компанія раніше висловив інтерес у випуску Generic System Image (GSI) Android Q для розробників, щоб їм не довелося покладатися на емулятори, використовуйте хмарний сервісабо дочекатися оновлення на власному пристрої, щоб протестувати програму на найновішому рівні API. Теоретично, випуск GSI повинен дозволити будь-якому розробнику з пристроєм, сумісним із Project Treble (спочатку Android 8.0 Oreo і вище, але тепер розглядаються лише пристрої з Android 9 Pie) для тестування найновішої версії Android версія. Усе, що потрібно зробити розробнику, — це встановити образ системи поверх наявного програмного забезпечення — не потрібно спеціального відновлення, завантажувального або постачальникського образу.
Однак у поточному процесі встановлення GSI є кілька проблем. По-перше, вам потрібен розблокований завантажувач, який не можливо на пристроях Huawei або Honor (без оплати плата), пристроїв Nokia HMD Global (за винятком Nokia 8) або пристроїв оператора США. Далі, процес буде важко для тих, хто не знайомий із перепрошивкою зображень за допомогою швидкого завантаження. Нарешті, для перепрошивання GSI зараз потрібно буде повністю очистити внутрішню пам’ять, що означає, що вам, ймовірно, знадобиться запасний пристрій для тестування. Наразі виробники оригінального обладнання використовують лише для перевірки сумісності з Project Treble на своїх пристроях перепрошивання GSI, а крім того, воно привабливе лише для завзятих користувальницькі ентузіасти ПЗУ. Новий проект Google "Dynamic Android" може змінити це.
Динамічний Android — легко тестуйте AOSP GSI на будь-якому пристрої Android Q
Протягом останніх кількох місяців Google працював над способом безпечного завантаження GSI без необхідності розблокувати завантажувач. Коротше кажучи, Google розробляє програму зі спеціальними дозволами, які дозволяють завантажувати GSI, резервувати для нього місце для зберігання та позначати GSI як завантажувальний. У цьому проекті є кілька компонентів, тому давайте обговоримо їх по черзі.
Динамічний Android і Android On Tap
До Android Q додаються дві нові служби: служби Dynamic Android і Android On Tap. У той час як Dynamic Android обробляє встановлення GSI, Android On Tap інформує системні програми за допомогою зворотних викликів і широкомовних намірів. Наприклад, Android On Tap сповіщає KeyguardManager, щоб користувач попросив підтвердити запит на встановлення, якщо пристрій захищено PIN-кодом, паролем або шаблоном. AOT також сповіщає користувача, коли він завантажується в GSI.
Відповідно до опису «DynamicAndroidManager», сервіс «пропонує механізм використання нового Android тимчасово." Після інсталяції пристрій може перезавантажитися у щойно встановленому образі з новоствореним /data. Перезавантаження в GSI повертає користувача до вихідного образу системи, але щойно встановлений образ і його дані просто вимикаються, а не видаляються. Проте, якщо користувач вирішить це зробити, GSI та його дані можна буде повністю видалити.
Джерела: [1], [2], [3], [4]
GSID
Демон GSI виділяє місце в розділі /data для зберігання образу GSI та його даних, а також для того, щоб зробити образ придатним для завантаження. Метадані GSI зберігаються в /metadata, а сам GSI та його дані зберігаються в /data/gsi. За замовчуванням GSID виділяє 8 ГБ даних користувача для щойно встановленого GSI. Загалом GSID шукає принаймні 40% вільного місця перед початком встановлення. Нарешті, демон не дозволяє користувачеві встановлювати GSI в GSI зі зрозумілих причин.
Джерела: [1], [2], [3], [4]
Безпека
Android Verified Boot (AVB) увімкнено для щойно встановленого образу системи EXT4 (system_gsi підключено до /system). Google також запровадив політику SELinux для нових служб. Нарешті, для інсталяції GSI програма повинна мати новий дозвіл MANAGE_DYNAMIC_ANDROID. Це дозвіл на рівні підпису, що означає, що програма має бути підписана OEM.
Джерела: [1], [2]
Команди ADB і Fastboot
GSI також можна буде встановити за допомогою нових команд ADB. Нова команда оболонки ADB gsi_tool дозволить користувачам вимикати, повторно вмикати, встановлювати та зберігати дані користувача, встановити та створити дані користувача, встановити та видалити дані користувача або перевірити статус установка.
gsi_tool - command-line tool for installing GSI images.
Usage:
gsi_tool <disable|install|wipe|status> [options]
disable Disable the currently installed GSI.
enable Enable a previously disabled GSI.
installInstall a new GSI. Specify the image sizewith
--gsi-size and the desired userdata size with
--userdata-size (the latter defaults to 8GiB)
--wipe (remove old gsi userdata first)
wipe Completely remove a GSI and its associated data
status Showstatus
Для керування GSI буде додано дві нові команди швидкого завантаження, хоча інсталяція швидкого завантаження не підтримується, оскільки вона не може монтувати дані користувача.
fastboot gsi wipe
fastboot gsi disable
Джерела: [1], [2]
Кому це буде вигідно?
Я хочу сказати, що розробники додатків зможуть скористатися перевагами Dynamic Android і Android On Tap, але я не зовсім впевнений. Хоча Google висловив інтерес саме до цього, немає гарантії, що ця функція буде доступна в кожному випуску Android Q від виробники обладнання, що не належать Google. Щоб скористатися цими перевагами на пристрої, програмному забезпеченню потрібна програма вибору GSI, яка підписана тим самим сертифікатом, що й ROM. Я також не впевнений, що встановлення GSI з ADB буде можливим без кореневого доступу ADB через політики SELinux.Оновлення: Новий здійснити підтверджує, що для використання GSI_tool знадобиться root ADB. Якщо це не призначено для розробників додатків для тестування своїх додатків на чистій збірці Android, то, швидше за все, це буде лише інженерам виробників оригінального обладнання, які бажають перевірити Compatibility Test Suite (CTS) і Vendor Test Suite (VTS) на своїх пристроїв.
Особлива подяка визнаному розробнику XDA luca020400 за його допомогу в цій статті.