DIY: Компиляция Android ROM из исходного кода

Быстрый и простой 10 шаг руководство по составлению AOSP ROM для Android устройств, от настройки машины, чтобы персонализировать ваш диск.

A+ A-

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

Компиляция Android ROM

Есть много пользовательских Android дистрибутивов там, с популярными из которых являются CyanogenMod, SlimROM, Paranoid Android, AOKP, Liquid Smooth, MIUI, Ксилон, Ледяное желе и т.д.

Для сегодняшнего руководства, мы будем компилировать CyanogenMod 10.2, самый популярный послепродажной ROM Android. Процедура 99% одинакова для всех пользовательских дисков там, так что это руководство можно использовать в качестве ссылки для компиляции других дисков тоже.

Предварительные условия

  1. Android телефон с легкодоступной ядра и исходных устройств, уже укоренившейся и с пользовательской восстановления установленной.
  2. 64-битный дистрибутив Linux (мы предпочитаем Ubuntu).
  3. По крайней мере 100GB бесплатно на вашем жестком диске.
  4. Практическое знание Linux команд терминалов.
  5. Разумно быстрое подключение к интернету.

Точка отметить: 64 - разрядная операционная система Linux является обязательным, и он должен быть уроженцем установки, а не виртуальной машины.

Настройка вашей сборки машины

1. Установите ОС Linux на Ваш выбор: 64 - разрядная версия, в соответствии с официальными инструкциями. (Руководство будет считать, что мы запускаем Ubuntu 13.04). Держите раздел по крайней мере, 100 Гб с 16 Гб swap-раздела.

2. Установить следующий перечень пакетов: Open Terminal приложение, и введите "Sudo APT-получить установку ', Нажмите клавишу ВВОД и она попросит вас ввести пароль.

Список пакетов

git-core
gnupg
flex
bison
python
rar
original-awk
gawk
p7zip-full
gperf
libsdl1.2-dev
libesd0-dev
libwxgtk2.6-dev
squashfs-tools
build-essential
zip
curl
libncurses5-dev
zlib1g-dev
pngcrush
schedtool
libc6-dev
x11proto-core-dev
libx11-dev
libg11-mesa-dev
mingw32
tofrodos
python-markdown
libxml2-utils
g++-multilib
lib32z1-dev
ia32-libs
lib32ncurses5-dev
lib32readline-gplv2-dev
gcc-multilib
g++-multilib
xsltproc

3. Установите Java JDK 1.6 для Linux 64-бит: Имя файла должно быть JDK-6U ## - Linux-x64.bin, ## являются номера версий. Переместить загруженный пакет в ваш домашний каталог. Откройте приложение Terminal и запустите следующий набор команд:

sudo apt-get purge openjdk-\* icedtea-\* icedtea6-\*
sudo mkdir –p /opt/java/64/
sudo cp jdk-6u##-linux-x64.bin /opt/java/64
sudo su –
cd /opt/java/64
chmod a+x jdk-6u##-linux-x64.bin
./jdk-6u##-linux-x64.bin
exit

Теперь мы должны добавить JDK Путь к .bashrc

sudo gedit ~/.bashrc

Добавьте эти строки в финале текстового файла

# Java Path
export JAVA_HOME=/opt/java/64/jdk1.6.0_##
export PATH=$PATH:$JAVA_HOME/bin

4. Установите Android SDK: Open Terminal App

cd ~
mkdir android && cd android
mkdir sdk

Скачать Android SDK от http://developer.android.com/sdk/index.html . Извлеките содержимое пакета в ~ / Android / SDK Мы должны добавить путь Android SDK к .bashrc

sudo gedit ~/.bashrc

Добавьте эти строки к окончанию текстового файла:

# Android SDK Path
export PATH=$PATH:~/android/sdk
export PATH=$PATH:~/android/sdk/platform-tools
export PATH=$PATH:~/android/sdk/tools

Теперь установите Android SDK Tools, набрав

android

5. Настройка учетной записи GitHub и удаленный репозиторий: Вы можете пропустить этот шаг , если CyanogenMod поддерживает ваш телефон официально. Перейти к github.com, и сделать запись для себя. В этом руководстве, я рассматриваю свое имя пользователя как "пользователь".

Посетить домашнюю страницу 'github.com/CyanogenMod/android', нажмите кнопку Вилка. Удаленный манифест будет раздвоенная, и доступны в вашем личном репо.

Теперь перейдите в "github.com/user/android~~pobj". Откройте файл DEFAULT.XML, нажмите Edit. Найти эту строку:

<project path="android" name="CyanogenMod/android" />

И заменить это

<project path="android" name="user/android" />

Я рассматриваю LIBS исходный код ядра, устройство-источник и поставщика вашего устройства для Android 4.3, чтобы быть

github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor

Я предполагаю, что филиал будет называться 'jb4.3'. Вы можете найти точное имя в фактическом репо. Затем, в конце файла, добавьте эти строки, изменяя их в соответствии с исходным кодом вашего устройства.

<project path="kernel/your_company/your_device" name="user2/kernel_source" remote="github" revision="jb4.3" />
<project path="device/your_company/your_device" name="user2/device_source" remote="github" revision="jb4.3" />
<project path="device/your_company/your_device-common" name="user2/device-common_source" remote="github" revision="jb4.3" />
<project path="vendor/your_company" name="user2/vendor" remote="github" revision="jb4.3" />

Фиксировать изменения. Удаленный манифест готов к развертыванию.

6. Установите Repo Команда: Открыть терминал и введите

cd ~
mkdir ~/bin
curl  > ~/bin/repo
chmod a+x ~/bin/repo

Мы должны добавить путь Repo к .bashrc

sudo gedit ~/.bashrc

Добавьте эту строку в конец текстового файла

export PATH=$PATH:~/bin

7. Извлечь исходный код ROM: Open Terminal и введите

mkdir ~/android/cm
cd ~/android/cm

Если вам нужно Шаг 5, затем введите

repo init –u git://github.com/user/android.git –b cm-10.2

Если устройство поддерживает CyanogenMod 10.2 официально, а затем введите

repo init –u git://github.com/CyanogenMod/android.git –b cm-10.2

Теперь запустите

repo sync –j16

Go захватить кофе или перекусить, это собирается занять много времени. Исходный код хорошо более чем 10GB в размере, так что это займет некоторое время.

Fetching Источник

8. Настройка устройства конкретные вещи: Если ваше устройство поддерживает CyanogenMod 10.2 официально, а затем откройте терминал и введите

cd ~/android/cm
. build/envsetup.sh && breakfast <device_codename>

Это займет некоторое время, устройство-источник составляет около 3 Гб в размерах. Затем вам необходимо установить официальный CM10.2 на свой телефон, подключить его к компьютеру в режиме USB отладки и выполните следующие команды:

adb root
cd ~/android/cm/device/<your_company>/<your_device>/
./extract-files.sh

Если устройство не поддерживает CyanogenMod 10.2 официально, то вам нечего делать на этом этапе, источники уже ждут вас.

9. Скачать прекомпилированное Вздор и настроить Toolchain: Открыть терминал и тип

cd ~/android/cm/vendor/cm
sh ./get-prebuilts

Теперь, мы должны добавить ToolChain путь к ./bashrc

cd ~/android/cm
sudo gedit ~/.bashrc

Добавьте эти строки в конец текстового файла

# Android Toolchain
export ARCH=arm
export CCOMPILE=$CROSS_COMPILE
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:~/android/cm/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

10. Создайте свой ROM: Так что , все в порядке и готово. Пришло время, чтобы построить ROM. Открыть терминал и тип

cd ~/android/cm
. build/envsetup.sh
brunch <device_codename>

Время, чтобы пойти вздремнуть. Это займет зиллионы лет, чтобы построить ПЗУ на среднем компьютере. Ну, это было преувеличением, но на моем домашнем ПК (Core i5 2-го поколения с 8 Гб оперативной памяти), она занимает более 3 часов, чтобы построить с нуля. Хотелось бы надеяться, что не будет никаких ошибок, и сборка будет завершена нормально. Вы получите выходной пакет в

~/android/cm/out/target/product/<your_device>/cm-10.2-something-UNOFFICIAL-<your_device>.zip

Пришло время, чтобы установить вновь скомпилированные ROM на вашем телефоне. Загрузить пакет Google Apps от "www.goo.im/gapps~~pobj" для соответствующего Android версии. Положите обе эти пакеты в телефоне, и вспышка их в режиме восстановления. Вуаля, ваш собственный скомпилирован ROM теперь работает устройство.

Ну, так что вы узнали, как составить ROM. Ну что теперь?

Обновление вашего источника ROM

Для того, чтобы получать новые обновления исходного кода для вашего локально загруженного исходного кода, откройте терминал и введите

cd ~/android/cm
repo sync –j16

Чтобы построить ROM, после обновления исходного кода, откройте терминал и введите

cd ~/android/cm
make installclean
find ./out/ -name ‘build.prop’ | xargsrm
find ./out/ -name ‘cm_<your_device>-target_files-eng.*.zip’ | xargsrm
. build/envsetup.sh
brunch <your_device>

Так как вы не заново строить с нуля, но заново здание, как это, это займет значительно меньше времени, всего около 15-30 минут в большинстве случаев. Вы должны синхронизировать локальный источник каждую неделю или около того, чтобы сохранить ваш местный источник свежей.

Очистить свой рабочий каталог

Чтобы полностью очистить свой рабочий каталог (читай: вернуть папку источника звука в состоянии штока), откройте терминал и введите следующие команды.

cd ~/android/cm
make installclean
make clobber

Имейте в виду, что после выполнения этих команд, все ваши выходные данные будут удалены, так что следующая сборка займет 3-4 часа снова, как и все заново построен с нуля. Если ваш раздел на жестком диске мало, скажем, около 100GB, вы должны очистить свой рабочий каталог примерно раз в 4 сборки, или иначе, вы будете запускать из пространства на жестком диске.

Ускорить сборку посредством CCache

Создание диска занимает много времени. Но время можно сократить примерно на 30-45% при использовании CCache. CCache означает кэш компилятора, он кэширует вывод компиляции с вашего ранних сборках, так что он может быть повторно использована в последующих сборках.

Обратите внимание, что CCache требует много места на жестком диске для кэширования контента, поэтому рекомендуется, если и только если ваш раздел жесткого диска находится где-то в непосредственной близости от 200GB или выше. Чтобы настроить CCache, откройте терминал и введите следующую команду:

cd ~/android/cm
export USE_CCACHE=1
export CACHE_DIR=~/.ccache
prebuilts/misc/linux-x86/ccache/ccache –M 50G

Вы можете изменить максимальное распределение по размерам, чтобы CCache от 50GB к тому, что вы хотите, но как минимум около 30GB следует использовать для получения хороших результатов.

Fetch фиксаций из других дисков

Вы можете возможности вишневого выбрать из другого ромы исходного кода. Скажем, например, я хочу, чтобы выбрать Feature A, с фиксации ID "12345" из хранилища "github.com/user/reporepo~~pobj".

Для перехода к необходимому пакету в локальном исходном коде и запустить их в терминале.

cd ~/<path_to_reporepo_packages>
git fetch 
git cherry-pick 12345

Исходный код ссылки Известных Android пользовательских ROM Распределения

CyanogenMod - https://github.com/CyanogenMod
SlimROM - https://github.com/SlimRoms
ParanoidAndroid - https://github.com/ParanoidAndroid
AOKP - https://github.com/AOKP
LiquidSmooth - https://github.com/liquidsmooth
Ксилон ROM -
Ice Cold Желе - https://github.com/IceColdJelly

Так, там вы идете, ребята, простой, прямой руководство для компиляции практически любой диск на основе Android AOSP в 10 простых шагов. В то время как мой гид сосредотачивается на CyanogenMod, вы можете собрать довольно много каждый AOSP ROM там, путем простого изменения хранилища ссылок. Или, вы можете просто выбрать функции, зафиксировать их, изменять материал и создать свой собственный персонализированный ROM, может поделиться своим ROM в Интернете тоже?

Ads

Поделиться

последний

Лучшие альтернативы Ubuntu искать, если вы Linux Lover

Давайте начнем знакомство с чем-то; простой, но немного не ...

Как добавить подпись в Gmail Входящие - Добавить подпись Google в Gmail

Входящие с помощью Google была одна из лучших вещей, которы...

Еженедельно Tech News: Nokia, Google и Nintendo

Привет всем, это Пятница, 3 марта, и так же, как всегда, мы...

Raspberry Pi Проекты для начинающих - Что вы можете сделать с Raspberry Pi

Raspberry Pi представляет собой серию малой мощности, одноп...

Лучший VPN для Android 2017 года - Как использовать VPN в Android

Прошли те дни, когда виртуальные частные сети были только д...

Комментарии