13

を構築していAOSP 4.2 Jelly Beanます。デフォルト構成をビルドfull-engしてエミュレーターで実行すると、すべて問題ありません。

カスタムデバイスを構築して実行する必要があります(オンemulator-実際に機能するかどうかをテストするため、および実際のデバイスで)。full_base.mkファイルに基づいてカスタム デバイスを作成し、それを実行すると、最初の画面で ANDROID テキストが表示されてハングアップし、まったく読み込まれませんemulator。outディレクトリを構築した後ですemulatorsystem.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
4

2 に答える 2

12

AOSP ビルド システム、特に新しいデバイスの追加方法についてはよく理解されているようですね。

full-engエミュレーターのみをターゲットにします。.imgハードウェア ドライバーは、デバイスが動作するかどうかに大きな役割を果たすため、通常、問題のデバイス用にカスタムをビルドします。

たとえば、grouperまたはがある場合、maguroの代わりにそのデバイス用にビルドすることになりfull-engます。およびツリーlunchにデバイスを追加すると、追加のデバイスが一覧表示されます。Google は、[ウェブサイト][https://developers.google.com/android/nexus/drivers] で一連の Nexus デバイスのビルドに必要なファイルを提供しています。device/vendor/

構築しているカスタム デバイスは何ですか? デバイスが市販されている場合、XDA の誰かが AOSP や友人 (CM、AOKP など) をデバイスに移植しようとしている可能性があります。

デバイスが XDA にない場合でも、AOSP で見つけることができる他の多くのデバイスと共通のハードウェアを持っている可能性があります。その時点で、wifi チップセット、サウンド デバイスなど、ドライバー固有のコードを厳選する必要があります。

頭のてっぺんから構築するための優れた入門書はありませんが、http://wiki.cyanogenmod.org/w/Main_Pageはかなり役立つはずです。この wiki は作成以来大幅に改善され、今では有益な情報がぎっしり詰まっています。

于 2013-04-04T03:05:51.553 に答える
1

ベンダーのドライバーの一部が不足しています。後藤: https://developers.google.com/android/nexus/drivers

正確なデバイスの適切なドライバーをダウンロードします。*.sh ファイルを aosp のトップ ディレクトリに配置します。各シェル ファイルを実行し、条件に同意します。

コードを再コンパイルしてください。

于 2013-11-01T19:34:11.983 に答える