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