Android с открытым исходным кодом: что скрывается за AOSP

Запрос «android открытый код» обычно означает одно из двух: пользователь хочет скачать исходники Android через проект AOSP (Android Open Source Project) или разобраться, какие части системы действительно открыты, а какие остаются закрытой собственностью Google. Ответ на первый вопрос — репозиторий source.android.com и инструмент repo, на второй — понимание структуры лицензий, о которой пойдёт речь ниже.

Открытость кода — фундаментальное свойство Android, отличающее его от iOS. Благодаря этому существуют кастомные прошивки вроде LineageOS, а производители смартфонов могут адаптировать систему под своё железо. Но открытость не абсолютна: часть компонентов распространяется под проприетарными условиями.

Что такое AOSP и что входит в открытый код Android

AOSP — официальный проект с открытым исходным кодом, который Google ведёт с момента выхода первой версии Android. В него входит ядро системы, фреймворки, системные приложения, инструменты сборки и документация. Именно эту кодовую базу производители берут за основу своих прошивок.

В открытую часть входят:

  • 📦 Ядро Linux с модификациями для мобильных устройств
  • ⚙️ Системные библиотеки и Android Runtime (ART)
  • 🏗️ Application Framework — API для разработчиков приложений
  • 📱 Базовые системные приложения: звонилка, контакты, launcher
  • 🔧 Инструменты разработки: adb, fastboot, эмулятор

Важно понимать: AOSP — это «голая» система без фирменных сервисов Google. Смартфон на чистом AOSP не будет иметь Google Play, Gmail, карт и push-уведомлений через инфраструктуру Google.

Какие компоненты Android остаются закрытыми

Не весь код на вашем смартфоне открыт. Значительная часть функций, к которым привыкли пользователи, реализована проприетарными компонентами.

КомпонентСтатусЛицензия
Ядро LinuxОткрытыйGPLv2
Фреймворк и системаОткрытыйApache 2.0
Google Mobile Services (GMS)ЗакрытыйПроприетарная
Драйверы производителей чиповЧастично закрытыйБинарные blob-файлы
Прошивки производителей (One UI, MIUI)Частично открытыйСмешанная

Самое важное различие: Android как платформа открыт, но экосистема Google поверх него — нет. Производители, желающие предустанавливать Play Store, обязаны получать лицензию GMS и проходить сертификацию совместимости.

⚠️ Внимание: бинарные драйверы (GPU, модем, камера) часто распространяются только в закрытом виде. Именно поэтому кастомные прошивки для многих устройств используют извлечённые из стоковой прошивки blob-файлы, а не собирают драйверы из исходников.

Лицензии: Apache 2.0 и GPLv2

Открытый код Android использует две основные лицензии, и разница между ними имеет практическое значение.

Apache License 2.0 покрывает большую часть пользовательского пространства — фреймворки, библиотеки, приложения. Она разрешительная: код можно изменять, использовать в коммерческих продуктах и не публиковать свои модификации. Именно поэтому производители могут создавать закрытые оболочки поверх AOSP.

GPLv2 применяется к ядру Linux. Это копилефт-лицензия: любой, кто распространяет модифицированное ядро, обязан опубликовать исходники изменений. Поэтому производители смартфонов выкладывают исходники ядра своих устройств — обычно на порталах вроде opensource.samsung.com или в репозиториях на GitHub.

Где скачать исходный код Android

Официальный источник — сайт проекта source.android.com. Код хранится в сотнях Git-репозиториев, поэтому для загрузки используется специальная утилита repo, написанная на Python.

Порядок действий для загрузки ветки AOSP выглядит так:

mkdir aosp && cd aosp

repo init -u https://android.googlesource.com/platform/manifest

repo sync

Перед этим потребуется Linux-система (официально поддерживается Ubuntu LTS) и заметный объём свободного места на диске — полное дерево исходников вместе с историей занимает десятки гигабайт, а для сборки нужно ещё больше. Точные системные требования меняются от версии к версии, поэтому сверяйтесь с актуальной документацией на сайте проекта.

☑️ Подготовка к загрузке AOSP

Выполнено: 0 / 5

Как собрать Android из исходников

После загрузки кода систему можно скомпилировать. Процесс требователен к ресурсам: рекомендуется многоядерный процессор и большой объём оперативной памяти, иначе сборка займёт много часов.

Общая последовательность такова:

  • 🛠️ Выполнить source build/envsetup.sh для настройки окружения
  • 🎯 Выбрать цель командой lunch — например, сборку для эмулятора или конкретного устройства
  • ⚡ Запустить компиляцию командой make с указанием числа потоков
  • 💾 Получить готовые образы в каталоге out/target/product/

Для реальных устройств дополнительно понадобятся проприетарные бинарные драйверы — для поддерживаемых моделей Pixel Google публикует их отдельно. Без этих файлов собранная прошивка не сможет полноценно работать с железом.

📊 Зачем вам исходный код Android?
Изучение устройства системы
Сборка кастомной прошивки
Разработка приложений
Исследование безопасности

Кастомные прошивки на базе открытого кода

Открытость AOSP породила целую экосистему альтернативных прошивок. Наиболее известная — LineageOS, наследница CyanogenMod. Такие проекты добавляют функции, которых нет в стоковом Android, продлевают поддержку старых устройств и убирают зависимость от сервисов Google.

Помимо LineageOS существуют специализированные сборки: ориентированные на приватность (GrapheneOS для Pixel), минималистичные, построенные вокруг проекта /e/OS. Все они используют открытый код AOSP как фундамент.

⚠️ Внимание: установка кастомной прошивки требует разблокировки загрузчика, что на большинстве устройств приводит к потере гарантии и удалению данных. Возможность разблокировки зависит от производителя и даже региона — уточняйте политику для своей модели до начала любых действий.

Почему Google делает Android открытым

Открытая модель позволила Android быстро захватить рынок: производители получили готовую систему бесплатно, а Google — распространение своих сервисов. Открытый код также снижает барьер входа для разработчиков и исследователей безопасности, что в перспективе укрепляет всю экосистему.

Открытый код и безопасность

Доступность исходников работает в обе стороны. Исследователи могут аудировать систему и находить уязвимости до злоумышленников — Google платит вознаграждения за найденные баги через программу bug bounty. С другой стороны, злоумышленники тоже изучают код.

Практический вывод для обычного пользователя: своевременные обновления безопасности важнее, чем кажется. Патчи сначала попадают в AOSP, а затем производители адаптируют их для своих устройств — отсюда и задержки с обновлениями на многих моделях.

Часто задаваемые вопросы

Полностью ли Android открыт?

Нет. Открыта базовая система (AOSP), но сервисы Google, многие драйверы и фирменные оболочки производителей остаются закрытыми. Смартфон «из коробки» — это смесь открытого и проприетарного кода.

Можно ли использовать код Android в коммерческом продукте?

Да, лицензия Apache 2.0 это разрешает. Ограничение касается ядра Linux под GPLv2: модификации ядра при распространении устройства нужно публиковать. Торговая марка Android и сервисы Google требуют отдельного лицензирования.

Где найти исходники ядра для конкретного смартфона?

Производители обязаны публиковать их по условиям GPLv2. Обычно код размещается на официальных open-source порталах брендов или на GitHub. Ищите раздел «Open Source» на сайте производителя вашей модели.

Сколько места нужно для загрузки и сборки AOSP?

Зависит от версии, но закладывайте десятки гигабайт на исходники и ещё столько же на результат сборки. Точные требования указаны в документации на source.android.com для каждой версии.

Чем AOSP отличается от Android на моём телефоне?

AOSP — чистая базовая система без сервисов Google и фирменных приложений. На вашем телефоне поверх неё установлены GMS, оболочка производителя и предустановленные программы, большинство из которых закрыты.