Android compile — различия между версиями
Angell (обсуждение | вклад) (→Скачивание Андроида) |
Angell (обсуждение | вклад) (→Подготовка к компиляции Андроида) |
||
Строка 116: | Строка 116: | ||
После этого опять выполняем | После этого опять выполняем | ||
− | + | $ repo sync | |
− | $ repo sync | + | |
и происходит скачивание еще 3 дополнительных проектов. | и происходит скачивание еще 3 дополнительных проектов. | ||
Строка 123: | Строка 122: | ||
Теперь подключаем телефон к компьютеру, чтобы скачать несколько файлов с него. | Теперь подключаем телефон к компьютеру, чтобы скачать несколько файлов с него. | ||
Заходим в директорию mydroid/vendor/htc/dream | Заходим в директорию mydroid/vendor/htc/dream | ||
− | + | $ cd mydroid/vendor/htc/dream | |
− | + | ||
− | $ cd mydroid/vendor/htc/dream | + | |
и тут несколько вариантов дальнейших действий: | и тут несколько вариантов дальнейших действий: | ||
− | + | *в терминале просто пишем | |
− | + | $ sudo extract-files.sh | |
− | + | ||
− | $ sudo extract-files.sh | + | |
− | + | ||
и скрипт выполняется. В каталоге появляется новая папка и в ней лежат файлы с Андроида. Или можно в файловом менеджере просто 2 раза кликнуть на этот файл, что вызовет его запуск. | и скрипт выполняется. В каталоге появляется новая папка и в ней лежат файлы с Андроида. Или можно в файловом менеджере просто 2 раза кликнуть на этот файл, что вызовет его запуск. | ||
− | + | * если не удалось запустить скрипт ни через терминал, ни через браузер, потому пришлось пойти по немного длинному пути. Открываете скрипт в текстовом редакторе (правый клик в браузере) или в терминале: | |
− | + | $ gedit extract-files.sh | |
− | + | ||
− | $ gedit extract-files.sh | + | |
Строка 147: | Строка 139: | ||
Создаем файл buildspec.mk в каталоге mydroid: | Создаем файл buildspec.mk в каталоге mydroid: | ||
− | + | $ cd mydroid | |
− | $ cd mydroid | + | $ gedit buildspec.mk |
− | $ gedit buildspec.mk | + | |
В него вписываем следующие строки: | В него вписываем следующие строки: | ||
− | + | TARGET_PRODUCT:=htc_dream | |
− | TARGET_PRODUCT:=htc_dream | + | |
Пояснение: эта строка минимум, все остальные являются тестовыми на период интеграции cupcake и могут быть изменены или дополнены при следующих апдейтах Андроида. | Пояснение: эта строка минимум, все остальные являются тестовыми на период интеграции cupcake и могут быть изменены или дополнены при следующих апдейтах Андроида. | ||
− | + | BOARD_WLAN_TI_STA_DK_ROOT:=./system/wlan/ti/sta_dk_4_0_4_32 | |
− | + | BOARD_HAVE_BLUETOOTH:=true | |
− | + | ||
− | BOARD_WLAN_TI_STA_DK_ROOT:=./system/wlan/ti/sta_dk_4_0_4_32 | + | |
− | BOARD_HAVE_BLUETOOTH:=true | + | |
Строка 169: | Строка 156: | ||
Далее в файле vendor/htc/dream/init.trout.rc убираем –Х из строчки service dhcpcd, должно получиться так: | Далее в файле vendor/htc/dream/init.trout.rc убираем –Х из строчки service dhcpcd, должно получиться так: | ||
− | + | service dhcpcd /system/bin/logwrapper dhcpcd -d tiwlan0 | |
− | service dhcpcd /system/bin/logwrapper dhcpcd -d tiwlan0 | + | |
Это тоже относится к периоду компиляции Андроида с капкейком и не является обязательным при нормальной компиляции Андроида. | Это тоже относится к периоду компиляции Андроида с капкейком и не является обязательным при нормальной компиляции Андроида. | ||
− | |||
== Компиляция и закачка файлов на телефон == | == Компиляция и закачка файлов на телефон == | ||
Версия 16:02, 21 сентября 2010
[ Toshiba G900 ] | [ TODO ] | [ Характеристики ] | [ Компиляция ядра ] | [ Компиляция Андройда ]
Содержание
Предисловие.
Ниже приведен вариант с установкой под 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
!!! Перезагрузка !!!
Установка 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
Полный список проектов можно увидеть в терминале при синхронизации репозитория.
В процессе выполнения инициализации попросят ввести имя и емаил. Если вы хотите работать с Андроидом и отсылать свой код Гуглу, то емаил должен быть от 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
Всё, телефон перегружается и у вас в нем последний (ну или указанный) билд Андроида.