Внимание! Эта инструкция не позволит вам создать полнофункциональную прошивку сразу, но даст вам возможность начать работать над ней.
Исходники занимают примерно 6Gb. Вам нужно около 25Gb свободного места чтобы скомпилировать 1 билд и до 80Gb (или больше) для полного комплекта сборки.
Перед началом компиляции Jelly Bean на Ubuntu необходимо пройти несколько шагов по настройке компьютера, чтобы получить готовый инструмент.
Инструкция
Вам необходимо следующее:
JDK 6, если вы хотите скомпилировать Jelly bean. Вы можете скачать его с java.sun.com или:
1
2
3
|
sudo
add
-
apt
-
repository
"deb /archive.canonical.com/ lucid partner"
sudo
apt
-
get
update
sudo
apt
-
get
install
sun
-
java6
-
jdk
|
Python 2.4 - 2.7, который можно загрузить из python.org или:
1
|
sudo
apt
-
get
install
python
|
Git 1.7 или новее. Вы можете найти его в git-scm.com или:
1
|
sudo
apt
-
get
install
git
-
core
|
Установите необходимые пакеты. 64-bit (рекомендуется):
1
|
sudo
apt
-
get
install
git
-
core
gnupg
flex
bison
gperf
build
-
essential
zip
curl
zlib1g
-
dev
libc6
-
dev
lib32ncurses5
-
dev
ia32
-
libs
x11proto
-
core
-
dev
libx11
-
dev
lib32readline5
-
dev
lib32z
-
dev
libgl1
-
mesa
-
dev
g
++
-
multilib
mingw32
tofrodos
python
-
markdown
libxml2
-
utils
|
В новых версиях Ubuntu, таких как 11.10 возможно потребуется выполнить следующие действия:
1
|
sudo
ln
-
s
/
usr
/
lib
/
i386
-
linux
-
gnu
/
libX11
.so
.
6
/
usr
/
lib
/
i386
-
linux
-
gnu
/
libX11
.so
|
В Ubuntu 12.04 в настоящее время есть только экспериментальная поддержка и не гарантируется работа по другим веткам отличным от master.
1
2
|
sudo
apt
-
get
install
git
-
core
gnupg
flex
bison
gperf
build
-
essential
zip
curl
libc6
-
dev
libncurses5
-
dev
:
i386
x11proto
-
core
-
dev
libx11
-
dev
:
i386
libreadline6
-
dev
:
i386
libgl1
-
mesa
-
glx
:
i386
libgl1
-
mesa
-
dev
g
++
-
multilib
mingw32
openjdk
-
6
-
jdk
tofrodos
python
-
markdown
libxml2
-
utils
xsltproc
zlib1g
-
dev
:
i386
sudo
ln
-
s
/
usr
/
lib
/
i386
-
linux
-
gnu
/
mesa
/
libGL
.so
.
1
/
usr
/
lib
/
i386
-
linux
-
gnu
/
libGL
.so
|
Теперь настроим USB:
1
|
sudo
gedit
/
etc
/
udev
/
rules
.d
/
51
-
android
.rules
|
Вставьте это внутрь пустого текстового файла
1
|
#Acer SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666" #ASUS SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666" #Dell SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666" #Foxconn SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666" #Garmin-Asus SUBSYSTEM=="usb", ATTR{idVendor}=="091E", MODE="0666" #Google SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666" #HTC SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666" #Huawei SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666" #K-Touch SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666" #KT Tech SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666" #Kyocera SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666" #Lenevo SUBSYSTEM=="usb", ATTR{idVendor}=="17EF", MODE="0666" #LG SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666" #Motorola SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666" #NEC SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666" #Nook SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666" #Nvidia SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666" #OTGV SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666" #Pantech SUBSYSTEM=="usb", ATTR{idVendor}=="10A9", MODE="0666" #Philips SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666" #PMC-Sierra SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666" #Qualcomm SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666" #SK Telesys SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666" #Samsung SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666" #Sharp SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666" #Sony Ericsson SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666" #Toshiba SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666" #ZTE SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666"
|
Сохраните файл и закройте его, а затем выполните следующую команду:
1
|
sudo
chmod
a
+
r
/
etc
/
udev
/
rules
.d
/
51
-
android
.rules
|
Установите repo:
1
2
3
4
|
mkdir
~
/
bin
PATH
=
~
/
bin
:
$PATH
curl
https
:
/
/
dl
-
ssl
.google
.com
/
dl
/
googlesource
/
git
-
repo
/
repo
&
gt
;
~
/
bin
/
repo
chmod
a
+
x
~
/
bin
/
repo
|
Запустите repo:
1
2
3
|
mkdir
WORKING_DIRECTORY
cd
WORKING_DIRECTORY
repo
init
-
u
https
:
/
/
android
.googlesource
.com
/
platform
/
manifest
-
b
android
-
4.1.1_r1
|
Для людей у которых уже есть готовый repo:
1
2
3
|
cd
WORKING_DIRECTORY
repo
init
-
b
android
-
4.1.1_r1
repo
sync
|
Если потребуется, введите ваше имя и адрес электронной почты.
Соберите файлы:
1
|
repo
sync
|
Скомпилируйте:
1
|
source
build
/
envsetup
.sh
|
или
1
|
.
build
/
envsetup
.sh
|
Запуск:
1
|
lunch
|
Выберите свое устройство.
Теперь выполните команду:
1
|
make
-
j
#
|
Где решётка (#) - это число ядер процессора + 1, например у меня есть 2-ядерный процессор, то я пишу "make -j3".
Как добавить устройство в список
Найдите на GitHub устройства, которые вы хотите добавить (для меня это HTC Evo 3D-CDMA). Теперь перейдите в папку куда вы собираетесь клонировать дерево устройства:
1
2
|
cd
WORKING_DIRECTORY
/
device
mkdir
htc
|
Клонируйте с GitHub дерева устройства с удаленного на локальный (удостоверьтесь, что папка будет называться так же, как стандартное имя для вашего устройства, например: Nexus One [passion], Nexus S [crespo] Motorola Droid [sholes], HTC Incredible [inc] и т.д.):
1
|
git
clone
git
:
/
/
github
.com
/
CyanogenMod
/
android_device_htc_shooter
.git
shooter
|
Теперь перейдите в папку:
1
|
cd
shooter
|
Подключите телефон к компьютеру и убедитесь, что отладка для USB включена и adb работает должным образом. Извлеките собственные файлы устройства:
1
|
.
/
extract
-
files
.sh
|
Вернитесь в свой домашний каталог
1
|
cd
~
/
WORKING_DIRECTORY
|
Подготовьтесь к компиляции:
1
|
source
build
/
envsetup
.sh
|
или
1
|
.
build
/
envsetup
.sh
|
Получите список ваших устройств:
1
|
lunch
|
Выберите свое устройство, затем компилируйте:
1
|
make
-
j
#
|
Или для создания zip архива для прошивки:
1
|
make
-
j
# otapackage
|
В итоге получаем скомпилированный Jelly Bean под определенное устройство. Теперь можно попробовать запустить его на вашем устройстве, посмотреть что работает, а что нет, затем заняться оптимизацией новой версии Android, сделать свою прошивку на базе AOSP и т.д.