gpt4 book ai didi

android - AOSP 基于自定义设备 - 模拟器构建

转载 作者:行者123 更新时间:2023-12-03 21:24:13 26 4
gpt4 key购买 nike

我正在学习 AOSP 构建系统,尤其是如何添加新设备。
我在默认的全英配置上构建 android-6.0.1_r46 Marshmallo 并在模拟器上运行它。它工作正常。

但是,当我尝试在/device/my_company/my_product/之类的源树中添加我的自定义设备而不是成功构建并在模拟器上运行它时 - 模拟器只是挂断了黑屏。根本不加载。

我怎样才能让模拟器工作?
我的makefile如下所示..

安卓.mk

ifneq ($(filter my_product, $(TARGET_DEVICE)),)

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

include $(call all-makefiles-under,$(LOCAL_PATH))

endif

AndroidProducts.mk
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/aosp_my_product.mk

vendorsetup.sh
add_lunch_combo aosp_my_product-eng

aosp_my_product.mk
#$(call inherit-product, device/generic/mini-emulator-armv7-a-neon/mini_emulator_common.mk) //copied to device.mk

$(call inherit-product, device/my_company/my_product/device.mk)

#Overrides

PRODUCT_NAME := aosp_my_product
PRODUCT_DEVICE :=my_product
PRODUCT_MODEL := Customized Android
PRODUCT_MANUFACTURER :=my_company
PRODUCT_BRAND :=Android

PRODUCT_LOCALES := en_US
PRODUCT_PACKAGE_OVERLAYS := device/my_company/my_product/overlay
PRODUCT_CHARACTERISTICS := nosdcard

设备.mk
 PRODUCT_NAME :=aosp_my_product
PRODUCT_DEVICE :=my_product
PRODUCT_MODEL := Customized Android
PRODUCT_MANUFACTURER := my_company
PRODUCT_BRAND := Android

LOCAL_KERNEL := prebuilts/qemu-kernel/arm/kernel-qemu-armv7
PRODUCT_COPY_FILES += \
$(LOCAL_KERNEL):kernel

# common stuffs across mini_emulators

PRODUCT_PACKAGES += \
audio.primary.goldfish \
camera.goldfish \
gps.goldfish \
gralloc.goldfish \
lights.goldfish \
power.goldfish \
sensors.goldfish \
vibrator.goldfish \
qemu-props \
qemud \
libGLES_android \
libGLESv1_CM_emulation \
lib_renderControl_enc \
libEGL_emulation \
libGLESv2_enc \
libOpenglSystemCommon \
libGLESv2_emulation \
libGLESv1_enc \
rild


PRODUCT_COPY_FILES += \
device/generic/mini-emulator-armv7-a-neon/init.mini-emulator.rc:root/init.goldfish.rc \
device/generic/goldfish/init.goldfish.sh:system/etc/init.goldfish.sh \
device/generic/goldfish/ueventd.goldfish.rc:root/ueventd.goldfish.rc \
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \
frameworks/native/data/etc/android.hardware.camera.autofocus.xml:system/etc/permissions/android.hardware.camera.autofocus.xml \
frameworks/av/media/libeffects/data/audio_effects.conf:system/etc/audio_effects.conf \
hardware/libhardware_legacy/audio/audio_policy.conf:system/etc/audio_policy.conf \
device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_audio.xml:system/etc/media_codecs_google_audio.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:system/etc/media_codecs_google_telephony.xml \
frameworks/av/media/libstagefright/data/media_codecs_google_video.xml:system/etc/media_codecs_google_video.xml \
device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml \
device/generic/goldfish/fstab.goldfish:root/fstab.goldfish

BoardConfig.mk
# config.mk
#
# Product-specific compile-time definitions.
#
# The generic product target doesn't have any hardware-specific pieces.


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

SMALLER_FONT_FOOTPRINT := true
MINIMAL_FONT_FOOTPRINT := true
# Some framework code requires this to enable BT
BOARD_HAVE_BLUETOOTH := true
BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/generic/common/bluetooth

BOARD_USES_GENERIC_AUDIO := true

USE_CAMERA_STUB := true

BUILD_EMULATOR_OPENGL := true
USE_OPENGL_RENDERER := true

BOARD_USE_LEGACY_UI := true
VSYNC_EVENT_PHASE_OFFSET_NS := 0

TARGET_USERIMAGES_USE_EXT4 := true



BOARD_BOOTIMAGE_PARTITION_SIZE := 576716800
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 576716800
BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800

BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016
BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
BOARD_FLASH_BLOCK_SIZE := 512
TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true

BOARD_SEPOLICY_DIRS += build/target/board/generic/

#ifndef PDK_FUSION_PLATFORM_ZIP
#ifeq ($(HOST_OS),linux)
# WITH_DEXPREOPT := true
#endif
#endif # PDK_FUSION_PLATFORM_ZIP

输出/目标/产品/my_product$ ls
android-info.txt  hardware-qemu.ini         symbols
cache installed-files.txt system
cache.img kernel system.img
clean_steps.mk obj userdata.img
data previous_build_config.mk userdata-qemu.img
dex_bootjars ramdisk.img
gen root

adb 设备显示
emulator-5554 离线

[cmd]~/aosp$ 模拟器 &
[1] 17183


[cmd]~/aosp$ 模拟器 -verbose
    emulator:Found ANDROID_PRODUCT_OUT: /home/azahar/aosp/out/target/product/my_product
emulator:Found build target architecture: arm
emulator:Looking for ranchu emulator backed for arm CPU
emulator:Probing program: ./emulator64-ranchu-arm
emulator:Probing program: ./emulator-ranchu-arm
emulator:Probing path for: emulator64-ranchu-arm
emulator:Probing path for: emulator-ranchu-arm
emulator:Looking for emulator-arm to emulate 'arm' CPU
emulator:Probing program: ./emulator64-arm
emulator:Probing program: ./emulator-arm
emulator:Probing path for: emulator64-arm
emulator:Found target-specific emulator binary: /home/azahar/aosp/prebuilts/android-emulator/linux-x86_64/emulator64-arm
emulator:GPU emulation is disabled
emulator: found Android build root: /home/azahar/aosp
emulator: found Android build out: /home/azahar/aosp/out/target/product/my_product
emulator: Read property file at /home/azahar/aosp/out/target/product/my_product/system/build.prop
emulator: Cannot find boot properties file: /home/azahar/aosp/out/target/product/my_product/boot.prop

emulator: Found target API sdkVersion: 23

emulator: virtual device has no config file - no problem
emulator: using core hw config path: /home/azahar/aosp/out/target/product/my_product/hardware-qemu.ini
emulator: found skin-specific hardware.ini: /home/azahar/aosp/development/tools/emulator/skins/HVGA/hardware.ini
emulator: autoconfig: -skin HVGA
emulator: autoconfig: -skindir /home/azahar/aosp/development/tools/emulator/skins
emulator: found skin-specific hardware.ini: /home/azahar/aosp/development/tools/emulator/skins/HVGA/hardware.ini
emulator: keyset loaded from: /home/azahar/.android/default.keyset
emulator: trying to load skin file '/home/azahar/aosp/development/tools/emulator/skins/HVGA/layout'
emulator: skin network speed: 'full'
emulator: skin network delay: 'none'
emulator: autoconfig: -kernel /home/azahar/aosp/out/target/product/my_product/kernel
emulator: Auto-detect: Kernel image requires legacy device naming scheme.
emulator: Auto-detect: Kernel does not support YAFFS2 partitions.
emulator: autoconfig: -ramdisk /home/azahar/aosp/out/target/product/my_product/ramdisk.img
emulator: autoconfig: -sysdir /home/azahar/aosp/out/target/product/my_product
emulator: Using initial system image: /home/azahar/aosp/out/target/product/my_product/system.img
emulator: WARNING: system partition size adjusted to match image file (550 MB > 200 MB)

emulator: autoconfig: -data /home/azahar/aosp/out/target/product/my_product/userdata-qemu.img
emulator: autoconfig: -initdata /home/azahar/aosp/out/target/product/my_product/userdata.img
emulator: WARNING: data partition size adjusted to match image file (550 MB > 200 MB)

emulator: autoconfig: -cache /home/azahar/aosp/out/target/product/my_product/cache.img
emulator: Physical RAM size: 512MB

emulator: GPU emulation is disabled
emulator: WARNING: CPU acceleration only works with x86/x86_64 system images.
emulator: Auto-config: -qemu -cpu cortex-a8
Content of hardware configuration file:
hw.cpu.arch = arm
hw.cpu.model = cortex-a8
hw.ramSize = 512
hw.screen = touch
hw.mainKeys = yes
hw.trackBall = yes
hw.keyboard = no
hw.keyboard.lid = no
hw.keyboard.charmap = qwerty2
hw.dPad = yes
hw.gsmModem = yes
hw.gps = yes
hw.battery = yes
hw.accelerometer = yes
hw.audioInput = yes
hw.audioOutput = yes
hw.sdCard = yes
disk.cachePartition = yes
disk.cachePartition.path = /home/azahar/aosp/out/target/product/my_product/cache.img
disk.cachePartition.size = 66m
hw.lcd.width = 320
hw.lcd.height = 480
hw.lcd.depth = 16
hw.lcd.density = 160
hw.lcd.backlight = yes
hw.gpu.enabled = no
hw.initialOrientation = portrait
hw.camera.back = emulated
hw.camera.front = none
vm.heapSize = 48
hw.sensors.proximity = yes
hw.sensors.magnetic_field = yes
hw.sensors.orientation = yes
hw.sensors.temperature = yes
hw.useext4 = yes
kernel.path = /home/azahar/aosp/out/target/product/my_product/kernel
kernel.parameters = androidboot.hardware=goldfish android.checkjni=1
kernel.newDeviceNaming = no
kernel.supportsYaffs2 = no
disk.ramdisk.path = /home/azahar/aosp/out/target/product/my_product/ramdisk.img
disk.systemPartition.initPath = /home/azahar/aosp/out/target/product/my_product/system.img
disk.systemPartition.size = 550m
disk.dataPartition.path = /home/azahar/aosp/out/target/product/my_product/userdata-qemu.img
disk.dataPartition.size = 550m
avd.name = <build>
.
QEMU options list:
emulator: argv[00] = "/home/azahar/aosp/prebuilts/android-emulator/linux-x86_64/emulator64-arm"
emulator: argv[01] = "-android-hw"
emulator: argv[02] = "/tmp/android-azahar/emulator-lsvyCj"
Concatenated QEMU options:
/home/azahar/aosp/prebuilts/android-emulator/linux-x86_64/emulator64-arm -android-hw /tmp/android-azahar/emulator-lsvyCj
emulator: registered 'boot-properties' qemud service
emulator: Using kernel serial device prefix: ttyS
emulator: Ramdisk image contains fstab.goldfish file
emulator: Found format of system partition: 'ext4'
emulator: Found format of userdata partition: 'ext4'
emulator: Found format of cache partition: 'ext4'
emulator: system partition format: ext4
emulator: Mapping 'system' partition image to /tmp/android-azahar/emulator-AvYGsQ
emulator: nand_add_dev: system,size=0x22600000,file=/tmp/android-azahar/emulator-AvYGsQ,initfile=/home/azahar/aosp/out/target/product/my_product/system.img,pagesize=512,extrasize=0
emulator: userdata partition format: ext4
WARNING: userdata image already in use, changes will not persist!
emulator: Mapping 'userdata' partition image to /tmp/android-azahar/emulator-YcBfzc
emulator: Creating empty userdata partition image at: /tmp/android-azahar/emulator-YcBfzc
Creating filesystem with parameters:
Size: 576716800
Block size: 4096
Blocks per group: 32768
Inodes per group: 7040
Inode size: 256
Journal blocks: 2200
Label:
Blocks: 140800
Block groups: 5
Reserved block group size: 39
Created filesystem with 11/35200 inodes and 4536/140800 blocks
emulator: nand_add_dev: userdata,size=0x22600000,file=/tmp/android-azahar/emulator-YcBfzc,pagesize=512,extrasize=0
emulator: cache partition format: ext4
WARNING: cache image already in use, changes will not persist!
emulator: Mapping 'cache' partition image to /tmp/android-azahar/emulator-wM4p7H
emulator: Creating empty cache partition image at: /tmp/android-azahar/emulator-wM4p7H
Creating filesystem with parameters:
Size: 69206016
Block size: 4096
Blocks per group: 32768
Inodes per group: 4224
Inode size: 256
Journal blocks: 1024
Label:
Blocks: 16896
Block groups: 1
Reserved block group size: 7
Created filesystem with 11/4224 inodes and 1302/16896 blocks
emulator: nand_add_dev: cache,size=0x4200000,file=/tmp/android-azahar/emulator-wM4p7H,pagesize=512,extrasize=0
emulator: registered 'boot-properties' qemud service
emulator: Adding boot property: 'dalvik.vm.heapsize' = '48m'
emulator: Adding boot property: 'ro.config.low_ram' = 'true'
emulator: Adding boot property: 'qemu.sf.lcd_density' = '160'
emulator: Adding boot property: 'qemu.hw.mainkeys' = '1'
emulator: Adding boot property: 'qemu.sf.fake_camera' = 'back'
emulator: Kernel parameters: qemu.gles=0 qemu=1 console=ttyS0 android.qemud=ttyS1 androidboot.hardware=goldfish android.checkjni=1 ndns=1
emulator: autoconfig: -scale 1
emulator: Forcing ro.adb.qemud to "0".
emulator: control console listening on port 5556, ADB on port 5557
emulator: sent '0012host:emulator:5557' to ADB server
emulator: android_hw_fingerprint_init: fingerprint qemud listen service initialized

emulator: ping program: /home/azahar/aosp/prebuilts/android-emulator/linux-x86_64/ddms
goldfish_fb_get_pixel_format:170: display surface,pixel format:
bits/pixel: 16
bytes/pixel: 2
depth: 16
red: bits=5 mask=0xf800 shift=11 max=0x1f
green: bits=6 mask=0x7e0 shift=5 max=0x3f
blue: bits=5 mask=0x1f shift=0 max=0x1f
alpha: bits=0 mask=0x0 shift=0 max=0x0

最佳答案

您正在构建一个无法在 qemu 上模拟的 arm 设备。
您可以尝试为任何预先存在的设备(如珊瑚或梅林)构建并检查它是否为它们启动。但可能不会。

关于android - AOSP 基于自定义设备 - 模拟器构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49492965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com