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

Материал из G900
Перейти к: навигация, поиск
(Подробно)
Строка 7: Строка 7:
 
Ниже приведен вариант с установкой под Ubuntu 8.10. Также можно с Windows и VMWare
 
Ниже приведен вариант с установкой под Ubuntu 8.10. Также можно с Windows и VMWare
  
<!--== Подготовка к работе. ==
 
 
 
Необходимо установить следующие пакеты (указанные ниже команды вводить с терминале. если команда вдруг не срабатывает или пишет о невозможности её выполнения - добавляйте 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
 
 
!!! Перезагрузка !!!
 
-->
 
  
 
=== Кратко ===
 
=== Кратко ===
Строка 73: Строка 22:
 
  repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
 
  repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
 
  repo sync
 
  repo sync
 
== Установка Repo ==
 
 
 
Создание каталога:
 
Скачиваем Repo и делаем его исполняемым.
 
$ su (попросят пароль суперпользователя root)
 
$ 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) необходимо дополнительно указывать проект в строке инициализации:
 
 
пример для froyo
 
 
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
 
 
 
Полный список проектов можно увидеть в терминале при синхронизации репозитория.
 
В процессе выполнения инициализации попросят ввести имя и емаил. Если вы хотите работать с Андроидом и отсылать свой код Гуглу, то емаил должен быть от Gmail аккаунта.
 
 
В случае успешного завершения инициализации вы увидите надпись:
 
repo initialized in /mydroid
 
 
== Скачивание Андроида ==
 
 
Заходим в директорию и запускаем repo на синхронизацию:
 
$ cd mydroid
 
$ repo sync
 
 
 
 
Всё, началось скачивание. Процесс это долгий, качать порядка 1.5 Гб, которым потом еще и распаковываться в процессе. Если случился обрыв связи или вдруг вы не компилировали Андроида, то опять заходите в свой рабочий каталог и выполняете команду
 
Всё, началось скачивание. Процесс это долгий, качать порядка 1.5 Гб, которым потом еще и распаковываться в процессе. Если случился обрыв связи или вдруг вы не компилировали Андроида, то опять заходите в свой рабочий каталог и выполняете команду
 
+
  repo sync
  $ repo sync
+
 
и процесс продолжится.
 
и процесс продолжится.
  
Строка 122: Строка 29:
  
  
Прежде всего учитывайте, что на текущий момент единственный проверенный способ получить последнюю версию Андроида после компиляции – это заново скачать 1.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
+
  
 +
* правим конфигурационные файлы
  
Как видно, эти строки используют для запуска вай-фай и блютуз. Вай-фай запустился, а вот блютузу не помогло.
+
nano build/target/board/generic/system.prop
Далее в файле vendor/htc/dream/init.trout.rc убираем –Х из строчки service dhcpcd, должно получиться так:
+
приводим к виду
 +
rild.libpath=/system/lib/g900-ril.so
 +
rild.libargs=-d /dev/ttyS0
  
  service dhcpcd /system/bin/logwrapper dhcpcd -d tiwlan0
+
  nano build/target/board/generic/BoardConfig.mk
 +
приводим к виду
 +
TARGET_NO_BOOTLOADER := true
 +
TARGET_NO_KERNEL := true
 +
TARGET_CPU_ABI := armeabi
 +
#HAVE_HTC_AUDIO_DRIVER := true
 +
#BOARD_USES_GENERIC_AUDIO := true
 +
BOARD_USES_ALSA_AUDIO := true
 +
BUILD_WITH_ALSA_UTILS := true
 +
BOARD_WPA_SUPPLICANT_DRIVER := WEXT
 +
BOARD_USE_G900_LIBLIGHTS := true
 +
BOARD_USE_G900_LIBSENSORS := false
 +
TARGET_ARCH_VARIANT := armv5te-vfp
  
-->
 
Это тоже относится к периоду  компиляции  Андроида с капкейком и не является обязательным при нормальной  компиляции  Андроида.
 
  
 
== Компиляция  и закачка файлов на телефон ==
 
== Компиляция  и закачка файлов на телефон ==

Версия 19:44, 28 октября 2010

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


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

Ниже приведен вариант с установкой под Ubuntu 8.10. Также можно с Windows и VMWare


Кратко

выполняем команды:

установка repo:

su (тут спросят пароль пользователя root)
curl http://android.git.kernel.org/repo >/bin/repo 
chmod a+x /bin/repo
exit (выходим из под суперюзера)

выкачиваем исходники:

mkdir ~/mydroid
cd ~/mydroid
repo init -u git://android.git.kernel.org/platform/manifest.git
repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
repo sync

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

repo sync

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

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

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

  • правим конфигурационные файлы
nano build/target/board/generic/system.prop

приводим к виду

rild.libpath=/system/lib/g900-ril.so
rild.libargs=-d /dev/ttyS0
nano build/target/board/generic/BoardConfig.mk

приводим к виду

TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := true
TARGET_CPU_ABI := armeabi
#HAVE_HTC_AUDIO_DRIVER := true
#BOARD_USES_GENERIC_AUDIO := true
BOARD_USES_ALSA_AUDIO := true
BUILD_WITH_ALSA_UTILS := true
BOARD_WPA_SUPPLICANT_DRIVER := WEXT
BOARD_USE_G900_LIBLIGHTS := true
BOARD_USE_G900_LIBSENSORS := false
TARGET_ARCH_VARIANT := armv5te-vfp


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

Выполняем команду make в директории и идем отдыхать часок-другой

$ cd mydroid
$ make


В итоге, если всё правильно, в конце будут указаны img-файлы, которые создались при компиляции – recovery.img, boot.img, system.img, userdata.img. НО ОНИ НАМ НЕ НУЖНЫ.

а нужно нам только папка out/target/product/generic/system из нее делаем файл образа system.img

и out/target/product/generic/root которая будет ramfs но для запуска необходимо поправить конфигурационные файлы

init.rc и default.prop

также необходимо init переименовать в init_1 и добавить стартовый скрипт init, но и его придеться поправить если это не donut билд