Не так много времени остаётся до официального релиза Android Q, поэтому разработчики вовсю трудятся над обновлением своих приложений под новую версию самой популярной мобильной операционной системы. Хотя большинство устройств так ещё и не обновилось до Android 9 Pie (API level 28), новые обязательные требования по целевому уровню API, о которых вы уже должны были слышать, вынудят вас перейти на API 29 в 2020 году.
Если вы ещё не обновили своё приложение, согласно требованиям API 28 – рекомендуем сделать это как можно скорее, так как Google дал время разработчикам обновить свои, находящиеся в разработке, приложения до августа 2020 года. А уже релизнутые приложения нужно обновить до ноября 2020 года.
Project Treble
Если вы хотите начать разработку приложения для следующей версии Android – вы уже можете протестировать своё приложение с помощью эмулятора Android Studio, или смартфона линейки Google Pixel. В этом году Google представила очередную разработку под названием Project Treble, которая позволит производителям быстрее выпускать обновления для приложений на Android. Вы можете установить официальную GSI-сборку Android Q на своё устройство, если оно совместимо с Project Treble.
Суть Project Treble заключается в модульности операционной системы, когда основа ОС отделена от установленных поверх неё прошивок. Это позволит производителям менять только основу ОС при выходе новых версий Android, что увеличит скорость выхода обновлений. В дополнение к тестам CTS, с помощью которых тестируются приложения, появился новый набор тестов VTS, или Vendor Test Suite.
С помощью тестов VTS производители смогут проверить, соответствуют ли их устройства требованиям Project Treble. Одна из самых главных деталей, которую необходимо проверять производителям устройств при выходе очередного обновления – это возможность загрузки GSI-сборки на устройства, совместимые с Project Treble. GSI-сборка – это чистая версия Android, которую используют производители устройств для проверки на наличие поддержки Project Treble, при выпуске нового смартфона. Однако Google хочет, чтобы разработчики использовали GSI-сборки для проверки своих приложений на совместимость с актуальной версией Android.
Например, если у вас смартфон Google Pixel, единственный способ протестировать своё приложение в будущей версии Android – это установить эмулятор Android Studio. Вы также можете воспользоваться специальным облачным сервисом для тестирования, ну или купить смартфон Google Pixel.
У каждого из этих способов есть свои преимущества и недостатки, но если у вас есть рабочее устройство, которое совместимо с Project Treble, и вы не хотите тратить деньги на покупку полной версии Android Studio, чтобы снять все ограничения, почему бы не установить GSI-сборку на своё устройство? Если ваше приложение будет хорошо работать на GSI-сборке, то оно, скорее всего, будет также работать на всех устройствах с этой версией Android.
Открытый код Android Q не будет доступен до августа 2020 года, поэтому официальные GSI-сборки – это единственный способ протестировать Android Q на смартфонах, которые не входят в линейку устройств Pixel.
Как работает Project Treble
Визуальное объяснение того, как теперь устроен Android «внутри»
Раньше, каждая версия операционной системы имела разный набор команд и фреймворков, из-за чего производителям смартфонов, а также мобильных чипсетов было необходимо переписывать весь свой софт практически с нуля. Google подошли к решению этой проблемы следующим образом: отныне Android, по своей сути, состоит из двух программных уровней, которые никак не зависят друг от друга. То есть, обновлением самого Android на устройствах с поддержкой Project Treble будет заниматься сама Google, а задача по обновлению фирменных программных надстроек ложиться на плечи производителя. В дальнейшей перспективе это может вовсе искоренить проблему задержки при выпуске обновлений Android для всех устройств.
Требования
Перед началом установки бета-версии Android Q необходимо проверить устройство на совместимость с Project Treble, и можно ли установить образ системы из загрузчика.
Что нужно сделать в-первую очередь?
- Разблокировать загрузчик, если он заблокирован. Некоторые смартфоны Samsung на Snapdragon, Huawei, Honor, Nokia (кроме Nokia не подойдут.
- На вашем ПК должны быть установлены последние утилиты и . Использование устаревших версий утилиты Fastboot может привести к различным ошибкам.
- Ваше устройство должно подходить под один из этих пунктов, чтобы поддерживать работу с Project Treble:
- Устройство работает на Android 9 Pie прямо из коробки. В случае, если вы купили устройство с предустановленным Android 9 Pie, то можете пропускать следующий шаг.
- При выходе на рынок, устройство работало под управлением Android 8.0 или 8.1 Oreo, но было обновлено до Android 9 Pie. Чуть ниже мы расскажем, как выяснить это.
Перед тем, как мы приступим к следующему шагу, мы должны вас предупредить, что при установке GSI-сборки придётся полностью форматировать ваше устройство. Поэтому сделайте резервную копию своих данных, прежде чем приступать к каким-либо действиям.
Ещё один важный момент, все GSI-сборки не проходят тесты CTS на момент своего выхода. Поэтому, если ваше приложение использует протокол SafetyNet для проверки устройства на прохождение CTS-теста – ничего не получится. Кроме того, эти сборки не рекомендуется использовать на постоянной основе, так как они полны различных багов. Google опубликовала список с известными на данный момент багами GSI-сборок у себя на сайте. В случае обнаружения новых багов, вы можете сообщить об этом Google, заполнив соответствующую форму (см. Google Issue Tracker).
Android 10 доступен для любого смартфона с поддержкой Project Treble
Еще в 2020 году Google представила Android Oreo и вместе с ним Project Treble как революционную архитектуру, которая будет должна навсегда решить проблему фрагментации смартфонов на базе Android, вследствие которой малый процент устройств получал актуальное обновление. Сегодня 2020 год, а фрагментация никуда не делась, но не спешите с выводами, Project Treble все же смог помочь разработчикам прошивок. Читайте наш материал, чтобы узнать о реальной перспективе в плане обновлений для вашего устройства.
Благодаря Project Treble стало возможным устанавливать прошивки на основе чистого Android без внесения изменений в загрузочный раздел на диске или в раздел производителя смартфона. Каждый производитель, который прошел сертификацию Google или который собирается ее пройти, обязан протестировать свои устройства на предмет соответствия требованиям Project Treble. Производители должны обеспечить возможность успешной загрузки и работы образа прошивки на базе AOSP с использованием архитектуры Treble.
Значит ли это, что для многих Android-смартфонов зажгли свет в конце туннеля?
Project Treble принес расцвет в область кастомных прошивок, которыми занимаются независимые разработчики, например такие, как с форума XDA Developers. Для тысяч и тысяч смартфонов каждый день создается огромное количество сторонних прошивок, которые используют архитектуру Treble для обеспечения появления актуальных версий Android даже на те смартфоны, которые уже не поддерживаются производителем. Новость состоит в том, что команде разработчиков Phhusson удалось представить первый кастомный образ Android 10 на любое устройство с поддержкой вышеописанной архитектуры.
Если у вас прямо сейчас на руках достаточно популярное устройство и вы интересуетесь вопросом кастомных прошивок, то вам переживать не о чем — для таких смартфонов всегда создают массу прошивок, предоставляя право выбора. А вот если ваш телефон не так уж и популярен, а разработчики не заинтересованы в создании прошивок под него, то Project Treble станет для вас самой актуальной возможностью, чтобы обновиться до Android 10.
К счастью, образ прошивки от Phhusson загружается на любом устройстве с Project Treble, а по факту — это все смартфоны выпущенные с Android 8.0+ из коробки. По этой причине, если вы владелец даже малоизвестного смартфона на базе процессора от MediaTek, вы все равно можете попытать удачу, установив прошивку от этой команды разработчиков.
Купить смартфон с поддержкой Project Treble вы можете в фирменном магазине Xiaomi Румиком
Пишите в комментарии, будет ли для вас интересен материал о том, как это сделать — если таких наберется достаточно, мы в очень скором времени напишем для вас инструкцию.
Проверяем совместимость с Project Treble
Откройте консоль на компьютере и введите следующую команду:
adb shell getprop ro.treble.enabled
Если в ответ придёт false, значит ваше устройство не совместимо с Project Treble. Так что дальше можете не продолжать. Если же ответ true, переходим к следующему шагу.
Затем вводим эти команды:
adb shell cat /system/etc/ld.config.28.txt | grep -A 20 “\[vendor\]”
В полученном ответе нужно найти раздел [vendor], а внутри этого раздела найти строку namespace.default.isolated. Если напротив стоит значение true, значит на ваше устройство можно установить GSI-сбоку поверх образа Android 9 Pie. Если же стоит значение false, тогда вы можете установить GSI-сборку только той версии, которая сейчас стоит на вашем устройстве.
Как это должно выглядеть на примере OnePlus 6T
Теперь вам нужно подтвердить, есть ли на вашем устройстве рут. Если ваше устройство было обновлено до Android 9 Pie, наличие рута необязательно, но он необходим для поддержки OTA-обновлений. Введите следующие команды, чтобы проверить, есть ли на вашем устройстве рут:
adb shell cat /proc/mounts | grep -q /dev/root && echo “system-as-root” || echo “non-system-as-root”
Теперь, когда вы убедились, что ваше устройство поддерживает Project Treble, вам нужно выяснить какую версию GSI-сборки скачивать, так как есть различные образы для различных архитектур. Введите следующую команду, чтобы узнать, какая архитектура используется на вашем устройстве:
adb shell getprop ro.product.cpu.abi
Выпишите на листок бумаги полученную информацию: она вам понадобится при скачивании GSI-сборки.
Последствия Project Treble
С точки зрения пользователя, обновления ОС будут прилетать точно так же, как и сейчас. Компании по-прежнему смогут перенаправлять обновления OTA, которые вы можете загрузить в фоновом режиме. Единственное, данный процесс будет происходить немного быстрее, а также увеличится срок поддержки устройств.
Благодаря Project Treble разработчики кастомных прошивок смогут гораздо быстрее оптимизировать ОС под определенный смартфон. Если раньше для этого требовались недели или даже месяцы, то сейчас это все можно сделать за пару дней.
Большинство пользователей ресурса XDA уже в восторге от перспектив. Разработчик под ником «OldDroid» назвал это прорывом. Ему удалось установить кастомную прошивку Android Oreo на Huawei Mate 9, для которого вообще не было ни одной сторонней прошивки Android Nougat.
Возможно, мы приближаемся ко времени, когда программное обеспечение Android ОС можно будет легко портировать на разные устройства, подобно тому, как Windows может работать с огромным набором аппаратных конфигураций с минимальными требованиями. Но на данный момент это не является целью Project Treble.
Скачиваем GSI-сборку
Ссылки на скачивание официальных GSI-сборок Android Q доступны на официальном сайте . Вам нужно скачать подходящую версию, в зависимости от архитектуры устройства, которую мы узнали из предыдущего шага. Скачивание может занять продолжительное время, если вы выбрали билд с мобильными сервисами Google. Рекомендуем скачивать именно такой вариант, так как вы сможете протестировать своё приложение сразу с установленными Google-сервисами.
Как только файл скачается, распакуйте его. Внутри должно быть 2 файла: system.img и vbmeta.img.
Зачем нужен Project Treble
Многие критикуют Android из-за того, что большинство топовых устройств все еще работают на устаревшей операционной системе, в то время как даже очень старый iPhone 5S получил обновление до iOS 11. Вся эта критика, отчасти, не обоснованная. Ведь компания Apple делает свою операционную систему только для iPhone, а Google для большого количества других производителей.
Но поскольку смартфоны приобретают все более важную роль в жизни человека: хранение огромного количества личных данных, финансовые реквизиты, фотографии и др., поэтому получать последние патчи безопасности и свежие обновления ОС очень важно.
Проблема медленного обновления связана с тем, что слоты программного обеспечения Android взаимодействуют с базовым аппаратным обеспечением телефона. Чтобы приложения могли работать на процессоре или использовать камеру, ОС должна взаимодействовать с подключенным оборудованием через слой абстракции аппаратного обеспечения (HAL).
Это очень важно, особенно если вы хотите, чтобы сторонние приложения из Play Store взаимодействовали с камерой любого телефона. HAL разработаны как низкоуровневый драйвер-агностик. Ниже находится ядро Linux, которое обрабатывает аппаратную связь между HAL и точными компонентами телефона. Он должен быть скомпилирован в зависимости от конкретного оборудования смартфона.
Проблема c Android 7.0 Nougat и более старыми версиями заключается в том, что не было разделения между аппаратным кодом низкого уровня у производителей и кодом операционной системы AOSP более высокого уровня. Поэтому компаниям приходилось ждать, пока каждый производитель процессоров оптимизирует новую ОС, а только потом уже сами компании дорабатывали их под свои смартфоны.
Project Treble предназначен как раз для решения этой проблемы. Он сможет отделять ОС Android от реализации аппаратного кода поставщика, что позволяет компании Google и OEM-производителям обновлять ОС без необходимости перенастраивать все компоненты аппаратного обеспечения нижнего уровня.
Понятное дело, что все производители хотят добавлять больше своих новых функции в ОС. А это все занимает много времени, даже не смотря на наличие Project Treble. Но, в любом случае, с данной структурой обновления будут выходить быстрее, т.к. время на оптимизацию ОС сократится в несколько раз.
Установка GSI-сборки
- Перезагрузите загрузчик устройства, используя следующую команду:adb reboot bootloader
- Далее нам нужно отключить Android Verified Boot (AVB). Вводим следующую команду:fastboot flash vbmeta vbmeta.img
- Форматируем систему:fastboot erase system
- Теперь можно начинать установку GSI-сборки Android Q:fastboot flash system system.img
- Как только установка завершится, удаляем пользовательские данные:fastboot -w
- Перезагружаем устройство:fastboot reboot
На этом всё, при дальнейшем запуске смартфона он должен запуститься с установленной GSI-сборкой. Стоит отметить, что Android Q beta 2 GSI не получается установить на OnePlus 6T, а вот на Xiaomi Mi 9 можно. Пишите свои мысли о новом Android Q в комментариях.
Как изменится ситуация с Project Treble
Проект изменит схему получения обновления, где нет промежуточных звеньев. В настоящее время система представляет собой цельную структуру, где для обновления требуется переписать большую часть кода. В Treble прошивка состоит из нескольких модулей.
Что бы произвести обновление, производителю электроники достаточно присоединить к прошивке собственную оболочку и проверить совместимость с аппаратными компонентами. Ожидать обновление драйверов не требуется, так как система корректно заработает на имеющихся драйверах и версии ядра Linux, с которым мобильное устройство вышло на рынок.
Кроме того в Google налаживает работу с поставщиками комплектующих, что бы включить часть закрытых драйверов в главную базу операционной системы. Благодаря этому процесс выхода новой версии Android станет проще, а некоторые программные компоненты и графические драйвера, получится обновлять через Google Play!
Project Treble — это решение
Причина, по которой производители испытывают затруднения, мешающие быстрому выпуску обновления, связанна с тем, что необходимо, чтобы операционная система взаимодействовала с оборудованием.
Традиционно это работало примерно так: ОС и низкоуровневое программное обеспечение были частью одного и того же кода. Поэтому, когда ОС обновилась, это низкоуровневое программное обеспечение, технически упомянутое как реализация производителя (Vendor implementation), также должно было обновиться. Это большая работа.
Android фрагментация — проблема
Одна из самых больших проблем Android как операционной системы — это то, что принято называть «фрагментация». Традиционное определение — это «процесс разбиения на небольшие или отдельные части», что напрямую отражается на Android: есть восемь различных версий Android в настоящее время, которые все еще используются на различных типах аппаратных средств.
Стандарт здесь, конечно же, установлен Apple с iPhone. Самая распространенная версия Android — почти двухлетней давности — Android 7.x (Nougat), почти три четверти всех устройств iOS, которые работают с последней версией (iOS 11).
Для сравнения: 28,1% телефонов под управлением Android 6.x (Marshmallow) и 28,5% на Android 7.x (Nougat) — это означает, что более половины телефонов Android работают на ОС двухлетней давности. На скудные 1,1 процента работает последняя версия Android 8.x (Oreo). Если говорить более откровенно, более 98 процентов устройств Android используют устаревшее программное обеспечение — более 36 процентов работают с пятилетним (или более старым) программным обеспечением.
К сожалению, причин этого много, но, как правило, их можно отнести к двум ключевым моментам: производителям и циклу обновления Google.