Привет читателям Gamer Bay! Сегодня на повестке дня интересное событие: Google открыла исходный код для Google Pixel 6 и Google Pixel 6 Pro. Однако зачем и для чего? Ну-с, давайте поговорим. Заодно я, @BIONICLElover приготовил бонус с ликбезом по миру Open Source в Android. Эту новость написал наш подписчик. Вы также можете поделиться своей – написав её в нашей предложке.
Исходники дали не все. От некоторых библиотек исходники мы так и не увидим к сожалению. Энтузиасты пока будут использовать готовый образ раздела vendor, через время они сделают этот образ собираемым из того исходного кода, что есть, и проприетарных библиотек со стоковой прошивки. А исходники Linux-ядра на базе даже непонятно чего, если честно. Проблема в том, что я открыл исходный код ядра и… увидел собранное ядро, модули к нему и немного исходного кода, чтобы оно собиралось. Где сами исходники я не знаю (я искал, честно, подскажите в комментариях, если знаете, где исходники).
Пойдем к так называемым “деревьям” Google Pixel 6 (здесь и далее имеется ввиду обычная версия и Pro версия). По факту их два: common (общее) и специфичное (где лежат конфиги и исходный код под конкретное устройство для различных HAL’ов и т. д.). По факту специфичное дерево одно, но под несколько устройств, то есть под обычную и Pro версии. Google Pixel 6 имеет кодовое название oriole, а Google Pixel 6 Pro – raven. Однако судя по конфигам в дереве, оно еще предназначено для устройств под кодовыми названиями slider и whitefin (отсылка на Google Pixel 5 (redfin)?). В поле модели указано AOSP on Slider и AOSP on Whitefin соответственно. Может нас ждут еще два устройства из 6-го поколения? Или это наработки на 7-ое поколение? Учитывая, что есть общее дерево gs101, которое только подключается к только одному специфичному дереву… Все возможно 😀 Я думаю, мы однозначно увидим на данном CPU еще устройства.
Кстати, CPU. Google Pixel 6 имеет под капотом не Qualcomm Snapdragon, что печально. Возможно вы часто слышали про тот факт, что Google камеру портируют на различные устройства и снимает она лучше всех. Однако этим могли похвастаться преимущественно устройства на базе CPU от Qualcomm, так как Google Pixel’и были на их базе. Теперь возможно эта привилегия перейдет к устройствам Samsung на базе CPU Exinos.
И на последок, зачем это все? Отличный вопрос!
- Кастомные прошивки. Да, да, да, зачем кастомы на Pixel’ях, если есть замечательная стоковая прошивка, которая отлично работает? Ну-с, поддержка когда-нибудь закончится, это раз. Второе, есть люди, которым не нравится стоковая прошивка (чем – не знаю) или политика Google, для таких кастомы это свобода.
- Дерево устройства от Google это замечательный пример адаптации устройства на новую версию Android, тем самым задавая направление как адаптировать исходники от других устройств.
- Изучение исходного кода на ошибки и дыры в безопасности. Энтузиасты тоже не дремлют и изучают исходники, чтобы их как-то улучшить или починить, у Google есть для этого Gerrit и страница о баг-репортах.
Сказать по-честному, я просто высказал свои мысли и не более. В комментариях можете написать где я прав, а где – нет.
Здесь начинается бонус.
И у кого-то возникнет вопрос: исходники дают только Google? Есть производители, которые забивают и никакими исходниками не делится (привет непопулярным устройствам на MediaTek). Есть производители, которые предоставляют только исходники ядра Linux (из-за лицензии GPL, но некоторым китайским производителям вообще все равно). Некоторые предоставляют исходный код деревьев, ядер и даже некоторых библиотек, к примеру Google (в рамках проекта AOSP), Sony, Samsung (понимаю ваше удивление, но я еще больше удивился, когда нашлись исходники под мой Samsung Galaxy XCover GT-S5690 с 2.3.6 на борту, там даже инструкции были). Также Qualcomm (CAF – Code Aurora Forum) предоставляет некоторые исходники под свои процессоры, что позволяет старым устройствам буквально выживать и запускать новейшие версии Android.
Из интересного на моей памяти было несколько вещей.
- Как я уже говорил, Sony предоставляют исходники некоторых своих библиотек, в их число входит TimeKeep, который является аналогом проприетарной системе сохранения времени на устройствах Qualcomm. В какой-то момент старые устройства на базе CPU Qualcomm Snapdragon (к примеру из семейства msm8916, msm8952 или msm8974) отказались от старых и уже нерабочих библиотек в пользу TimeKeep. Я попробовал также сделать на Asus ZenFone 2 Laser ZE500KL (msm8916), работает без нареканий.
- Процессоры Snapdragon объединяются в “семейства” процессоров и используют общий исходный код. Таким примером могут служить msm8953 и msm8996, некоторые библиотеки друг от друга подходят и работают. К примеру, во времена Android 9 на Xiaomi Redmi Note 4X (msm8953) использовались аудио-библиотеки от Oneplus 3/3T (msm8996).
Что ж, спасибо, что прочитали! Надеюсь, было интересно и полезно.
Ваш Roker2
Комментарии