Учебники (How-To & F.A.Q)
   1240

Подготовка окружения к работе с Android

Источник: ArchWiki
Не претендую на создание беспрекословного руководства! Принимаются любые пожелания и правки
Если у Вас установлена не моя сборка, то проверьте, установлены ли пакеты android-tools и android-udev. А также в файле /etc/pacman.conf должны быть раскомментированы следующие строчки:
[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

После приведения всех этих условий в порядок, обновите систему.

Установка Android SDK
yaourt -S android-sdk
yaourt -S android-sdk-platform-tools
yaourt -S android-sdk-build-tools
# groupadd sdkusers
# gpasswd -a <user> sdkusers           <----- замените <user> на имя вашего пользователя системы
# chown -R :sdkusers /opt/android-sdk/
# chmod -R g+w /opt/android-sdk/

После установки всех пакетов и правки прав и групп нужно перелогинится в системе.

Так же, установите нужную Вам платформу:
Список платформ AUR
android-platformAUR (latest)
android-platform-24 (7.0)
android-platform-23 (6.0)
android-platform-22 (5.1.1)
android-platform-21 (5.0.1)
android-platform-20 (4.4W.2)
android-platform-19 (4.4.2)
android-platform-18 (4.3.1)
android-platform-17 (4.2.2)
android-platform-16 (4.1.2)
android-platform-15 (4.0.4)
android-platform-14 (4.0.2)

Установка Java Development Kit
Android 7 (Nougat) можно скомпилировать при помощи jdk8-openjdk.
Для Android 5 и 6 (Lollipop and Marshmallow), нужно установить jdk7-openjdk из офф репозитория.
Для остальных версий потребуется установка Oracle JDK:
Начиная с Gingerbread до KitKat (2.3 — 4.4), установите jdk6 из AUR.
Более старые версии — jdk5.

repo
Здесь на Ваше усмотрение, я пользуюсь из репозитория Manjaro
# pacman -S repo

Можно же использовать следующий способ:

$ mkdir ~/bin
$ export PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

Расписывать порядок работы с этой утилитой не буду, материала на эту тему и так полно.
Дополню лишь, что для работы с Git, нужно выполнить следующие команды с Вашими значениями:

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"


Недостающие пакеты
# pacman -S gperf wxgtk schedtool perl-switch python2-virtualenv maven uboot-tools cpio

Вместо стандартного gcc нужен gcc-multilib

Ну и пакеты из AUR: ncurses5-compat-libs и lib32-ncurses5-compat-libs
Перед их установкой нужно выполнить в терминале следующую команду:
$ gpg --recv-keys 702353E0F7E48EDB

Python
Создадим каталог ~/bin (если его еще нет):
$ mkdir ~/bin

и линкуем:
$ ln -s /usr/bin/python2 ~/bin/python
$ ln -s /usr/bin/python2-config ~/bin/python-config

Перед компиляцией (единожды в текущей сессии) выполняем:
$ export PATH=~/bin:$PATH

А для проверки линка можно выполнить это:
$ which python

Оптимизация системы сборки, по рекомендации SevenMaxs:
# pacman -S ccache

В файл ~/.bashrc добавить строчку
export USE_CCACHE=1

После чего нужно перезайти в систему или выполнить в терминале export USE_CCACHE=1
Выполнить в терминале команду
ccache --max-size 50G


Вроде все, система должна быть готовой к сборке и компиляции ОС Android. Если нашли недочет, пишите, дополню.
По топику — сделал для себя «шпаргалку» а то надоело рыскать по сайтам и собирать по крупицам из мануалов нужные пакеты.

Последние правки
19.09.16 Добавил пакеты uboot-tools и cpio (необходимы для работы Carliv Image, рекомендации SevenMaxs
20.09.16 Команды для работы с git

13 комментариев

avatar
Spidey, на твоей сборке уже давно собираю TWRP 3.0.2-0 на базе Marshmallow (OmniRom). Никаких проблем не было.
?
Всё гениальное — просто, а то что — сложно, то не работает!
Manjaro KDE-Minimal Stable от Spidey
+1
avatar
SevenMaxs, А по мануалу ничего важного не пропустил? Как раз систему свою наново установил и пошагово все писал и делал в своей системе. Сейчас запустил на сборку чужой проект (с него бу лепить свою прошивку) — пыхтит мой старичок, вроде без ошибок
?
СкаженЭ КотЭ в кедах =(^_^)=
KDE-Minimal Setting-Up
+1
avatar
Все, ок! По той же схеме делал, можешь добавить что в системе должен быть установлен обязательно пакет git.
Для ускорения сборки (в дальнейшем) можно установить еще один пакет ccache и в .bashrc добавить строку:

export USE_CCACHE=1


и наконец указать размер (мне хватает 50 Гб) ccache командой:

$ ccache --max-size 50G


Ну и как показывает мой личный опыт, лучше использовать x86_64 дистрибутивы.
К стати, для запуска сборки ПО на базе Marshmallow с OpenJDK 1.8 можно попробовать в .bashrc добавить строку:

export EXPERIMENTAL_USE_JAVA8=true

Лично проверял только на СМ-13.0
Последний раз редактировалось
?
Всё гениальное — просто, а то что — сложно, то не работает!
Manjaro KDE-Minimal Stable от Spidey
+1
avatar
SevenMaxs, ок, добавлю, как освобожусь.
Про OpenJDK 1.8 не знал, пока все по мануалу делаю при помощи 1.7, экспериментировать потом буду.
Я чего-то думал, что собирать можно только на x86_64 дистрибутивах, вроде как Google отказалась от x86 для сборки
?
СкаженЭ КотЭ в кедах =(^_^)=
KDE-Minimal Setting-Up
0
avatar
Spidey, поверь есть народ, который замается сборкой именно на x86. Но правда костыль на костыле. :)
?
Всё гениальное — просто, а то что — сложно, то не работает!
Manjaro KDE-Minimal Stable от Spidey
0
avatar
gpg --recv-keys 702353E0F7E48EDB
gpg: сбой при получении с сервера ключей: Серверы ключей недоступны
[eudakimau@ThinkPad ~]$ android-sdk
bash: android-sdk: команда не найдена
вот и всё
Последний раз редактировалось
0
avatar
Eudakimau, вместо команды android-sdk нужно вводить просто android…
И по ключам:
gpg --recv-keys 702353E0F7E48EDB
gpg: ключ 702353E0F7E48EDB: "Thomas Dickey <dickey@invisible-island.net>" 1 новая подпись
gpg: абсолютно доверенных ключей не найдено
gpg: Всего обработано: 1
gpg:                 новых подписей: 1
Последний раз редактировалось
?
СкаженЭ КотЭ в кедах =(^_^)=
KDE-Minimal Setting-Up
+1
avatar
А это не тоже самое?
?
Всё возможно, пока не сделан выбор !
0
avatar
Re2sgsII, Что общего по тексту нашел? Я лично только цель — сборка Android-прошивки. Инструментарий расписан другой, поэтапная подготовка окружения, недостающие пакеты.
Все в одном месте и по порядку, чтобы не бегать по постам и комментариям в поисках недостающего элемента. Короче чтоб без заморочек, а то у убунтуводов есть такие инструкции, а у нас нет
?
СкаженЭ КотЭ в кедах =(^_^)=
KDE-Minimal Setting-Up
+1
avatar
Вообще-то это тоже самое, сборка прошивки для Android, только для каждого рома свой repo

$ mkdir ~/android либо CM либо любая папка 
$ cd ~/android
$ repo init -u https://android.googlesource.com/platform/manifest -b master
-> далее repo CM
$ repo init -u git://github.com/CyanogenMod/android.git -b cm-12.0
-> далее
$ git config --global user.email "адрес почты"
$ git config --global user.name "логин"
$ repo sync -j4  


Далее
$ source .build/envsetup.sh
$ lunch имя_устройства
$ make -j4  

Здесь 4 — число потоков компиляции. 
Это значение рекомендуется выбирать между максимальным и удвоенным 
максимальным числом аппаратно поддерживаемых потоков 
(для процессоров AMD это число равно количеству ядер процессора, 
для Intel это число нужно умножить на два), 
с учетом того что на каждый поток уйдет как минимум 2 Гб оперативки, 
которая, кстати говоря, может закончиться в самый неподходящий момент.


К примеру у CM
Последний раз редактировалось
?
Всё возможно, пока не сделан выбор !
0
avatar
Не понял к чему это? repo установленный у меня из офф реп прекрасно качает исхи и AOSP и CM и RR на одной машине в одной системе, просто для каждой папки у него свои конфиги, которые он использует для синхронизации (каталог .repo в корне папки исхов)
И как раз работу с repo я вообще не описывал в тексте заметки. Там я просто написал что о нем рассказано очень много раз. Тем более Intel процессоры не всегда имеют 2 потока на ядро (core i5 некоторые, к примеру, или дешёвые Celeron или Pentium)
По Intel процессорам — умножать на 2 ни в коем случе не рекомендую (-jX). Нужно ориентироваться на ядра, а не потоки работы процессора, во многих темах это тоже уже часто упоминалось, тем более не стоит забывать об ОЗУ.
Последний раз редактировалось
?
СкаженЭ КотЭ в кедах =(^_^)=
KDE-Minimal Setting-Up
0
avatar
По поводу потоков:
платформа на базе Xeon E5-2683 v3 (14 ядер и 28 потоков), лично я собираю с -j28. Гораздо быстрее чем -j14 и нет никаких «перегрузок проца.».
Может просто проц. на это и рассчитан, хз, как будут вести себя i7, i5 и i3.

Дополнение: ОЗУ правда 64Гб и из них уходит около 31Гб.
Последний раз редактировалось
?
Всё гениальное — просто, а то что — сложно, то не работает!
Manjaro KDE-Minimal Stable от Spidey
+1
avatar
AMD я не видел в обсуждениях, а вот Intel встречались. Хотя сам опять же, собираю на AMD в -j2 (2 ядра и 4 ОЗУ, калькулятор, че)
Соглашусь с тем, что тут явно все упирается в ОЗУ — по 1ГБ на поток как минимум
?
СкаженЭ КотЭ в кедах =(^_^)=
KDE-Minimal Setting-Up
+1
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.