Android е най-широко използваната мобилна операционна система в света. И най-добрата част е, че е напълно с отворен код, което казано от лаици означава, че изходният код, действителната програма е достъпна открито за всеки, който може да изтегля, персонализира и изгражда свои собствени ROM.
Има много персонализирани Android дистрибуции, налични там, като популярните са CyanogenMod, SlimROM, Paranoid Android, AOKP, Liquid Smooth, MIUI, Xylon, Ice Cold Jelly и др.
За днешното ръководство ще компилираме CyanogenMod 10.2, най-популярният ROM за вторично пазаруване на Android. Процедурата е 99% еднаква за всички персонализирани ROM-ове, така че това ръководство може да се използва като препратка за компилиране и на други ROM.
Предварителни условия
- Телефон с Android с лесно достъпен източник на ядро и устройство, вече руутиран и с инсталирано персонализирано възстановяване.
- 64-битова дистрибуция на Linux (предпочитаме Ubuntu).
- Най-малко 100 GB безплатно на вашия твърд диск.
- Работни познания по Linux терминални команди.
- Достатъчно бърза интернет връзка.
Обърнете внимание: 64-битовата Linux OS е задължителна и тя трябва да бъде собствена инсталация, а не виртуална машина.
Настройте вашата машина за изграждане
1. Инсталирайте Linux OS по ваш избор: 64 битова версия, според официалните инструкции. (Ръководството ще приеме, че работим с Ubuntu 13.04). Поддържайте дял от поне 100GB с 16GB Swap дял.
2. Инсталирайте следния списък с пакети: Отворете приложението Terminal и въведете
[html]sudo apt-get install [/html]
натиснете Enter и той ще ви подкани за вашата парола.
Пакет Списък
[html]
git-core
gnupg
шнур
бизон
питон
RAR
оригинален-awk
дангалак
p7zip-пълен
gperf
libsdl1.2-dev
libesd0-dev
libwxgtk2.6-dev
скуош-инструменти
изграждане на-важно
цип
Curl
libncurses5-dev
zlib1g-dev
pngcrush
schedtool
libc6-dev
x11proto-core-dev
libx11-dev
libg11-mesa-dev
mingw32
тофродос
python-markdown
libxml2-полезни програми
g++-multilib
lib32z1-dev
ia32-libs
lib32ncurses5-dev
lib32readline-gplv2-dev
gcc-multilib
g++-multilib
xsltproc
[/ html]
3. Инсталирайте Java JDK 1.6 за 64-битов Linux: Името на файла трябва да бъде jdk-6u##-linux-x64.bin, ## са номерата на версиите. Преместете изтегления пакет във вашата домашна директория. Отворете приложението Terminal и изпълнете следния набор от команди:
[html]
sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
sudo mkdir –p /opt/java/64/
sudo cp jdk-6u##-linux-x64.bin /opt/java/64
на юг -
cd /opt/java/64
chmod a+x jdk-6u##-linux-x64.bin
./jdk-6u##-linux-x64.bin
изход
[/ html]
Сега трябва да добавим JDK път към .bashrc
[html]
sudo gedit ~ / .bashrc
[/ html]
Добавете тези редове в края на текстовия файл
[html]
# Път на Java
експортиране JAVA_HOME=/opt/java/64/jdk1.6.0_##
експортиране ПЪТ=$ПЪТ:$JAVA_HOME/bin
[/ html]
4. Инсталирайте Android SDK: Отворете приложението Terminal
[html]
CD ~
mkdir android && cd android
mkdir sdk
[/ html]
Изтеглете Android SDK от http://developer.android.com/sdk/index.html. Извлечете съдържанието на пакета в ~/android/sdk Трябва да добавим пътя на Android SDK към .bashrc
[html]
sudo gedit ~ / .bashrc
[/ html]
Добавете тези редове към края на текстовия файл:
[html]
# Път на Android SDK
експортиране ПЪТ=$ПЪТ:~/android/sdk
експортиране PATH=$PATH:~/android/sdk/platform-tools
експортиране PATH=$PATH:~/android/sdk/tools
[/ html]
Сега инсталирайте Android SDK Tools, като напишете
[html]
андроид
[/ html]
5. Настройте вашия акаунт в github и отдалечено репо: Можете да пропуснете тази стъпка, ако CyanogenMod поддържа официално вашия телефон. Отидете на github.com и направете акаунт за себе си. За това ръководство разглеждам вашето потребителско име като „потребител“.
Посетете 'github.com/CyanogenMod/android', натиснете Fork. Отдалеченият манифест ще бъде разклонен и ще бъде достъпен във вашето лично репо.
Сега отидете на „github.com/user/android“. Отворете файла default.xml, натиснете Edit. Намерете този ред:
[html]
[/ html]
И заменете това с
[html]
[/ html]
Обмислям източника на ядрото на вашето устройство, източника на устройството и библиотеките на доставчика за Android 4.3 да бъдат на
[html]
github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor
[/ html]
Предполагам, че клонът ще бъде наречен 'jb4.3'. Можете да намерите точното име в действителното репо. След това в края на файла добавете тези редове, като ги модифицирате според изходния код на вашето устройство.
[html]
[/ html]
Завършете промените си. Вашият отдалечен манифест е готов за внедряване.
6. Инсталирайте Repo команда: Отворете терминала и въведете
[html]
CD ~
mkdir ~ / bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
[/ html]
Трябва да добавим Repo път към .bashrc
[html]
sudo gedit ~ / .bashrc
[/ html]
Добавете този ред в края на текстовия файл
[html]
експортиране ПЪТ=$ПЪТ:~/bin
[/ html]
7. Извадете изходния код на ROM: Отворете терминала и въведете
[html]
mkdir ~/android/cm
cd ~/android/cm
[/ html]
Ако имате нужда от стъпка 5, въведете
[html]
repo init –u git://github.com/user/android.git –b cm-10.2
[/ html]
Ако вашето устройство поддържа официално CyanogenMod 10.2, тогава въведете
[html]
repo init –u git://github.com/CyanogenMod/android.git –b cm-10.2
[/ html]
Сега тичай
[html]
репо синхронизация –j16
[/ html]
Вземете кафе или хапнете, ще отнеме много време. Изходният код е с размер над 10 GB, така че ще отнеме доста време.

8. Настройте специфичните за устройството неща: Ако вашето устройство поддържа официално CyanogenMod 10.2, отворете Terminal и въведете
[html]
cd ~/android/cm
. build/envsetup.sh && закуска
[/ html]
Ще отнеме известно време, източникът на устройството е с размер около 3GB. След това трябва да имате инсталиран официален CM10.2 на вашия телефон, да го свържете към вашия компютър в режим USB отстраняване на грешки и да изпълните следните команди:
[html]
adb корен
cd ~/android/cm/устройство/ / /
./extract-files.sh
[/ html]
Ако вашето устройство не поддържа официално CyanogenMod 10.2, тогава нямате какво да правите в тази стъпка, източниците вече ви очакват.
9. Изтеглете предварително изградени неща и настройте Toolchain: Отворете терминала и въведете
[html]
cd ~/android/cm/доставчик/cm
sh ./get-prebuilts
[/ html]
Сега трябва да добавим пътеката на Toolchain към ./bashrc
[html]
cd ~/android/cm
sudo gedit ~ / .bashrc
[/ html]
Добавете тези редове в края на текстовия файл
[html]
# Android Toolchain
експортиране ARCH=рамо
експортиране CCOMPILE=$CROSS_COMPILE
експортиране CROSS_COMPILE=arm-eabi-
експортиране PATH=$PATH:~/android/cm/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin
[/ html]
10. Създайте своя ROM: И така, всичко е наред и готово. Време е да изградим ROM. Отворете терминала и въведете
[html]
cd ~/android/cm
. build / envsetup.sh
брънч
[/ html]
Време е да подремна. Ще са необходими милиони години, за да се изгради ROM на среден компютър. Е, това беше преувеличение, но на моя домашен компютър (Core i5 2-ро поколение с 8 GB RAM) отнема над 3 часа, за да се изгради от нулата. Надяваме се, че няма да има грешки и изграждането ще завърши добре. Ще получите изходния пакет
[html]
~/android/cm/out/target/product/ /cm-10.2-нещо-НЕОФИЦИАЛНО- .zip
[/ html]
Време е да инсталирате своя новокомпилиран ROM на телефона си. Изтеглете пакета на Google Apps от „www.goo.im/gapps“ за подходящата версия на Android. Поставете и двата пакета в телефона си и ги флашнете в режим на възстановяване. Voila, вашият собствен компилиран ROM вече работи с вашето устройство.
Е, така че научихте как да компилирате ROM. И сега какво?
Актуализирайте вашия изходен ROM
За да извлечете нови актуализации на изходния код на вашия локално изтеглен изходен код, отворете Terminal и въведете
[html]
cd ~/android/cm
репо синхронизация –j16
[/ html]
За да изградите своя ROM, след актуализиране на изходния код, отворете терминала и напишете
[html]
cd ~/android/cm
направи инсталацията чиста
find ./out/ -name 'build.prop' | xargs rm
намери ./out/ -име 'cm_ -target_files-eng.*.zip' | xargs rm
. build / envsetup.sh
брънч
[/ html]
Тъй като не строите отново от нулата, а престроявате както е, това ще отнеме значително по-малко време, само около 15-30 минути в повечето случаи. Трябва да синхронизирате вашия локален източник всяка седмица или така, за да поддържате локалния си източник свеж.
Почистете вашата работна директория
За да почистите напълно работната си директория (прочетете: върнете вашата изходна папка в налично състояние), отворете терминала и въведете следните команди.
[html]
cd ~/android/cm
направи инсталацията чиста
направи cobber
[/ html]
Имайте предвид, че след изпълнение на тези команди, всичките ви изходни данни ще бъдат премахнати, така че следващата компилация ще отнеме отново 3-4 часа, тъй като всичко се изгражда отново от нулата. Ако вашият дял на твърдия диск е малък, да речем около 100 GB, трябва да почистите работната си директория около веднъж на всеки 4 компилации, в противен случай ще ви свърши свободното място на твърдия диск.
Ускорете изграждането си чрез CCACHE
Изграждането на ROM отнема много време. Но времето може да бъде съкратено с около 30-45% чрез използване на CCACHE. CCACHE означава кеш на компилатора, той кешира изхода от компилацията от по-ранните ви компилации, така че да може да се използва повторно в по-късни компилации.
Имайте предвид, че CCACHE се нуждае от много място на вашия твърд диск за кеширане на съдържанието, така че се препоръчва, ако и само ако вашият дял на твърдия диск е някъде в близост до 200 GB или повече. За да настроите CCACHE, отворете терминала и въведете:
[html]
cd ~/android/cm
експортиране USE_CCACHE=1
експортиране CACHE_DIR=~/.ccache
предварително изградени/разни/linux-x86/ccache/ccache –M 50G
[/ html]
Можете да промените разпределението на максималния размер за CCACHE от 50GB на каквото искате, но трябва да се използва минимум около 30GB за добри резултати.
Извличане на ангажименти от други ROM
Можете да изберете функции от други изходни кодове на ROM. Да речем, например, искам да избера функция А, с идентификатор на комит „12345“ от хранилището „github.com/user/reporepo“.
Отивате до пакета във вашия локален изходен код и ги стартирате в терминала.
[html]
cd ~/
git извличане https://github.com/user/reporepo
git cherry-pick 12345
[/ html]
Връзки с изходния код на известни потребителски ROM дистрибуции на Android
CyanogenMod – https://github.com/CyanogenMod
SlimROM – https://github.com/SlimRoms
Параноид Андроид – https://github.com/ParanoidAndroid
AOKP – https://github.com/AOKP
LiquidSmooth – https://github.com/liquidsmooth
Xylon ROM -
Ледено студено желе – https://github.com/IceColdJelly
И така, ето, момчета, просто и ясно ръководство за компилиране на практически всеки Android AOSP базиран ROM в 10 прости стъпки. Докато моето ръководство се фокусира върху CyanogenMod, можете да компилирате почти всеки AOSP ROM там, като просто модифицирате връзките към хранилището. Или можете просто да изберете функции, да ги ангажирате, да промените неща и да създадете свой собствен персонализиран ROM, може би да споделите своя ROM и онлайн?
вишваст
здравейте, благодаря за тази статия днес този свят на Android се разпространява като епидемия, така че е хубава статия
изречения на съдебните заседатели
Впечатляващи произведения! Наистина искам да създам свой собствен код за моите приложения!
Джесика
Наистина обичам да виждам този код, но някои части от този код не мога да разбера.
Шянтан деб
здравей Шонак,
Android е наистина широко разпространен в целия свят. и благодаря за тази невероятна публикация
Сузи Лампман
Страхотен. Сега само ако можех да разбера тези терминологии. След това мога да компилирам Android ROM