Перейти до вмісту

Android Open Source Project

Матеріал з K2 ERP Wiki
Версія від 08:24, 9 травня 2026, створена R (обговорення | внесок) (Створена сторінка: {{SEO |title=Android Open Source Project — відкрита основа Android для пристроїв, прошивок, виробників і розробників |description=Android Open Source Project — Wiki-стаття про AOSP, відкритий вихідний код Android, архітектуру платформи, Android Framework, Linux kernel, HAL, ART, системні застосунки, build system, Repo, manifests, G...)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)

AOSP важливий не лише для Google чи виробників смартфонів.; Практична роль: GSI сприяє перевірити, наскільки пристрій має змогу працювати з generic Android system image, а не лише з прошивкою виробника.; * захисту від відомих exploit;

  • enterprise compliance;
  • банківських застосунків;
  • privacy;
  • Play Integrity;
  • довіри до пристрою;
  • безпечного використання інтернету.; Цікавий факт: Binder — одна з тих технологій Android, яку звичайний користувач системи ніколи не бачить, але без неї Android-застосунки не могли б нормально говорити із системою.;
    Kernel відповідає за:
    Збірка AOSP зазвичай потребує Linux-середовища, багато дискового простору, RAM, інструментів і часу.; Водночас робота з AOSP складна: потрібні знання build system, HAL, kernel, SELinux, device tree, vendor blobs, security patches і compatibility testing.; * Android security documentation.;== Коли AOSP має змогу бути невдалим вибором ==
    
    <div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
    
    </div>
    
    AOSP-розробка відрізняється від звичайної Android app development.; * AOSP відкритий, але сучасний Android-смартфон часто залежить від закритих camera, modem, GPU і firmware-компонентів.; У реальному проєкті потрібні правильний target, device configuration, vendor blobs, залежності й документація для конкретного пристрою.;</div>
    
    * API behavior;
    * permissions;
    * security;
    * media;
    * graphics;
    * framework behavior;
    * app compatibility;
    * platform requirements;
    * system behavior;
    * відповідність CDD.; Android permission model контролює, до чого застосунки мають доступ.; App development значно простіший за platform development.; Android на комерційному смартфоні
    '''Правило:''' AOSP дає permission model, але приватність користувача залежить і від прошивки, і від застосунків, і від налаштувань.;== Висновок ==
    
    <div style="background:#fdecea; border-left:6px solid #e74c3c; padding:12px; margin:12px 0;">
    
    </div>
    
    == переважні аспекти AOSP ==
    
    * Google Play Store;
    * Google Play Services;
    * Google Maps;
    * Gmail;
    * YouTube;
    * Google Search;
    * Google Assistant;
    * Google Photos;
    * Firebase/Google API інтеграції в частині застосунків;
    * push notifications через FCM;
    * SafetyNet/Play Integrity-подібні сервіси.;</div>
    
    '''істотно:''' Android базується на Linux kernel, але не функціонує як звичайний desktop Linux із GNOME, systemd і класичними пакетними менеджерами.;== технічна архітектура AOSP ==
    '''Практична роль:''' Android app developer створює застосунок для Android, а AOSP developer змінює саму платформу, на якій ці застосунки працюють.; '''Android Framework'''  високорівневий шар, через який застосунки працюють із системою.; cd aosp
    
    * open source apps;
    * privacy-friendly apps;
    * альтернатив Google-застосункам;
    * легких утиліт;
    * локальних інструментів;
    * community app ecosystem.;</div>
    </div>
    == Verified Boot ==
    
    AOSP має багатошарову архітектуру.;<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
    
    * AOSP  це причина, чому Android має змогу існувати в такій кількості форм: телефони, планшети, телевізори, автомобілі, handheld-пристрої й кастомні ROM.; Якщо в ній погані конфігурація, застарілі patches або сумнівні застосунки, вона має змогу бути небезпечнішою за офіційно затверджений Android.; '''LineageOS'''  один із найвідоміших прикладів custom ROM, побудованих на основі Android/AOSP.; * remote control UX;
    * Leanback UI;
    * media playback;
    * DRM;
    * HDMI;
    * audio/video codecs;
    * streaming apps;
    * Google TV або vendor UI;
    * certification;
    * app compatibility;
    * low-latency media.; '''Device tree''' у контексті Android-прошивок  набір конфігурацій і описів, які допомагають зібрати Android для конкретного пристрою.; завдяки наявності '''Hardware Abstraction Layer''' або '''HAL'''  шар, який користувачі можуть Android працювати з hardware через стандартизовані інтерфейси.;<div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
    всіх документацію й вихідний код Android забезпечується через Офіційна документація Android описує AOSP як доступні; додатково реалізовано які можна використовувати для створення власних варіантів Android OS.;</div>
    '''Критично:''' розблокований bootloader, застаріла custom ROM або permissive SELinux можуть звести нанівець багато переваг Android security model.; Custom ROM має змогу додавати:
    </div>
    
    m
    
    '''Практична порада:''' AOSP варто вивчати, якщо цікаво не без ускладнень писати Android-застосунки, а розуміти, як функціонує сама Android-платформа.; Для конкретного пристрою потрібні device tree, vendor files, kernel, правильний target і додаткові інструкції.; * створення Android-прошивок;
    * розробки системних компонентів;
    * портів Android на нові пристрої;
    * custom ROM;
    * vendor ROM;
    * Android TV-подібних систем;
    * automotive-систем;
    * embedded Android;
    * тестування Android framework;
    * дослідження мобільних ОС;
    * security research;
    * навчання системній розробці;
    * створення GSI;
    * розробки HAL і драйверної інтеграції;
    * перевірки сумісності з Android APIs.;<div style="background:#f0eaff; border-left:6px solid #8e44ad; padding:12px; margin:12px 0;">
    
    <div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
    
    </div>
    
    </div>
    
    * новий Android для старого пристрою;
    * інший launcher;
    * privacy-функції;
    * root-friendly середовище;
    * додаткові конфігурація;
    * мінімальні Google-застосунки або їх відсутність;
    * performance tweaks;
    * security patches;
    * інший дизайн;
    * додатковий контроль.; Без нього керувати вихідним кодом Android було б значно важче.;<div style="background:#e7f3ff; border-left:6px solid #2b7cff; padding:12px; margin:12px 0;">
    
    </div>
    <div style="background:#fff4e5; border-left:6px solid #f39c12; padding:12px; margin:12px 0;">
    '''Compatibility Test Suite''' або '''CTS'''  набір тестів для перевірки сумісності Android-пристрою.; AOSP
    
    </div>
    
    <div style="background:#e8f8f5; border-left:6px solid #16a085; padding:12px; margin:12px 0;">
    

Manifest визначає:

Помилка: думати, що AOSP можна без ускладнень зібрати й одразу отримати повноцінну заміну офіційній прошивці для будь-якого смартфона.; repo init -u https://android.googlesource.com/platform/manifest -b android-latest-release

  • board configuration;
  • product makefiles;
  • partition layout;
  • kernel parameters;
  • init scripts;
  • hardware features;
  • sepolicy;
  • vendor integration;
  • build targets;
  • device-specific overlays.;

AOSP і Google Mobile Services

Проста аналогія: Treble намагається зробити так, щоб “верх Android” можна було оновлювати без повного переписування “низу” від виробника.; * виробників;

  • модифікації коду;
  • публікації змін;
  • використання kernel;
  • compliance;
  • vendor obligations;
  • open source notices;
  • юридичного аудиту;
  • комерційних продуктів.; Android Things був Google-напрямом для IoT, але пізніше був закритий як загальна платформа.; * Android Compatibility Definition Document.;

source build/envsetup.sh

Приклади сценаріїв використання

AOSP має змогу бути основою для Android TV-подібних систем, smart TV і медіапристроїв.; Він просить Android Framework зробити потрібну дію через офіційні API.;== Приклад спрощеної збірки AOSP ==

  • які репозиторії потрібні;
  • які гілки використовувати;
  • які ревізії завантажити;
  • структуру source tree;
  • відповідність релізу;
  • набір компонентів платформи.; це відкритий проєкт.;

AOSP має обмеження.; * infotainment;

  • vehicle HAL;
  • multi-display;
  • audio zones;
  • car settings;
  • automotive UX;
  • Google Automotive Services у сертифікованих сценаріях;
  • vendor customization;
  • long-term support.;

Android Studio зазвичай застосовується для розробки Android-застосунків, а не для повної збірки AOSP.; * спілкування застосунків із system services;

  • IPC між процесами;
  • permission checks;
  • service manager;
  • Android Framework;
  • AIDL;
  • безпечної взаємодії компонентів;
  • системної архітектури Android.; :contentReference [oaicite:2]{index=2}

Можливі проблеми:

Build system

Критично: AOSP-прошивка не є собою автономно приватною.; Рекомендовано:

Automotive infotainment

Перевага: AOSP надає можливість виробникам і розробникам не створювати мобільну ОС з нуля, а брати готову Android-платформу й адаптувати її під пристрій.; Android — це ширша назва операційної системи й екосистеми.; AOSP є собою фундаментом, на якому будуються Android-пристрої, кастомні прошивки, vendor-системи, емулятори, дослідницькі збірки і багато комерційних Android-варіантів.; * Project Treble documentation.;

AOSP і форки Android

Суть Framework: застосунок не керує телефоном напряму.;

  • використовувати офіційну документацію source.android.com;
  • починати з підтримуваного target або emulator;
  • використовувати `android-latest-release` для актуальної розробки;
  • мати достатньо місця на диску;
  • не змішувати випадкові patches;
  • контролювати device tree;
  • документувати vendor blobs;
  • тримати SELinux enforcing;
  • запускати CTS/VTS у серйозних проєктах;
  • перевіряти security patches;
  • тестувати OTA;
  • мати backup перед прошиванням;
  • не зберігати важливі інформаційні дані на тестових збірках;
  • вести changelog;
  • використовувати code review.;

AOSP добре підходить, якщо потрібно:

  • shell на пристрої;
  • встановлення APK;
  • перегляду logs;
  • копіювання файлів;
  • debugging;
  • керування emulator;
  • запуску команд.;

AOSP має змогу бути не найкращим вибором, якщо:

AOSP є собою основою оновлень Android, але шлях актуалізація до конкретного смартфона складніший.;

Хороші практики AOSP

System apps можуть включати:

Цікавий факт

Саме з цієї причини два пристрої можуть обидва бути “Android”, але відчуватися дуже по-різному: один має майже чистий AOSP-інтерфейс, інший — важку оболонку виробника, власні застосунки, інший launcher, інші конфігурація камери й додаткові сервіси.;== SELinux в Android ==

SELinux сприяє:

істотно: актуальна реліз Android і доступність конкретних гілок AOSP змінюються, з цієї причини для розробки завжди потрібно перевіряти офіційну документацію source.android.com.;

ART відповідає за:

  • актуальні security patches;
  • SELinux enforcing;
  • Verified Boot;
  • правильні permissions;
  • захищений bootloader;
  • шифрування даних;
  • безпечний update system;
  • trusted firmware;
  • vendor patching;
  • CTS/security testing;
  • secure key storage;
  • ізоляція застосунків;
  • Play Integrity або альтернативні trust-механізми в залежності від екосистеми.; Для керування ними застосовують, коли потрібно інструмент Repo і manifest-файли.; Практична роль: AOSP — це загальна платформа, а device tree пояснює, як саме ця платформа має працювати на конкретному телефоні.; LineageOS показує, як AOSP має змогу стати фундаментом для community-проєкту, який підтримує роботу багато пристроїв, додає власні функції й часто продовжує життя старих смартфонів.;

Compatibility Test Suite

AOSP складається з багатьох Git-репозиторіїв.;

AOSP і F-Droid

AOSP і безпека

Дозволи можуть стосуватися:

  • Офіційна документація Android Open Source Project.;

Compatibility Definition Document

розробка програмного забезпечення AOSP

|- | Код | Відкрита основа Android | AOSP + vendor code + firmware + сервіси + оболонка |- | Google Play | Не входить за замовчуванням | є собою лише на сертифікованих пристроях із GMS |- | Драйвери | Не містить усіх закритих драйверів конкретного пристрою | Постачається виробником |- | Інтерфейс | Базовий Android | має змогу бути Pixel UI, One UI, HyperOS, ColorOS тощо |- | Призначення | Основа для збірки й кастомізації | Готовий програмний продукт для користувача |}

Custom ROM

AOSP охоплює код під різними open source-ліцензіями.;

{{SEO


Compatibility Definition Document або CDD — документ, який описує вимоги сумісності для Android-пристроїв.;== Тематичні мітки ==

!; HAL потрібен для:

Android 16 і AOSP

m

AOSP додатково є собою основою для automotive-напрямів Android.; !;== Обмеження AOSP ==

Критично: навіть якщо AOSP відкритий, в цілому відкрита прошивка для реального телефона часто неможлива без заміни або відкриття vendor blobs.; Але щоб отримати готовий телефон, потрібні ще м’язи, шкіра, очі, голос і характер виробника.; Вони можуть змінювати:

Загальний характеристика

Pixel не дорівнює “чистий AOSP”.;

Цікавий факт: Android має змогу бути не лише в телефоні, а й у машині — але automotive Android має зовсім інші вимоги до безпеки, оновлень і взаємодії з hardware.; :contentReference [oaicite:1]{index=1}

істотно: те, що Android source code доступний, не означає, що всі смартфони одразу отримають актуалізація.; * прошивання images;

  • bootloader-level operations;
  • factory images;
  • recovery;
  • flashing boot/system/vendor images;
  • unlock/lock bootloader у підтримуваних сценаріях.;
Практична роль: Repo для AOSP — це як диспетчер великої бібліотеки Git-репозиторіїв.; * AOSP architecture overview.;

Цікавий факт: завдяки наявності AOSP старий телефон іноді має змогу отримати нове життя через custom ROM, навіть якщо виробник уже давно припинив офіційні актуалізація.; * Багато Android-функцій, які користувач системи сприймає як “без ускладнень телефон”, насправді проходять через складний ланцюг: app → framework → system service → HAL → driver → hardware.; Студент або розробник збирає AOSP в емуляторі, змінює системний компонент і дивиться, як це впливає на роботу Android.; Основні шари:

Android Automotive OS застосовується в автомобільних infotainment-системах і тісніше інтегрується з автомобільним hardware, ніж звичайний Android Auto.; * Google Play Services;

  • Firebase Cloud Messaging;
  • Google Maps API;
  • Play Integrity;
  • billing через Google Play;
  • proprietary media services;
  • vendor-specific APIs;
  • DRM;
  • push notification infrastructure.; Небезпека: погано зібрана або застаріла AOSP-прошивка має змогу бути менш безпечною, ніж офіційна прошивка виробника.;== Linux kernel в Android ==

Android здається “однією ОС”, але насправді це ціла програмний пакет шарів.;== AOSP і приватність ==

  • процеси;
  • пам’ять;
  • драйвери;
  • файлові системи;
  • мережу;
  • security primitives;
  • scheduling;
  • power management;
  • device nodes;
  • ізоляцію;
  • hardware access.; * Custom ROM-спільноти існують саме завдяки наявності з цієї причини, що AOSP дає відкриту основу для Android.; * source tree;
  • device configuration;
  • product configuration;
  • lunch targets;
  • Soong;
  • Blueprint;
  • Make-файлами в частині legacy;
  • vendor blobs;
  • kernel artifacts;
  • system images;
  • boot images;
  • OTA packages.; Але Android — це не “звичайний Linux-дистрибутив”.;== Generic System Image ==

організація створює спеціальну AOSP-збірку для термінала самообслуговування, де користувач системи бачить лише один контрольований застосунок.; Android 16 є собою актуальною великою версією Android у сучасній документації Android.; AOSP — лише ядро цієї екосистеми в широкому сенсі: framework, системні сервіси, базові застосунки, build system, HAL-інтерфейси, runtime, частина інструментів і документація.; Security patch важливий для:

Security patches

ADB застосовується для:

  • швидших оновлень;
  • стабільніших vendor interfaces;
  • розділення system і vendor;
  • GSI;
  • porting;
  • підтримки різних пристроїв;
  • зменшення залежності framework від vendor-коду.; Багато компонентів конкретного пристрою можуть бути закритими.; Це ще device support, security, testing, updates, документація й відповідальність за користувача.; CDD важливий для:

Це лише загальна схема.; Fastboot застосовується для:

  • запуск застосунків;
  • виконання байткоду;
  • компіляцію;
  • garbage collection;
  • performance;
  • memory management для app runtime;
  • оптимізацію запуску;
  • інтеграцію з Android Framework.;</syntaxhighlight>

Permissions

  • камери;
  • мікрофона;
  • геолокації;
  • контактів;
  • SMS;
  • storage;
  • Bluetooth;
  • notifications;
  • sensors;
  • background activity;
  • phone state;
  • nearby devices.;

істотно: AOSP-система без GMS має змогу запускати APK, але не всі застосунки працюватимуть повноцінно.; Ліцензії важливі для:

Офіційна документація описує AOSP як публічно доступний і змінюваний Android source code, що надає повну й функціональну реалізацію Android mobile platform.;

істотно: “Open source” не означає “без правил”.;

Android security patches виправляють уразливості в системі, framework, kernel, drivers або vendor-компонентах.;== AOSP і ліцензії == До GMS можуть належати: AOSP — це відкритий вихідний код Android-платформи.; Поширені помилки: Практична роль: F-Droid часто доповнює AOSP-системи, де немає Google Play або користувач системи хоче більше open source-застосунків.; * Android Compatibility Test Suite documentation.; * камери;

  • GPU;
  • modem;
  • Wi-Fi;
  • Bluetooth;
  • audio DSP;
  • sensors;
  • fingerprint reader;
  • face unlock hardware;
  • proprietary firmware;
  • hardware acceleration.; Практична роль: HAL — це міст між універсальним Android framework і конкретним залізом конкретного телефона.;== Цікаві факти про AOSP ==
  • плутати AOSP і Google Android;
  • чекати Google Play у чистому AOSP;
  • не враховувати vendor blobs;
  • не читати device-specific документацію;
  • вимикати SELinux для “простоти”;
  • прошивати ключовий телефон без backup;
  • не розуміти різницю між app development і platform development;
  • недооцінювати build time;
  • не перевіряти CTS;
  • не оновлювати security patches;
  • ігнорувати bootloader і Verified Boot;
  • ставити random ROM із невідомого джерела;
  • очікувати ідеальну камеру в чистому AOSP.;== Android Runtime ==

Android-based kiosk

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

  • створити Android-based OS;
  • вивчити архітектуру Android;
  • розробляти platform-level компоненти;
  • робити custom ROM;
  • адаптувати Android для пристрою;
  • тестувати Android framework;
  • працювати з HAL;
  • будувати embedded Android;
  • створювати GSI;
  • досліджувати security model;
  • навчатися системній мобільній розробці;
  • робити privacy-focused Android-варіант;
  • створювати kiosk або dedicated device.; З 27 березня 2025 року офіційна документація рекомендує platform developers використовувати `android-latest-release` замість `aosp-main` для збірки й внесків в AOSP; цей manifest вказує на latest AOSP release branch.; істотно: “Android open source” не означає, що весь Android-смартфон в цілому відкритий.; Головна думка: AOSP — це не готовий смартфон у вигляді коду, а фундамент Android.;
  • framework;
  • native services;
  • system apps;
  • HAL;
  • SELinux policies;
  • build system;
  • init;
  • kernel integration;
  • device configuration;
  • CTS failures;
  • platform APIs;
  • system permissions;
  • boot images;
  • OTA;
  • debugging system services.;== AOSP і кастомізація виробників ==

Binder IPC

  • потрібно без ускладнень створити Android-застосунок;
  • потрібен готовий Google Play-пристрій;
  • немає команди для підтримки прошивки;
  • немає vendor blobs;
  • немає device tree;
  • потрібна повна сумісність банківських застосунків;
  • важлива офіційна сертифікація;
  • потрібні найкращі camera features виробника;
  • потрібні OTA-оновлення без власної інфраструктури;
  • потрібна проста ОС для маленького мікроконтролера;
  • немає часу на build system і debugging.; Підказка: найкраще починати з AOSP emulator або офіційно підтримуваних build targets, а не з випадкового телефона без документації.; AOSP має власну систему збірки, яка надає можливість зібрати Android для конкретного target.;

Практична роль: зібрати AOSP — це не без ускладнень натиснути “Build”.; :contentReference [oaicite:5]{index=5}

Verified Boot важливий для:

  • launcher;
  • settings;
  • dialer;
  • contacts;
  • messaging;
  • camera у базовому вигляді;
  • package installer;
  • system UI;
  • documents UI;
  • input methods;
  • basic browser або web components у відповідних збірках.;== Android Studio і AOSP ==
  • ізолювати процеси;
  • обмежувати system services;
  • захищати vendor components;
  • контролювати доступ до файлів;
  • зменшувати наслідки exploit;
  • enforce policy;
  • підтримувати Android security model.;
Увага: AOSP source tree дуже великий.; source build/envsetup.sh

Практична роль: AOSP дає свободу створювати Android-варіанти, але якість такого варіанту залежить від команди, hardware, оновлень і security-процесів.; * мінімум попередньо встановлених сервісів;

  • відсутність GMS;
  • власні open source-застосунки;
  • контроль permissions;
  • firewall-рішення;
  • локальні сервіси;
  • privacy-focused ROM;
  • F-Droid-подібні джерела застосунків;
  • self-hosted sync.;
  • виробників пристроїв;
  • Android compatibility;
  • API behavior;
  • hardware requirements;
  • software requirements;
  • app compatibility;
  • сертифікації;
  • однакової поведінки застосунків;
  • ecosystem consistency.;

Generic System Image або GSI — generic Android system image, який застосовується для тестування сумісності Treble-пристроїв.; :contentReference [oaicite:4]{index=4}

Застосунки для Android зазвичай не “знають”, чи пристрій функціонує на AOSP, Pixel Android, Samsung One UI або іншій оболонці.; CTS перевіряє: Android Open Source Project — це відкрита основа Android, яка надає можливість створювати власні Android-системи, кастомні прошивки, vendor ROM, automotive-рішення, TV-платформи, dedicated devices і дослідницькі збірки.; Проте сама ідея Android у embedded-сценаріях залишається через vendor-рішення, Android Automotive, Android TV, handheld devices і спеціалізовані пристрої.; істотно: AOSP-застосунок камери або launcher — це не те саме, що Pixel Camera, Samsung Camera або інша vendor-реалізація.; Критично: старий Android без security patches має змогу бути ризиковим, навіть якщо телефон “ще нормально функціонує”.; Framework надає API для:

GSI корисний для:

Основна ідея: AOSP — це відкрита основа Android.; lunch

Google Mobile Services або GMS — це набір Google-застосунків і сервісів, які не є собою без ускладнень частиною AOSP.; Project Treble — архітектурний підхід Android, який розділяє Android framework і vendor implementation.; Проста аналогія: AOSP — це не один застосунок і не одне ядро, а цілий набір поверхів: від Linux kernel до кнопок, вікон, дозволів і системних сервісів.; Android у магазинному смартфоні часто складається з AOSP, драйверів виробника, firmware, Google Mobile Services, застосунків виробника, оболонки, сертифікації та додаткових сервісів.; * Android Developers documentation.; Вони працюють через Android APIs.; Значна частина Android-платформи поширюється під Apache License 2.0, але kernel-компоненти пов’язані з GPL через Linux kernel.; істотно: не прошивайте власну збірку на реальний пристрій без повного backup, розуміння bootloader, recovery і способу відновлення.; !; Для маленьких MCU краще підходять RTOS на кшталт FreeRTOS або Zephyr.;

істотно: AOSP можна адаптувати для різних пристроїв, але не кожному embedded-пристрою потрібен повний Android.; AOSP без Google-сервісів часто цікавить людей, які хочуть більше контролю над пристроєм.; F-Droid корисний для: істотно: Pixel Android близький до Google-бачення Android, але це не голий AOSP.; Практична роль: adb — це “розмова з Android, коли він запущений”, а fastboot — “розмова з пристроєм на нижчому рівні завантаження”.; repo sync

Джерела

Treble важливий для:

System apps

  • не містить Google Play за замовчуванням;
  • не містить усіх proprietary drivers;
  • не гарантує підтримку конкретного телефона;
  • складна збірка;
  • великий source tree;
  • потрібні vendor blobs;
  • потрібна device-specific інтеграційні функціональні можливості;
  • не всі застосунки працюють без GMS;
  • потрібні security patches;
  • custom ROM має змогу бути нестабільною;
  • сертифікація складна;
  • актуалізація залежать від виробника або maintainer-ів;
  • camera якість часто залежить від закритих vendor-компонентів.; * AOSP overview.;== Android Framework ==

Головне правило: AOSP-проєкт — це не лише код.; * Android app developer і AOSP platform developer — це дуже різні ролі.;== Repo і manifests ==

Збірка AOSP

Build system функціонує з:

Vendor blobs — закриті binary-компоненти від виробника пристрою або чипсета.;

Binder потрібен для:

Найлюдяніший факт: AOSP — це як “скелет і нервова платформа” Android.; AOSP має багато security-механізмів, але безпечний Android-пристрій — це не лише AOSP.; Потрібно мати device tree, vendor components, правильний target і багато місця на диску.; repo sync -c -j8 Практична роль: CDD сприяє зробити так, щоб Android-застосунок не поводився зовсім по-різному на кожному пристрої.; AOSP дає вихідний код і документацію Android-платформи, але не замінює Google Mobile Services, vendor drivers, сертифікацію, device-specific інтеграцію й бізнес-процес оновлень.; Виробники й розробники мають дотримуватися ліцензійних вимог.; * AOSP source tree настільки великий, що перше завантаження має змогу стати окремим випробуванням для диска й інтернету.; :contentReference [oaicite:3]{index=3} Основні переважні аспекти AOSP: Окремо варто відзначити у межах якого доступні вихідний код, документація й базова реалізація операційної системи Android виступає ключовою рисою Android Open Source Project або AOSP.; Критерій

AOSP у automotive-сценаріях важливий для:

  • Repo;
  • командний рядок;
  • Linux build host;
  • Android build system;
  • emulator;
  • adb;
  • fastboot;
  • debugging tools;
  • source.android.com документація.;
Виробник автомобільної системи використовує Android/AOSP-основу для мультимедіа, навігації й взаємодії з автомобільними сервісами.; * “Чистий AOSP” не означає “Pixel”.;
AOSP без GMS має змогу працювати як Android-система, але багато звичних користувацьких функцій або застосунків можуть бути відсутніми.; На ньому можна побудувати багато різних систем, але якість результату залежить від інженерії, драйверів, безпеки й підтримки.;

Головна перевага: AOSP зробив Android не однією закритою системою, а платформою, яку можуть адаптувати виробники, спільноти й дослідники.;== Див.; додатково ==

Binder — механізм міжпроцесної взаємодії в Android.; AOSP надає можливість створювати форки Android.;== adb і fastboot ==

Команда створює Android ROM без Google-сервісів, із посиленими privacy controls і мінімальним набором системних застосунків.;

Для AOSP частіше потрібні:

Навчання Android internals

Коли варто використовувати AOSP

AOSP і Android TV

  • відкритий вихідний код Android;
  • можливість кастомізації;
  • велика програмний пакет;
  • Android Framework;
  • сумісність із Android APIs;
  • основа для custom ROM;
  • основа для vendor ROM;
  • документація;
  • build system;
  • security model;
  • Linux kernel foundation;
  • HAL-архітектура;
  • Treble;
  • GSI;
  • можливість дослідження й навчання;
  • глобальний вплив на мобільні пристрої.; * Android 16 release notes.; Custom ROM — неофіційна або community-прошивка Android, часто побудована на AOSP.; Йому потрібен окремий TV-досвід.; Потрібні:

Android використовує SELinux для mandatory access control.; Він дав світові Android як гнучку платформу, яку можна адаптувати до різних пристроїв і сценаріїв.; Device tree має змогу містити:

Практична роль: Android TV-пристрій — це не без ускладнень телефонний Android на великому екрані.;

Виробники пристроїв беруть AOSP і додають власні компоненти.; Але приватність залежить від конкретної прошивки.;== AOSP і Pixel ==

Критично: вимкнення SELinux або permissive-режим у production-прошивці має змогу серйозно знизити безпеку пристрою.; Pixel має багато додаткових Google і device-specific компонентів.; Google Pixel використовує Android із Google-сервісами, Pixel-specific features, proprietary components і офіційними оновленнями від Google.;

Форки можуть бути:

Типові помилки початківців

Device tree

Project Treble

F-Droid часто використовують на AOSP-based або privacy-focused прошивках як джерело open source Android-застосунків.;

Потрібні:

Але проблеми можуть виникати, якщо застосунок залежить від:

  • камери;
  • аудіо;
  • сенсорів;
  • GPS;
  • Bluetooth;
  • Wi-Fi;
  • NFC;
  • біометрії;
  • графіки;
  • радіомодуля;
  • power management;
  • vendor-specific hardware.; Найцікавіше: AOSP — це причина, чому Android має змогу існувати не лише як Google Pixel, а як величезна сім’я пристроїв: смартфони, планшети, телевізори, автомобільні системи, POS-термінали, handheld-пристрої й кастомні прошивки.;

AOSP-розробник має змогу працювати з:

Можливі privacy-сценарії:

AOSP і Android Automotive

AOSP містить базові системні застосунки й компоненти, але вони не завжди збігаються з Google-застосунками на комерційному Android.;== AOSP і застосунки ==

Практична роль: ART — одна з причин, чому Android-застосунки можуть запускатися на різних пристроях, не будучи зібраними окремо під кожну модель телефона.;

AOSP не потрібно плутати з “усім Android на телефоні”.; Офіційна сторінка Android Developers зазначала availability of the source code at the Android Open Source Project для Android 16.; * Документація щодо Repo, manifests, GSI, HAL, ART, SELinux, Verified Boot, custom ROM і Android build system.;== AOSP і Android Things ==

  • захисту від підміни system image;
  • перевірки boot chain;
  • виявлення модифікацій;
  • integrity;
  • device trust;
  • enterprise security;
  • захисту користувацьких даних;
  • сумісності з security expectations.; Практична роль: Verified Boot сприяє користувачу й системі знати, чи не була прошивка змінена неочікуваним способом.;=== Privacy-focused Android ===
Критично: якщо прошивка базується на AOSP, це ще не означає, що в ній легально або технічно доступні Google Play і Google-сервіси.; Потрібна сумісність, тестування й сертифікація.;
  • Linux kernel;
  • hardware abstraction layer;
  • native libraries;
  • Android Runtime;
  • system services;
  • Android Framework;
  • system apps;
  • permissions;
  • package manager;
  • media stack;
  • graphics stack;
  • telephony;
  • connectivity;
  • security model;
  • build system;
  • compatibility tools.; істотно: custom ROM має змогу бути корисною, але встановлення прошивки має ризики: bootloop, втрата даних, проблеми з банківськими застосунками, гарантією й безпекою.;== AOSP і Android ==
Android використовує Linux kernel як нижній системний шар.;
Android Verified Boot сприяє перевіряти цілісність завантажуваних компонентів.; істотно: AOSP — це платформа для інженерів і виробників, а не готовий “конструктор прошивки за 5 хвилин”.;
  • перевірки Treble;
  • тестування AOSP;
  • development;
  • compatibility testing;
  • porting;
  • debugging vendor implementation;
  • перевірки чистішого Android system image.;
  • Google Mobile Services;
  • Pixel Launcher;
  • Pixel Camera;
  • proprietary drivers;
  • Tensor-specific components;
  • Pixel Feature Drops;
  • Google AI features;
  • Play Integrity;
  • vendor configuration;
  • device-specific optimizations.; істотно: без ускладнень зібрати AOSP недостатньо для комерційного Android-пристрою.;

Pixel має змогу містити:

Hardware Abstraction Layer

Цікавий факт: Android на Samsung, Xiaomi, OnePlus, Sony і Pixel має спільну AOSP-основу, але виробники можуть так сильно змінити верхні шари, що користувач системи бачить зовсім різний досвід.; lunch

Документація AOSP додатково має release notes для Android 16, Android 16 QPR1 і Android 16 QPR2.; Вона дає код платформи, але не автономно дає Google Play, сертифікацію, драйвери конкретного телефона або готову комерційну прошивку.;

Android Runtime або ART — середовище виконання Android-застосунків.; * новий AOSP release;

  • адаптація виробника;
  • vendor drivers;
  • kernel updates;
  • security patches;
  • carrier testing у частині ринків;
  • CTS;
  • OTA infrastructure;
  • device-specific testing;
  • підписані образи;
  • rollout.; Перед збіркою потрібно мати достатньо місця на диску й стабільне інтернет-з’єднання.; AOSP застосовується для:
Це спрощений приклад.;

Vendor blobs

<syntaxhighlight lang="bash">

істотно: Android Studio і AOSP — пов’язані, але не однакові світи.;

ADB і fastboot — важливі інструменти Android-розробки й тестування.; mkdir aosp Розробник бере AOSP, device tree, vendor blobs і patches спільноти, щоб створити новішу Android-прошивку для пристрою, який виробник уже не оновлює.;== LineageOS ==

У TV-сценаріях важливі:

  • Activity;
  • Service;
  • BroadcastReceiver;
  • ContentProvider;
  • permissions;
  • notifications;
  • location;
  • camera;
  • media;
  • storage;
  • window management;
  • input;
  • sensors;
  • telephony;
  • connectivity;
  • accessibility.; Над kernel є собою Android-specific шари: Binder IPC, Android Framework, ART, HAL, permission model, package manager і системні сервіси.; Вони можуть бути потрібні для:

актуалізація Android

  • launcher;
  • settings;
  • camera app;
  • power management;
  • theming;
  • system services;
  • update system;
  • device care tools;
  • cloud services;
  • app store;
  • gestures;
  • security features;
  • AI-функції;
  • vendor UX;
  • preinstalled apps.; * vendor ROM;
  • custom ROM;
  • privacy-focused OS;
  • Android без GMS;
  • enterprise Android;
  • kiosk OS;
  • smart TV system;
  • automotive system;
  • device-specific firmware;
  • research OS.;=== Custom ROM для старого телефона ===

Типова логіка: