Android compile — различия между версиями
Angell (обсуждение | вклад) |
Angell (обсуждение | вклад) (→Подготовка к компиляции Андроида) |
||
Строка 30: | Строка 30: | ||
Прежде всего учитывайте, что на текущий момент единственный проверенный способ получить последнюю версию Андроида после компиляции – это заново скачать 1.5 Гб. Ибо после компиляции синхронизация с репозиторием не работает. | Прежде всего учитывайте, что на текущий момент единственный проверенный способ получить последнюю версию Андроида после компиляции – это заново скачать 1.5 Гб. Ибо после компиляции синхронизация с репозиторием не работает. | ||
+ | * докачиваем необходимые пакеты (кто знает как это сделать через repo поправте) | ||
+ | ** alsa | ||
− | * правим конфигурационные файлы | + | * создаем фалы платформы и правим конфигурационные файлы |
+ | |||
+ | mkdir build/target/board/g900 | ||
− | nano build/target/board/ | + | nano build/target/board/g900/AndroidBoard.mk: |
приводим к виду | приводим к виду | ||
− | + | LOCAL_PATH := $(call my-dir) | |
− | + | file := $(TARGET_OUT_KEYLAYOUT)/querty.kl | |
+ | ALL_PREBUILT += $(file) | ||
+ | $(file) : $(LOCAL_PATH)/querty.kl | $(ACP) | ||
+ | $(transform-prebuilt-to-target) | ||
+ | include $(CLEAR_VARS) | ||
+ | LOCAL_SRC_FILES := querty.kcm | ||
+ | include $(BUILD_KEY_CHAR_MAP) | ||
− | nano build/target/board/ | + | nano build/target/board/g900/BoardConfig.mk: |
приводим к виду | приводим к виду | ||
+ | |||
+ | # config.mk | ||
+ | # | ||
+ | # Product-specific compile-time definitions. | ||
+ | # | ||
TARGET_NO_BOOTLOADER := true | TARGET_NO_BOOTLOADER := true | ||
TARGET_NO_KERNEL := true | TARGET_NO_KERNEL := true | ||
Строка 52: | Строка 67: | ||
TARGET_ARCH_VARIANT := armv5te-vfp | TARGET_ARCH_VARIANT := armv5te-vfp | ||
+ | |||
+ | nano build/target/board/generic/system.prop | ||
+ | приводим к виду | ||
+ | rild.libpath=/system/lib/g900-ril.so | ||
+ | rild.libargs=-d /dev/ttyS0 | ||
+ | |||
+ | nano build/target/product/AndroidProducts.mk | ||
+ | ДОБАВЛЯЕМ | ||
+ | $(LOCAL_DIR)/g900.mk \ | ||
+ | создаем g900.mk | ||
+ | nano build/target/product/g900.mk | ||
+ | и приводим к виду | ||
+ | # Superclass | ||
+ | $(call inherit-product, build/target/product/generic.mk) | ||
+ | # Overrides | ||
+ | PRODUCT_NAME := loox | ||
+ | PRODUCT_DEVICE := loox | ||
+ | PRODUCT_MANUFACTURER := loox | ||
+ | ну и под конец создаем buildspec.mk в корне проекта (в нашем слечае папка ~/mydroid) | ||
+ | nano buildspec.mk | ||
+ | вписываем | ||
+ | TARGET_PRODUCT:= loox | ||
== Компиляция и закачка файлов на телефон == | == Компиляция и закачка файлов на телефон == |
Версия 19:56, 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 Гб. Ибо после компиляции синхронизация с репозиторием не работает.
- докачиваем необходимые пакеты (кто знает как это сделать через repo поправте)
** alsa
- создаем фалы платформы и правим конфигурационные файлы
mkdir build/target/board/g900
nano build/target/board/g900/AndroidBoard.mk:
приводим к виду
LOCAL_PATH := $(call my-dir) file := $(TARGET_OUT_KEYLAYOUT)/querty.kl ALL_PREBUILT += $(file) $(file) : $(LOCAL_PATH)/querty.kl | $(ACP) $(transform-prebuilt-to-target) include $(CLEAR_VARS) LOCAL_SRC_FILES := querty.kcm include $(BUILD_KEY_CHAR_MAP)
nano build/target/board/g900/BoardConfig.mk:
приводим к виду
# config.mk # # Product-specific compile-time definitions. # 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
nano build/target/board/generic/system.prop
приводим к виду
rild.libpath=/system/lib/g900-ril.so rild.libargs=-d /dev/ttyS0
nano build/target/product/AndroidProducts.mk
ДОБАВЛЯЕМ
$(LOCAL_DIR)/g900.mk \
создаем g900.mk
nano build/target/product/g900.mk
и приводим к виду
# Superclass $(call inherit-product, build/target/product/generic.mk) # Overrides PRODUCT_NAME := loox PRODUCT_DEVICE := loox PRODUCT_MANUFACTURER := loox
ну и под конец создаем buildspec.mk в корне проекта (в нашем слечае папка ~/mydroid)
nano buildspec.mk
вписываем
TARGET_PRODUCT:= loox
Компиляция и закачка файлов на телефон
Выполняем команду 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 билд