[英]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
,因為硬件驅動程序在設備是否正常工作中發揮着重要作用。
例如,如果你有grouper
或maguro
,你最終會建造該裝置而不是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.