簡體   English   中英

AOSP建立在自定義設備上

[英]AOSP build on custom device

我正在建造AOSP 4.2 Jelly Bean 當我構建默認的full-eng配置並在模擬器上運行它時,一切都很好。

我需要構建自定義設備並運行它(在emulator - 用於測試它是否真的有效,並且在真實設備上)。 當我創建基於full_base.mk文件的自定義設備,並在emulator上運行時 - emulator只會在第一個屏幕上掛起並帶有ANDROID文本,並且根本不會加載。 在out目錄下構建后system.img, userdata.img, ramdisk.img我有system.img, userdata.img, ramdisk.img 這就是構建自定義AOSP並在設備上運行所需的全部內容嗎? 我可以在模擬器上運行構建,還是只在真實設備上運行?

我是否應該為實際設備構建AOSP:內核,設備驅動程序等?

自定義設備文件夾文件(device / 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

看起來您對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上可以找到的許多其他設備共用硬件。 那時,你必須選擇特定於驅動程序的代碼,比如wifi芯片組,聲音設備等。

我沒有一個很好的入門來建立我的頭頂,但http://wiki.cyanogenmod.org/w/Main_Page應該對你很有幫助。 自創建以來,這個wiki已經有了很大的改進,現在有了大量有用的信息。

您缺少一些供應商的驅動程序。 轉到: https//developers.google.com/android/nexus/drivers

下載適用於確切設備的相應驅動程序。 將* .sh文件放在aosp top目錄中。 運行每個shell文件並接受條款。

然后重新編譯代碼!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM