2013-03-30 39 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

驱动程序由厂方提供。如果您为特定设备创建自定义ROM(而不是谷歌。谷歌设备驱动程序是免费提供的),然后您联系供应商并请求设备特定的驱动程序。 –

回答

12

好像你有AOSP构建系统上掌握得很好,特别是对如何添加新设备。

full-eng只针对仿真器。通常你会为有问题的设备构建自定义.img,因为硬件驱动程序在设备是否工作中起着重要作用。

例如,如果您有groupermaguro,您最终将为该设备而不是full-eng构建。 lunch应该在您将其添加到您的device/vendor/树中时列出其他设备。 Google在他们的[网站] [https://developers.google.com/android/nexus/drivers]上提供了为Nexus设备系列构建所需的文件。

什么是你正在构建自定义设备?如果您的设备是商业销售的,那么很可能是XDA上的某个人试图将AOSP和朋友(CM,AOKP等)移植到您的设备上。

即使您的设备不上XDA,没准它具有通用硬件和一帮,你可以找到关于AOSP其他设备。在这一点上,你不得不去的代码樱桃挑选特定的驱动程序位,如无线网络芯片组,音响设备等

我没有建立过我的头顶一个良好的引物,但http://wiki.cyanogenmod.org/w/Main_Page应该对你很有帮助。这个wiki自创建以来已经有了很大的改进,现在已经有了大量有用的信息。

+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

您缺少一些供应商的驱动程序。 转到:https://developers.google.com/android/nexus/drivers

为相应的设备下载相应的驱动程序。将* .sh文件放在您的aosp顶部目录中。 运行每个shell文件并接受条款。

然后重新编译代码!

+0

我认为这是解决方案。我用Android 5.1.1构建AOSP,但OpenGL(我在logcat中发现)存在问题。 – GensaGames