Как да създадете персонализиран ROM от Android Open Project

източник известен като AOSP (Android Open Project Project) .



Сега нещото при AOSP е, че чистият изходен код не включва специфични за устройството хардуерни собствености. Казано по-просто, хардуерът като вашата камера и графичен процесор няма да работи „извън кутията“, когато се развива с AOSP. Всъщност вашето устройство дори няма да стартира без тези хардуерни двоични файлове.

Ако разработвате телефон с марка Google (Pixel, Nexus и т.н.), можете да намерите хардуерните двоични файлове директно от Google , и това ръководство ще ви преведе през тяхното получаване и вграждане във вашия ROM. Ако обаче разработвате ROM за марков телефон (Sony, Samsung и т.н.) ... добре, благословете сърцето си, защото сте на път.



Някои производителите имат свои собствени проекти с отворен код или пускат инструменти за разработка за потенциални разработчици, докато други производители държат плътно капак на своите собствени кодове. Ето кратък списък с проекти с отворен код от по-популярните производители:



Център за издание на Samsung с отворен код
Sony Developer World
Поддръжка на Lenovo
Център за издание на Huawei с отворен код
Разработчици на Motorola



Отстранявайки това, нека продължим с предположението, че изграждаме ROM за най-елементарното изживяване на Android с ванилия за устройство Google Pixel. С тези знания под колана си, ще можете сами да се разклоните и да започнете да разработвате персонализирани версии на ROM на конкретен производител.

Изисквания за това ръководство:

  • Проект с отворен код за Android
  • Телефон Pixel XL или емулатор на Android за Linux
  • 64-битова операционна система Linux - Ubuntu или Linux Mint са най-удобните за начинаещи дистрибуции, докато BBQLinux е разработен специално с оглед на разработчиците на Android.
  • Python
  • Плътен компютър (компилирането на код отнема много памет и място!)

Настройване на вашата среда за изграждане

Нека започнем, като настроим емулатора на Android на вашата Linux машина. Независимо дали имате устройство с Google Pixel XL, винаги е най-безопасно да изпробвате новия си ROM на емулатор на Android преди го мига към вашето устройство. Моят личен фаворит е Genymotion, така че ще ви преведа през инсталирането на този конкретен емулатор. Можете обаче да разгледате и това ръководство „ Най-добрите емулатори на Android ”, Тъй като повечето от тях също имат Linux съвместимост.

Насочете се към Уебсайт на Genymotion , регистрирайте акаунт, потвърдете го чрез имейл и изтеглете изпълнимия файл на вашия работен плот на Linux.



Сега отворете терминал на Linux и въведете:

Chmod + x genymotion-xxxxx.bin (заменете xxxx с номера на версията в името на файла)
./genymotion-xxxxxx.bin

Натиснете И за да създадете директория Genymotion. Сега въведете терминала:

cd genymotion && ./genymotion

Сега ще ви помоли да започнете инсталационния процес, така че просто продължете да щраквате Напред, докато стигнете до прозореца Добавяне на виртуални устройства. Изберете „Pixel XL“ под опцията Модел на устройството и след това завършете инсталацията. Можете да тествате виртуалното устройство, ако искате, по същество ще бъде като да имате телефон Pixel XL на работния си плот.

Нека сега настроим Python:

$ apt-get инсталирайте python

Сега трябва да настроим Java Development Kit на вашата Linux машина. Отворете терминала на Linux и въведете следните команди:

$ sudo apt-get update
$ sudo apt-get инсталирайте openjdk-8-jdk

Сега ще трябва да конфигурирате системата Linux, за да разрешите достъп до USB устройство. Изпълнете следния код в терминала на Linux:

Това ще изтегли необходимия файл 51-android.txt, който позволява гореспоменатия достъп до USB устройство. Отворете .txt файла и го модифицирайте, за да включите вашето потребителско име за Linux, след което поставете .txt файла на следното място: (като root потребител ). Сега включете устройството си в компютъра си чрез USB, за да могат новите правила да влязат автоматично в сила.

Изтегляне на Android Source

AOSP се хоства на Git, така че ще използваме инструмент, наречен Repo, за да комуникираме с Git.

Първо трябва да настроим папка / bin във вашата домашна директория. Въведете следните команди в терминала на Linux:

$ mkdir ~ / bin
$ PATH = ~ / bin: $ PATH

Сега ще изтеглим инструмента Repo, така че въведете в терминала на Linux:

$ curl https://storage.googleapis.com/git-repo-downloads/repo> ~ / bin / repo
$ chmod a + x ~ / bin / repo

След като Repo е инсталиран, сега трябва да създадем празна директория, която да съхранява вашите работни файлове. Така че въведете това в терминала на Linux:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

Сега ще конфигурираме Git с вашето име и имейл адрес - използвайте адрес в Gmail, който проверявате редовно , в противен случай няма да можете да използвате инструмента за преглед на кода на Gerrit.

$ git config –global user.name „Вашето име“
$ git config –global user.email
you@gmail.com

Сега ще кажем на Repo да изтегли най-новия главен манифест на AOSP от Git:

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

Ако бъде направено успешно, ще получите съобщение, че Repo е инициализирано във вашата работна директория. Ще намерите и „ .repo ” директория в клиентската директория. Така че сега ще изтеглим дървото на източника на Android с:

$ репо синхронизиране

Изграждане на Android Source

Тук влизат в действие хардуерните двоични файлове, споменати в началото на това ръководство. Нека се насочим към AOSP драйвери страница и изтеглете двоичните файлове на Pixel XL за Android 7.1.0 (NDE63P). Искате да изтеглите изображението на доставчика и хардуерните компоненти. Те идват като компресирани архиви, така че ги извлечете на вашия работен плот и стартирайте саморазархивиращия се скрипт от основната папка. Изберете да инсталирате двоичните файлове в корена на WORKING_DIRECTORY, който създадохме по-рано.

Сега въведете във вашия Linux терминал:

$ направи clobber
$ source build / envsetup.sh

Сега ще изберем целта за изграждане, така че напишете:

$ обяд aosp_marlin-userdebug
$ setpaths
$ make –j4

Там вече сме „изградили“ Android ROM от източник. Така че нека тестваме в емулатора, като напишем в терминала:

$ емулатор

Така че играйте малко в емулатора. Както можете да видите, чисто ваниловото Android изживяване е съвсем минимално и затова производителите персонализират AOSP според своите нужди. И вие бих могъл флаш този ROM, който току-що създадохме на вашето устройство, ако искате, но без добавяне на подобрения, чисто ванилов Android опит наистина би бил много скучно нещо.

Така че това, което производителите обикновено правят с AOSP, е да го разклонят, да добавят свои собствени собствени двоични файлове, да персонализират потребителския интерфейс, да добавят лого за зареждане и др. .

Следете, тъй като втората част на това ръководство ще премине през добавяне на шрифтове, теми и анимация за зареждане към вашия ROM!

5 минути четене