Android compile — различия между версиями

Материал из G900
Перейти к: навигация, поиск
Строка 7: Строка 7:
 
Благодарности: felicita за помощь в борьбе с Убунтой и Андроидом.
 
Благодарности: felicita за помощь в борьбе с Убунтой и Андроидом.
  
1. Подготовка к работе.
+
 
 +
== Подготовка к работе. ==
 +
 
  
 
Необходимо установить следующие пакеты (указанные ниже команды вводить с терминале. если команда вдруг не срабатывает или Убунта пишет о невозможности её выполнения - добавляйте sudo перед командой):
 
Необходимо установить следующие пакеты (указанные ниже команды вводить с терминале. если команда вдруг не срабатывает или Убунта пишет о невозможности её выполнения - добавляйте sudo перед командой):
Строка 73: Строка 75:
 
!!! Перезагрузка !!!
 
!!! Перезагрузка !!!
  
2. Установка Repo
+
 
 +
== Установка Repo ==
 +
 
  
 
Создание каталога:
 
Создание каталога:
Строка 96: Строка 100:
  
  
3. Инициализация Repo
+
 
 +
== Инициализация Repo ==
 +
 
  
 
Создаем каталог, где будем хранить исходник Андроида:
 
Создаем каталог, где будем хранить исходник Андроида:
Строка 127: Строка 133:
  
  
4. Скачивание Андроида
+
 +
== Скачивание Андроида ==
  
 
Заходим в директорию и запускаем repo на синхронизацию:
 
Заходим в директорию и запускаем repo на синхронизацию:
Строка 143: Строка 150:
 
и процесс продолжится.
 
и процесс продолжится.
  
5. Подготовка к компиляции Андроида
+
 
 +
== Подготовка к компиляции Андроида ==
 +
 
  
 
Прежде всего учитывайте, что на текущий момент единственный проверенный способ получить последнюю версию Андроида после компиляции – это заново скачать 1.5 Гб. Ибо после компиляции синхронизация с репозиторием не работает. Удаления некоторых типов папок, как пишет Гугл, эффекта не дали – синхронизация закончилась ошибкой. Так что буду благодарен за метод синхронизации без постоянной скачки гигабайтов информации.
 
Прежде всего учитывайте, что на текущий момент единственный проверенный способ получить последнюю версию Андроида после компиляции – это заново скачать 1.5 Гб. Ибо после компиляции синхронизация с репозиторием не работает. Удаления некоторых типов папок, как пишет Гугл, эффекта не дали – синхронизация закончилась ошибкой. Так что буду благодарен за метод синхронизации без постоянной скачки гигабайтов информации.
Строка 209: Строка 218:
 
Это тоже относится к периоду  компиляции  Андроида с капкейком и не является обязательным при нормальной  компиляции  Андроида.
 
Это тоже относится к периоду  компиляции  Андроида с капкейком и не является обязательным при нормальной  компиляции  Андроида.
  
6. Компиляция  и закачка файлов на телефон
+
   
 +
== Компиляция  и закачка файлов на телефон ==
 +
 
  
 
Выполняем команду make в директории и идем отдыхать часок-другой (IMG:http://use-android.ru/forum/style_emoticons/default/smile.gif)  
 
Выполняем команду make в директории и идем отдыхать часок-другой (IMG:http://use-android.ru/forum/style_emoticons/default/smile.gif)  

Версия 15:55, 21 сентября 2010

[ Toshiba G900 ] | [ TODO ] | [ Характеристики ] | [ Компиляция ядра ] | [ Компиляция Андройда ]

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

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

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


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

Необходимо установить следующие пакеты (указанные ниже команды вводить с терминале. если команда вдруг не срабатывает или Убунта пишет о невозможности её выполнения - добавляйте 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


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


Установка 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


Инициализация 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


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

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

Код $ cd mydroid $ repo sync


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

Код $ repo sync

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


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

Прежде всего учитывайте, что на текущий момент единственный проверенный способ получить последнюю версию Андроида после компиляции – это заново скачать 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


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


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

Выполняем команду 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

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