2013-03-30 5 views
10

Я строию AOSP 4.2 Jelly Bean. Все нормально, когда я устанавливаю конфигурацию по умолчанию full-eng и запускаю ее на эмуляторе.AOSP на заказ пользовательского устройства

Мне нужно создать пользовательское устройство и запустить его (на emulator - для тестирования, если он действительно работает, и на реальном устройстве). Когда я создаю пользовательское устройство на основе файла full_base.mk и запускаю его на emulator - emulator просто зависает на первом экране с текстом ANDROID и не загружается вообще. У меня есть system.img, userdata.img, ramdisk.img после того, как выстроились в каталог. Это все, что мне нужно для создания пользовательского AOSP и запуска его на устройстве? Могу ли я запускать свою сборку на эмуляторе или на реальном устройстве?

Должен ли я иметь что-то дополнительное для построения AOSP для реального устройства: ядро, драйверы устройств и т. Д.?

файлы папки пользовательского устройства (устройство/my_company/my_product):

Android.mk

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 

ifneq ($(filter my_product,$(TARGET_DEVICE)),) 
include $(call all-makefiles-under,$(LOCAL_PATH)) 
endif 

AndroidProducts.mk

PRODUCT_MAKEFILES := \ 
    $(LOCAL_DIR)/full_myproduct.mk 

BoardConfig.mk

TARGET_NO_BOOTLOADER := true 
TARGET_NO_KERNEL := true 

TARGET_ARCH := arm 

TARGET_ARCH_VARIANT := armv7-a 
TARGET_CPU_VARIANT := generic 
TARGET_CPU_ABI := armeabi-v7a 
TARGET_CPU_ABI2 := armeabi 

HAVE_HTC_AUDIO_DRIVER := true 
BOARD_USES_GENERIC_AUDIO := true 

# no hardware camera 
USE_CAMERA_STUB := true 

# Enable dex-preoptimization to speed up the first boot sequence 
# of an SDK AVD. Note that this operation only works on Linux for now 
ifeq ($(HOST_OS),linux) 
    ifeq ($(WITH_DEXPREOPT),) 
    WITH_DEXPREOPT := true 
    endif 
endif 

# Build OpenGLES emulation guest and host libraries 
BUILD_EMULATOR_OPENGL := true 

# Build and enable the OpenGL ES View renderer. When running on the emulator, 
# the GLES renderer disables itself if host GL acceleration isn't available. 
USE_OPENGL_RENDERER := true 

full_myproduct.mk

$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk) 
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) 

#DEVICE_PACKAGE_OVERLAYS := 
#PRODUCT_PACKAGES += 
#PRODUCT_COPY_FILES += 

PRODUCT_NAME := full_myproduct 
PRODUCT_DEVICE := myproduct 
PRODUCT_MODEL := Customized Android 
PRODUCT_BRAND := Android 

vendorsetup.sh

add_lunch_combo full_myproduct-userdebug 
+0

Что-нибудь в logcat? Обычно в этом случае умерли системные службы. – StarPinkER

+0

Вы сказали, что строили устройство. Http://www.alibaba.com/product-gs/721860794/7_capacitive_screen_multi_touch_tablet.html Не могли бы вы рассказать, где вы нашли драйверы для этого устройства? – Rom098

+0

драйвер предоставляется поставщиком. Если вы создаете пользовательский ПЗУ для определенного устройства (а не Google. Драйверы устройств google доступны бесплатно), вы можете обратиться к поставщику и запросить драйверы конкретного устройства. –

ответ

12

Похоже, у вас есть хороший захват на AOSP систему сборки, особенно о том, как добавить новый устройства.

full-eng только предназначается для эмулятора. Обычно вы создаете пользовательский .img для рассматриваемого устройства, так как драйверы оборудования играют большую роль в работе устройства или нет.

Например, если у вас есть grouper или maguro, вы должны создать здание для этого устройства, а не full-eng. lunch должен перечислить дополнительные устройства при их добавлении к вашим device/ и vendor/ деревьям. Google предоставляет файлы, необходимые для создания линии устройств Nexus на своем [сайте] [https://developers.google.com/android/nexus/drivers].

Для чего вы настраиваете устройство? Если ваше устройство продано коммерчески, есть вероятность, что кто-то из XDA пытается подключить AOSP и друзей (CM, AOKP и т. Д.) К вашему устройству.

Даже если ваше устройство не находится на XDA, скорее всего, оно имеет аппаратное обеспечение, общее с множеством других устройств, которые вы можете найти на AOSP. В этот момент вам нужно будет использовать вишню для выбора конкретных драйверов кода, например, чипсеты для Wi-Fi, звуковые устройства и т. Д.

У меня нет хорошей грунтовки для строительства с верхней части головы, но http://wiki.cyanogenmod.org/w/Main_Page должен быть вам полезен.Эта вики значительно улучшилась с момента ее создания и теперь содержит множество полезных сведений.

+0

Мне нужно создать для устройства http://www.alibaba.com/product-gs/721860794/7_capacitive_screen_multi_touch_tablet.html. Если я правильно понимаю, для пользовательской сборки недостаточно минимальных настроек, определенных мной, но мне также нужно указать и предоставить драйверы в папке device/my_company/my_product? –

+0

драйверы будут находиться в папке 'vendor/my_company/my_product', но да. посмотрите, как CyanogenMod делает это: https://github.com/TheMuppets/proprietary_vendor_samsung –

1

Вам не хватает некоторых драйверов поставщика. goto: https://developers.google.com/android/nexus/drivers

загрузил соответствующие драйверы для точного устройства. поместите файл * .sh в верхний каталог aosp. запустите каждый файл оболочки и примите условия.

затем перекомпилируйте код!

+0

Я думаю, что это решение. Я создаю AOSP с Android 5.1.1, но есть проблема с OpenGL (который я нашел в logcat). – GensaGames

Смежные вопросы