Създаването на персонализирана версия на Android от нулата може да изглежда като колосално предизвикателство, задача, по силите само на опитни разработчици. Реалността обаче е, че с правилното ръководство и малко търпение всеки нетърпелив потребител може да постигне този технологичен подвиг и да оборудва устройството си с операционна система, съобразена с неговите нужди.
Ще ви преведем подробна и естествена обиколка, стъпка по стъпка и без прекомерен технически жаргон, от подготовката на компютъра ви и изтеглянето на изходния код до компилирането, инсталирането и накрая персонализирането на вашата собствена версия на Android. Всичко, което трябва да знаете, вдъхновено и разширено от най-добрата информация, която се класира в търсачките, можете да намерите тук, обяснено ясно и с онзи личен подход, който е толкова ценен, когато се потопим в света на Android разработката.
Защо да създавате персонализирана версия на Android?
Мотивациите за компилиране на собствен Android ROM могат да бъдат много разнообразни.от удължаване на живота на телефона, който вече не получава актуализации, до простото удоволствие от експериментирането и научаването на нови неща за вътрешните механизми на най-широко използваната мобилна операционна система. Плюс това, персонализирайте Android Тя ви позволява да контролирате всеки аспект на системата, от интерфейса до специфични хардуерни функции, и да премахвате приложения или услуги, от които не се нуждаете.
Какво ще ви е необходимо, преди да създадете персонализирана версия на Android?
- Компютър с 64-битова Linux версия (Препоръчва се Ubuntu или Debian, за да се избегнат проблеми със съвместимостта).
- Минимум 16 GB RAM (задължително, ако не искате да прекарате вечно компилиране).
- Най-малко 100 GB свободно място на твърдия диск (Изходният код на Android е наистина тежък и ще ви е необходим известен капацитет за компилиране.)
- Комплект за разработка на Java (JDK) във версията, специфична за версията на Android, която искате да компилирате. Например, Android 8.0 изисква специфична версия на Java.
- Основни инструменти като Git, ccache и Python.
- Android SDK и инструменти за платформа като ADB (Android Debug Bridge).
Така че, трябва да подготвите добре средата си, преди да се впуснете в процеса. Не се притеснявайте: повечето от тези изисквания се инсталират само с няколко команди и много уроци, включително това ръководство, ще ви преведат през тях стъпка по стъпка.
Подготовка на средата за разработка за създаване на персонализирана версия на Android
Първата сериозна стъпка е да подготвите компютъра си за битка.. Инсталирайте Ubuntu (или любимата ви дистрибуция, базирана на Debian), актуализирайте я и се уверете, че сте актуализирали основните пакети.Ето списък с основни команди, които можете да изпълните в терминала:
- sudo apt update && sudo apt upgrade
- sudo apt инсталиране на git-core gnupg flex bison build-essential zip curl zlib1g-dev
- sudo apt инсталира gcc-multilib g++-multilib libc6-dev-i386
- sudo apt инсталира openjdk-8-jdk python3 git ccache
- sudo apt install libncurses5 libncurses5-dev libssl-dev libxml2-utils xsltproc разархивирайте fontconfig
Не забравяйте да адаптирате версията на Java според версията на Android, която ще компилирате.Не всички Android устройства използват една и съща версия на JDK, така че, моля, консултирайте се с официалната документация на AOSP (Android Open Source Project), ако имате въпроси.
Изтегляне на изходния код на Android: къде и как да го направите
Изходният код на Android е доста голям и изтеглянето му не е толкова тривиално, колкото обикновен git клонинг.Използва се специфичен инструмент: репо-сделка, проектиран от Google за управление на големи хранилища с множество подпроекти.
Преди всичко, инсталирайте репо-сделка:
- mkdir ~ / bin
- ПЪТ=~/bin:$ПЪТ
- curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
- chmod a+x ~/bin/repo
След това създайте папка за вашия изходен код и влезте в нея:
- mkdir ~/android-source && cd ~/android-source
Оттам инициализирайте хранилището с клона, който ви интересува (например за Android версия 13):
- repo init -u https://android.googlesource.com/platform/manifest -b android-13.0.0_r1
- синхронизиране на хранилище
Процесът на синхронизация може да отнеме часове, в зависимост от вашата връзка. Ако процесът е неуспешен, повторете синхронизиране на хранилище докато не завърши правилно. Винаги бъдете търпеливи; напълно нормално е да отнеме известно време!
Какво е AOSP и защо е важен за създаването на собствен ROM?
AOSP (Android Open Source Project) е сърцето на Android, основата, върху която работят производителите и разработчиците. Компилирането на персонализиран ROM означава да вземете този код, да го адаптирате към вашето устройство и да добавите (или премахнете) функции, както желаете. Няма да имате достъп до собствените услуги на Google, освен ако не ги флашнете отделно, но това ви дава пълен контрол над системата.
Конфигуриране на средата за изграждане
Ключовият скрипт тук е envsetup.sh. Този скрипт задава всички променливи, необходими за компилиране.От главната директория на изходния код изпълнете в терминала:
- източник build/envsetup.sh
Тази стъпка е от съществено значение и Това трябва да се прави всеки път, когато отваряте нов терминал, за да работите с кода.Ако забравите това, ще се сблъскате с грешки, които могат да бъдат трудни за диагностициране.
Избор на целевото устройство: не всички телефони са еднакви!
Следващата стъпка е да изберете конкретното устройство, за което ще компилирате.Това се прави с командата обяд, който определя продукта, варианта и конфигурацията на компилацията. Например, за емулатор с x86_64 архитектура:
- обяд aosp_x86_64-eng
Ако създавате продукт за реално устройство, ще трябва да изберете точното име на продукта. Много производители използват вътрешни имена (напр. „evert“ за Moto G6 Plus). Има обяви на страниците на разработчиците и в специални форуми.
Разбиране на вариантите на компилация: user, userdebug и eng
- потребителОриентирана към крайния потребител конструкция, без root достъп или инструменти за разработка.
- userdebugПроектиран за разработчици, той включва инструменти за отстраняване на грешки, но е почти идентичен с потребителския интерфейс.
- инж.: за вътрешни разработчици, по-малко оптимизиран, но се компилира по-бързо и с разширени опции.
За тези, които тепърва започват, userdebug е най-гъвкавият и удобен вариантПозволява достъп до главната конзола и инструментите за отстраняване на грешки, което прави тестването и отстраняването на грешки много по-лесно.
Инсталиране на собствени блобове: Какво представляват и защо са ми необходими?
Устройствата с Android често изискват собствени файлове (blobs), за да работят правилно функции като камерата, Wi-Fi или аудиото. Това е така, защото много производители не публикуват изходния код за тези компоненти. Без тези blobs, вашата ROM памет ще работи, но без достъп до определени части от хардуера.
Обикновено тези блобове се извличат от официалния ROM. За много устройства има проекти като TheMuppets (в GitHub), където можете да ги изтеглите за вашия модел. Например за Motorola Moto G6 Plus:
- git клонинг https://github.com/TheMuppets/proprietary_vendor_motorola_evert доставчик/motorola/evert
Тези файлове трябва да са в съответния път в структурата на AOSP, за да бъдат открити по време на компилацията.
Инициализиране на средата за вашето устройство
След като блобовете са на мястото си, е време да конфигурирате средата за изграждане за конкретния мобилен телефон.Ако устройството ви се казва „evert“, например:
- източник build/envsetup.sh
- обяд lineage_evert-userdebug
Това зарежда всички необходими конфигурации, като гарантира, че скриптовете за изграждане намират както общия изходен код на Android, така и файловете, специфични за вашето устройство.
Как да оптимизираме времето за компилация?
Компилирането на Android е процес, който може да бъде бавен, особено първия път.За да се оптимизира, се препоръчва да се използва каче, инструмент, който съхранява междинни компилационни файлове, така че да не се налага да прекомпилирате всичко всеки път.
- експортиране USE_CCACHE=1
- каче -M 100G
Това запазва 100GB за кеша за изграждане, което може значително да ускори възстановяването на системата, когато правите само малки промени.
Нека да обобщим! Моментът на истината
Най-очакваната стъпка е тук: компилиране на ваш собствен Android ROM.Отворете терминала в корена на изходния код и изпълнете:
- make -j$(nproc) otapackage
Процесът може да отнеме няколко часа в зависимост от мощността на вашия процесор и количеството налична RAM памет.Не се отчайвайте! Нормално е вентилаторът да пуши и компютърът да изглежда сякаш работи на 100% за дълго време. В крайна сметка ще се генерира .zip файл с ROM-а, готов за инсталиране чрез recovery (TWRP или подобен).
Крайният резултат ще бъде в папката изход/цел/продукт/ /
Допълнителни инструменти, които могат да улеснят живота ви: ScriBt и компания
За тези, които искат да спестят време и да избегнат грешки на начинаещи, има помощни програми като ScriBt, които автоматизират всичко - от синхронизирането на хранилища до изтеглянето на blob файлове и инсталирането на зависимости. Тези инструменти могат значително да опростят живота ви и са идеални за тези, които компилират често или управляват множество устройства.
Въпреки това, винаги е препоръчително да разберете ръчния процес, преди сляпо да разчитате на автоматизирани скриптове., тъй като по този начин ще се научите да решавате проблеми и да разбирате какво се случва на всяка стъпка.
Ами ако искам да продължа по-нататък? Компилиране за специфичен хардуер и Thread рутери
Екосистемата на Android не се ограничава само до мобилни телефони. Можете също да компилирате Android за специални устройства, като например рутери с поддръжка на Thread.Тези устройства изискват настройване на персонализиран HAL, адаптиране на изходния код на мрежовия чип Thread и тестване на емулатори като Cuttlefish, използвайки инструменти като ot-cli-ftd y ot-ctl.
Този процес е по-напреднал и обикновено включва модификации на XML файлове, стартови скриптове и разрешения, както и компилиране на специфични за радиото APEX модули. Изисква опит, но е напълно осъществимо, като се следва официалната документация.
Тестване и сертифициране на вашия персонализиран ROM
След като компилацията е завършена, е време за тестване.За да се осигури стабилността и безпроблемната работа на вашата персонализирана система, има набор от стандартни инструменти:
- VTS (Тестов пакет за доставчици)Проверява съвместимостта и работата на HAL.
- CTS (пакет за тестове за съвместимост)Гарантира, че API-тата се държат съгласно стандартите на Android.
- Интеграционно тестванеТе оценяват системата като цяло, като гарантират, че различните компоненти не представляват конфликти.
Освен това можете да използвате приложения като ThreadNetworkDemoApp за визуално тестване, ако сте изградили системи за рутери или IoT устройства.
Персонализиране: Отвъд основните конструкции
Създаването на персонализирана версия на Android е само първата стъпка; създаването на персонализирана версия на Android е от решаващо значение.Можете да промените потребителския интерфейс, да премахнете ненужни приложения или да добавите специфични модификации. Ако имате познания по програмиране, можете директно да редактирате кода или да добавите свои собствени приложения към основната система.
Много потребители избират да разклонят популярни проекти като LineageOS, тъй като те имат огромна общност и много допълнителни инструменти за персонализиране. Няма нужда да преоткривате колелото: възползвайте се от приноса на общността, когато можете..
Допълнителни съвети за начинаещи разработчици
Ако вашата мотивация е да се заемете професионално с Android разработкаОвладяването на компилирането и създаването на персонализирана версия за Android е високо ценено умение. Препоръчваме:
- Качете своите разработки и модификации в платформи като GitHub, за да получите видимост и най-добри практики.
- Тренирайте се в Kotlin и Android Studio: официалният език и среда за създаване на приложения и модифициране на Android системата.
- Експериментирайте с прости приложения, преди да се впуснете в модифициране на пълни ROM-ове.
- Бъдете търпеливи: Научаването на компилиране и персонализиране ще ви отвори много врати, но отнема време!
Често задавани въпроси и често срещани проблеми
- Какво да направя, ако компилацията се провали поради неизвестна грешка? Прегледайте всички стъпки, проверете дали имате достатъчно място и памет и вижте подробни системни лог файлове.
- Мога ли да се върна, ако си обезвредя телефона? Да, в повечето случаи с персонализирано възстановяване можете да преинсталирате оригиналния ROM.
- Възможно ли е да се включат услуги на Google? Те не са включени по подразбиране в AOSP. Могат да бъдат флашнати по-късно (Google Apps или „GApps“), но на някои устройства не всичко може да работи перфектно.
- Ще получа ли поверителност, като премахна собствени компоненти? Да, въпреки че ще загубите някои функции, които зависят от услугите или производителите на Google.
- Работи ли компилацията за всяко устройство? Не. Трябва да се уверите, че съществува поддръжка за вашия модел (дърво на устройствата, блобове, ядро и други файлове).
Създаването на персонализиран Android ROM е формиращо и без съмнение вълнуващо приключение. От подготовката на средата, през изтеглянето и синхронизирането на кода, до специфичната конфигурация за всяко устройство и продължителната компилация, процесът е взискателен, но и много възнаграждаващ. Той ви позволява да разгърнете пълния потенциал на вашия телефон или устройство, като го приспособите като ръкавица към вашите собствени нужди.
С достъп до инструменти като ccache, ScriBt и поддръжка от общността, заедно с малко постоянство и непрекъснато учене, всеки ентусиаст може да постигне невероятни резултати и да издигне Android изживяването си на следващото ниво. Споделете това ръководство и помогнете на други потребители да научат как да създадат персонализирана версия на Android..