Компиляция Android 4.1 Jelly Bean в Ubuntu Linux

Внимание! Эта инструкция не позволит вам создать полнофункциональную прошивку сразу, но даст вам возможность начать работать над ней.

Исходники занимают примерно 6Gb. Вам нужно около 25Gb свободного места чтобы скомпилировать 1 билд и до 80Gb (или больше) для полного комплекта сборки.

Перед началом компиляции Jelly Bean на Ubuntu необходимо пройти несколько шагов по настройке компьютера, чтобы получить готовый инструмент.

Инструкция

Вам необходимо следующее:

JDK 6, если вы хотите скомпилировать Jelly bean. Вы можете скачать его с java.sun.com или:

Python 2.4 - 2.7, который можно загрузить из python.org или:

Git 1.7 или новее. Вы можете найти его в git-scm.com или:

Установите необходимые пакеты. 64-bit (рекомендуется):

В новых версиях Ubuntu, таких как 11.10 возможно потребуется выполнить следующие действия:

В Ubuntu 12.04 в настоящее время есть только экспериментальная поддержка и не гарантируется работа по другим веткам отличным от master.

Теперь настроим USB:

Вставьте это внутрь пустого текстового файла

Сохраните файл и закройте его, а затем выполните следующую команду:

Установите repo:

Запустите repo:

Для людей у которых уже есть готовый repo:

Если потребуется, введите ваше имя и адрес электронной почты.

Соберите файлы:

Скомпилируйте:

или

Запуск:

Выберите свое устройство.

Теперь выполните команду:

Где решётка (#) - это число ядер процессора + 1, например у меня есть 2-ядерный процессор, то я пишу "make -j3".

Как добавить устройство в список

Найдите на GitHub устройства, которые вы хотите добавить (для меня это HTC Evo 3D-CDMA). Теперь перейдите в папку куда вы собираетесь клонировать дерево устройства:

Клонируйте с GitHub дерева устройства с удаленного на локальный (удостоверьтесь, что папка будет называться так же, как стандартное имя для вашего устройства, например: Nexus One [passion], Nexus S [crespo] Motorola Droid [sholes], HTC Incredible [inc] и т.д.):

Теперь перейдите в папку:

Подключите телефон к компьютеру и убедитесь, что отладка для USB включена и adb работает должным образом. Извлеките собственные файлы устройства:

Вернитесь в свой домашний каталог

Подготовьтесь к компиляции:

или

Получите список ваших устройств:

Выберите свое устройство, затем компилируйте:

Или для создания zip архива для прошивки:

В итоге получаем скомпилированный Jelly Bean под определенное устройство. Теперь можно попробовать запустить его на вашем устройстве, посмотреть что работает, а что нет, затем заняться оптимизацией новой версии Android, сделать свою прошивку на базе AOSP и т.д.

Хоть 8 марта уже давно прошло, радовать свою женщину нужно постоянно, не так ли? К примеру иногда стоит дарить ей шикарные духи. Для этого как раз подойдут Lanvin Marry Me, которым любая девушка будет очень рада. Приобрести их вы можете на сайте духи.рф, цена вас приятно удивит.
Andrew
2012-07-12 04:04:00
о, класс, люблю краткие инструкции!
iROOT
2012-07-15 08:20:00
Напишите источник статью, без этого никак.
Sk8er
2012-07-18 00:23:00
а это что?
duality
2012-07-18 23:36:00
пытаюсь провернуть все это для Motorola Atrix 4g, в этоге при попытке компиляции получаю вот что: E: Для пакета apache не найден кандидат на установку root@duality-VirtualBox:/home/duality/WORKING_DIRECTORY# make -j3 otapackage============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=4.1.1 TARGET_PRODUCT=generic_olympus TARGET_BUILD_VARIANT=userdebug TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a HOST_ARCH=x86 HOST_OS=linux HOST_OS_EXTRA=Linux-2.6.38-15-generic-x86_64-with-Ubuntu-11.04-natty HOST_BUILD_TYPE=release BUILD_ID=JRO03C OUT_DIR=out ============================================ find: `../../external/apache-http/src/org/apache/http': Нет такого файла или каталога /bin/bash: строка 0: cd: base/../../libcore: Нет такого файла или каталога find: `dalvik/src/main/java/dalvik/system/': Нет такого файла или каталога /bin/bash: строка 0: cd: base/../../libcore: Нет такого файла или каталога find: `dalvik/src/main/java/dalvik/annotation': Нет такого файла или каталога find: `dalvik/src/main/java/dalvik/bytecode': Нет такого файла или каталога find: `json/src/main/java': Нет такого файла или каталога find: `luni/src/main/java/java': Нет такого файла или каталога find: `luni/src/main/java/javax': Нет такого файла или каталога find: `luni/src/main/java/org/xml/sax': Нет такого файла или каталога find: `luni/src/main/java/org/w3c': Нет такого файла или каталога find: `xml/src/main/java/org/xmlpull/v1': Нет такого файла или каталога find: `frameworks/base/core/java/android': Нет такого файла или каталога find: `frameworks/base/graphics/java/android': Нет такого файла или каталога find: `frameworks/base/location/java/android': Нет такого файла или каталога find: `frameworks/base/media/java/android': Нет такого файла или каталога find: `frameworks/base/media/mca/effect/java/android': Нет такого файла или каталога find: `frameworks/base/media/mca/filterfw/java/android': Нет такого файла или каталога find: `frameworks/base/media/mca/filterpacks/java/android': Нет такого файла или каталога find: `frameworks/base/drm/java/android': Нет такого файла или каталога find: `frameworks/base/opengl/java/android': Нет такого файла или каталога find: `frameworks/base/opengl/java/javax/microedition/khronos': Нет такого файла или каталога find: `frameworks/base/sax/java/android': Нет такого файла или каталога find: `frameworks/base/telephony/java/android': Нет такого файла или каталога find: `frameworks/base/wifi/java/android': Нет такого файла или каталога find: `frameworks/base/keystore/java/android': Нет такого файла или каталога find: `frameworks/base/icu4j/java/android': Нет такого файла или каталога find: `frameworks/base/voip/java/android': Нет такого файла или каталога find: `../../external/apache-http/src/org/apache/http': Нет такого файла или каталога find: `../../frameworks/support/v4': Нет такого файла или каталога find: `../../frameworks/support/v13': Нет такого файла или каталога find: `frameworks/base/core/java/android': Нет такого файла или каталога find: `frameworks/base/graphics/java/android': Нет такого файла или каталога find: `frameworks/base/location/java/android': Нет такого файла или каталога find: `frameworks/base/media/java/android': Нет такого файла или каталога find: `frameworks/base/media/mca/effect/java/android': Нет такого файла или каталога find: `frameworks/base/media/mca/filterfw/java/android': Нет такого файла или каталога find: `frameworks/base/media/mca/filterpacks/java/android': Нет такого файла или каталога find: `frameworks/base/drm/java/android': Нет такого файла или каталога find: `frameworks/base/opengl/java/android': Нет такого файла или каталога find: `frameworks/base/opengl/java/javax/microedition/khronos': Нет такого файла или каталога find: `frameworks/base/sax/java/android': Нет такого файла или каталога find: `frameworks/base/telephony/java/android': Нет такого файла или каталога find: `frameworks/base/wifi/java/android': Нет такого файла или каталога find: `frameworks/base/keystore/java/android': Нет такого файла или каталога find: `frameworks/base/icu4j/java/android': Нет такого файла или каталога find: `frameworks/base/voip/java/android': Нет такого файла или каталога find: `../../external/apache-http/src/org/apache/http': Нет такого файла или каталога find: `../../external/nist-sip/java': Нет такого файла или каталога find: `../../external/apache-http/src': Нет такого файла или каталога find: `../../external/tagsoup/src': Нет такого файла или каталога find: `../../external/libphonenumber/java/src': Нет такого файла или каталога build/core/java.mk:19: *** base: Target java module does not define any source or resource files. Останов. подскажите пожалуйста, что я делаю не так?
Sk8er
2012-07-22 03:38:00
Ну написано же почти в каждой строчке "Нет такого файла или каталога". Разве тонкий намёк?