Зачем Treble и Apex?

Зачем Treble и Apex?

Минько Дмитрий aka Roker2

Здравствуйте.

Хочу поговорить на тему "Зачем Treble и Apex?"

Введение

Все мы знаем, что с появлением Treble появился раздел vendor, который ранее являлся папкой в разделе system. Также появился Generic System Image (GSI) - относительно универсальная прошивка, которая попросту является разделом system. Это упростило переход на кастом на устройствах, где еще нет собранных кастомов из исходников. Также появилось разделение на два вида устройств: A-Only, где никакие разделы не дублируются, и A/B, где разделы системы дублируются, тем самым позволяя установить обновление на вторые разделы, которые активируются после перезагрузки.

С приходом Apex появилась возможность обновления некоторых библиотек безопасности. В принципе, не очень большой бум (пока что).

С Android 12, если мне память не изменяет, появится Generic Kernel Image (GKI), т. е. универсальное ядро, которое будет подключать модули ядра (.ko).

Apex + GKI = Love

И так, почему Apex для обновления библиотек звука, GPU, графики и т. д. сейчас не подходит? Потому что сейчас ядро едино, оно не разбито на отдельные модули (производители усмехнутся, но да ладно). Если обновляешь библиотеки, то иногда приходится обновлять драйвер и наоборот (привет lavender с новыми блобами камеры на Android P). Т. е. все равно надо обновить прошивку целиком. И тут приходит на помощь GKI, который является идеальным дополнением к системе Apex. Почему бы просто драйвер не скомпилировать в отдельный .ko модуль и не поместить в пакет Apex? Таким образом обновятся и библиотеки, и драйвер одним махом. В итоге производителю вообще не требуется обновлять прошивку целиком, можно просто обновить маааленький кусочек (кстати так и обновляют приложения в различных оболочках через Play Market или своими путями, как это сделано в MIUI). Как говорится, гениально.

Кастомы

Окей, а что с кастомами делать? Как там обновлять библиотеки и модули ядра? И вот тут я хочу приплести всеми известный F-Droid - альтернатива маркету с Open Source приложениями. Зачем? Затем, что наверняка появится аналогичный маркет, но для Apex-пакетов, в которых будет все необходимое. Я даже не сомневаюсь в том, что мы сами будем выбирать какие поставить библиотеки, скажем, звука: родные, от OnePlus или вообще от CAF. Будут просто репозитории для конкретных устройств, как в F-Droid сейчас и сделано, где мы сможем выбрать библиотеки.

Кастомные ядра

Еще приятным бонусом к GKI будет более нормальное понятие ядра в плане, что с ядром будет меньше проблем и оно будет mainline (т. е. будет самое новейшее с минимальным количеством изменений). Классно? Да. И будет проще с кастомными ядрами, так как они будут универсальными и можно будет накатить на любое устройство с поддержкой GKI. Примером на обычном Линуксе может служить комбинация ядра Zen и дистрибутива Arch.

Ara

И это все ведет не только к тому, что фрагментация понизится, но и вернется к жизни Project Ara (как я надеюсь). В 2016-ом году Android вообще не был модульным от слова совсем. Ведь для подключения нового устройства требуется установить библиотеки и драйвер, а таких инструментов в Android вообще в то время не было. Проект по этой причине скорее всего и прикрыли. Но есть у меня надежда, что с Android 12 или Android 13 Project Ara воскреснет и выйдет на рынок. В итоге, смартфон станет эдаким подобием ПК.

Минусы

Вполне логично, что исходники модулей ядра никогда не будут Open Source. Почему? Потому что они перестают быть составляющей ядра Linux, производные которого обязаны по лицензии быть открытыми (имеется ввиду в виде исходников). Таким образом придется писать свои модули либо использовать модули, которые были собраны производителем. Я веду к тому, что эти модули запросто могут не работать на кастомах и испортить жизнь кастомщикам.

Выводы

Устройствам в будущем будет проще перейти на кастомы, возможно даже будут универсальны, тем самым прошивки реально станут неким подобием дистрибутивов Линукс. Возможно произойдет еще один бум появления большого количества прошивок разной степени стабильности и с разным дизайном, останутся в этой битве только самые стойкие. Фрагментация сильно понизится из-за универсальности ядра и прошивки, тем самым можно будет вести несколько похожих устройств с одной системой и с разным железом (имеется ввиду не процессор, а камера, динамики и т. д.). Таким образом для обычных людей все идет к лучшему, а для кастомщиков еще далеко неясно, что будет дальше...


Спасибо, что прочитали статью. Извините за ошибки, если они есть.

Ваш Roker2.

Report Page