Android compile

Материал из G900
Версия от 15:51, 21 сентября 2010; 192.168.0.2 (обсуждение) (Новая страница: «Предисловие. Ниже приведен вариант с установкой под Ubuntu 8.10 (скачать можно отсюда). Также п...»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Предисловие.

Ниже приведен вариант с установкой под Ubuntu 8.10 (скачать можно отсюда). Также пробывал вариант с Windows и VMWare Image, но от него пришлось отказаться – во первых, образ необходимо расширять, в базовом комплекте там 8 Гб, а нужно порядка 20 Гб, во-вторых, мне не удалось прошить образ в трубу, не хотело закачивать (об этом также писали и буржуйские фанаты Андроида).

Благодарности: felicita за помощь в борьбе с Убунтой и Андроидом.

1. Подготовка к работе.

Необходимо установить следующие пакеты (указанные ниже команды вводить с терминале. если команда вдруг не срабатывает или Убунта пишет о невозможности её выполнения - добавляйте sudo перед командой):


Git 1.5.4 или более новая версия и GNU Privacy Guard.

Код $ sudo apt-get install git-core gnupg


JDK 5.0, update 12 или выше:

Код $ sudo apt-get install sun-java6-jdk


Прочие пакеты:

Код $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-de


Valgrind:

Код $ sudo apt-get install valgrind


Владельцам Ubuntu 8.10 ставить обязательно этот пакет:

Код $ sudo apt-get install libreadline5-dev

(на сайте разработчиков почему-то указан пакет lib32readline5-dev, но его нету).

 Android  SDK (для  компиляции  андроида):

Скачать соответствующий архив отсюда, просто разархивировать на диск, добавить путь к папке в $PATH

После установки SDK создать файл /etc/udev/rules.d/50- android .rules

Код $ sudo gedit /etc/udev/rules.d/50-android.rules


В зависимости от того, какой у вас Линукс, в файл добавить следующую строчку


Gusty/Hardy (для Убунты 8.10)

Код SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666" Dapper

Код SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4", MODE="0666"


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

Код $ chmod a+rx /etc/udev/rules.d/50-android.rules


!!! Перезагрузка !!!

2. Установка Repo

Создание каталога:

Код $ cd ~ $ mkdir bin $ echo $PATH


Смотрим, чтобы в переменной $PATH был путь к нашему каталогу (~/bin). Если нету – добавляем

Код $PATH=/home/<имя юзера>/bin


Скачиваем Repo и делаем его исполняемым.

Код $ curl http://android.git.kernel.org/repo >~/bin/repo $ chmod a+x ~/bin/repo


3. Инициализация Repo

Создаем каталог, где будем хранить исходник Андроида:

Код $ mkdir mydroid $ cd mydroid


Инициализируем Repo

Код $ repo init -u git://android.git.kernel.org/platform/manifest.git


Данная команда инициализирует репозиторий, в который включены все проекты (branch) Андроида (образно, последний билд, и далеко не самый стабильный), для работы с определенными проектами (например, ожидаемый cupcake или текущий стабильный билд release-1.0) необходимо дополнительно указывать проект в строке инициализации:


Код $ repo init -u git://android.git.kernel.org/platform/manifest.git -b release-1.0


Полный список проектов можно увидеть в терминале при синхронизации репозитория. В процессе выполнения инициализации попросят ввести имя и емаил. Если (ну вдруг, всякое в жизни бывает (IMG:http://use-android.ru/forum/style_emoticons/default/rolleyes.gif) ) вы хотите работать с Андроидом и отсылать свой код Гуглу, то емаил должен быть от Gmail аккаунта.

В случае успешного завершения инициализации вы увидите надпись:

Код repo initialized in /mydroid


4. Скачивание Андроида

Заходим в директорию и запускаем repo на синхронизацию:

Код $ cd mydroid $ repo sync


Всё, началось скачивание. Процесс это долгий, качать порядка 1.5 Гб, которым потом еще и распаковываться в процессе. Если случился обрыв связи или вдруг вы не компилировали Андроида, то опять заходите в свой рабочий каталог и выполняете команду

Код $ repo sync

и процесс продолжится.

5. Подготовка к компиляции Андроида

Прежде всего учитывайте, что на текущий момент единственный проверенный способ получить последнюю версию Андроида после компиляции – это заново скачать 1.5 Гб. Ибо после компиляции синхронизация с репозиторием не работает. Удаления некоторых типов папок, как пишет Гугл, эффекта не дали – синхронизация закончилась ошибкой. Так что буду благодарен за метод синхронизации без постоянной скачки гигабайтов информации.

Скачиваем local_manifest.xml отсюда и помещаем его в каталог .repo (невидимый по дефолту, включить для отображения опцию "Показать скрытые файлы" в Файловом менеджере Убунты). После этого опять выполняем

Код $ repo sync

и происходит скачивание еще 3 дополнительных проектов.

Теперь подключаем телефон к компьютеру, чтобы скачать несколько файлов с него. Заходим в директорию mydroid/vendor/htc/dream

Код $ cd mydroid/vendor/htc/dream


и тут несколько вариантов дальнейших действий: А) в терминале просто пишем

Код $ sudo extract-files.sh


и скрипт выполняется. В каталоге появляется новая папка и в ней лежат файлы с Андроида. Или можно в файловом менеджере просто 2 раза кликнуть на этот файл, что вызовет его запуск.

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

Код $ gedit extract-files.sh


Получаете список команд, которые выполняет скрипт. И просто их копируете в терминал и выполняете. Тут возможно будет ругаться на незнание команды adb, значит не прописан путь к SDK, тогда перед adb ручками дописываем путь к этому файлу в каталоге с SDK.

Создаем файл buildspec.mk в каталоге mydroid:

Код $ cd mydroid $ gedit buildspec.mk


В него вписываем следующие строки:

Код TARGET_PRODUCT:=htc_dream


Пояснение: эта строка минимум, все остальные являются тестовыми на период интеграции cupcake и могут быть изменены или дополнены при следующих апдейтах Андроида.


Код BOARD_WLAN_TI_STA_DK_ROOT:=./system/wlan/ti/sta_dk_4_0_4_32 BOARD_HAVE_BLUETOOTH:=true


Как видно, эти строки используют для запуска вай-фай и блютуз. Вай-фай запустился, а вот блютузу не помогло. Далее в файле vendor/htc/dream/init.trout.rc убираем –Х из строчки service dhcpcd, должно получиться так:

Код service dhcpcd /system/bin/logwrapper dhcpcd -d tiwlan0


Это тоже относится к периоду компиляции Андроида с капкейком и не является обязательным при нормальной компиляции Андроида.

6. Компиляция и закачка файлов на телефон

Выполняем команду make в директории и идем отдыхать часок-другой (IMG:http://use-android.ru/forum/style_emoticons/default/smile.gif)

Код $ cd mydroid $ make


В итоге, если всё правильно, в конце будут указаны img-файлы, которые создались при компиляции – recovery.img, boot.img, system.img, userdata.img.

2 варианта закачивания файлов на телефон:

Полная прошивка (все скомпилированные образы прошиваются):

Код $ chmod a+x fastboot $ fastboot –w flashall $ fastboot reboot


Выборочная прошивка:

Код $ chmod a+x fastboot $ fastboot flash system system.img $ fastboot flash boot boot.img $ fastboot flash userdata userdata.img $ fastboot reboot

Всё, телефон перегружается и у вас в нем последний (ну или указанный) билд Андроида.