fix generic_x86_arm

To make the generic_x86_arm bootable.
Third party translabor binary can be added on the resulting
system.img and be tested at least on emulator.

BUG: 117673798

Change-Id: Iffbcf9217bbedc12ba83a4851e84ecbf299bf8e7
Merged-In: Iffbcf9217bbedc12ba83a4851e84ecbf299bf8e7
This commit is contained in:
bohu 2018-10-17 12:06:41 -07:00 committed by Bo Hu
parent fac7b1de9c
commit 9b4e805a4d
5 changed files with 80 additions and 52 deletions

View File

@ -1,4 +1,4 @@
# Copyright (C) 2016 The Android Open Source Project
# Copyright (C) 2018 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -13,11 +13,7 @@
# limitations under the License.
#
# Configuration for generic_x86 + arm libraries needed by binary translation.
# The generic product target doesn't have any hardware-specific pieces.
TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := true
# x86 emulator specific definitions
TARGET_CPU_ABI := x86
TARGET_ARCH := x86
TARGET_ARCH_VARIANT := x86
@ -28,39 +24,27 @@ TARGET_2ND_CPU_ABI2 := armeabi
TARGET_2ND_ARCH_VARIANT := armv7-a
TARGET_2ND_CPU_VARIANT := generic
# Tell the build system this isn't a typical 64bit+32bit multilib configuration.
TARGET_CPU_ABI_LIST := x86 armeabi-v7a armeabi
TARGET_TRANSLATE_2ND_ARCH := true
BUILD_BROKEN_DUP_RULES := 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
WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY := false
endif
endif
include build/make/target/board/BoardConfigEmuCommon.mk
include build/make/target/board/BoardConfigGsiCommon.mk
TARGET_USES_HWC2 := true
NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
# Resize to 4G to accomodate ASAN and CTS
BOARD_USERDATAIMAGE_PARTITION_SIZE := 4294967296
# Build OpenGLES emulation host and guest libraries
BUILD_EMULATOR_OPENGL := true
BOARD_SEPOLICY_DIRS += device/generic/goldfish/sepolicy/x86
# 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
TARGET_USERIMAGES_USE_EXT4 := true
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1879048192 # 1.75 GB
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 += device/generic/goldfish/sepolicy/common
# Wifi.
BOARD_WLAN_DEVICE := emulator
BOARD_HOSTAPD_DRIVER := NL80211
BOARD_WPA_SUPPLICANT_DRIVER := NL80211
BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_simulated
BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_simulated
WPA_SUPPLICANT_VERSION := VER_0_8_X
WIFI_DRIVER_FW_PATH_PARAM := "/dev/null"
WIFI_DRIVER_FW_PATH_STA := "/dev/null"
WIFI_DRIVER_FW_PATH_AP := "/dev/null"

View File

@ -0,0 +1,10 @@
The "generic_x86_arm" product defines a non-hardware-specific IA target
without a kernel or bootloader.
It can be used to build the entire user-level system, and
will work with the IA version of the emulator,
It is not a product "base class"; no other products inherit
from it or use it in any way.
Third party arm to x86 translator has to be installed as well

View File

@ -0,0 +1,24 @@
#
# Copyright (C) 2009 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# NFC:
# Provide default libnfc-nci.conf file for devices that does not have one in
# vendor/etc because aosp system image (of aosp_$arch products) is going to
# be used as GSI.
# May need to remove the following for newly launched devices in P since this
# NFC configuration file should be in vendor/etc, instead of system/etc
PRODUCT_COPY_FILES += \
device/generic/common/nfc/libnfc-nci.conf:system/etc/libnfc-nci.conf

View File

@ -0,0 +1,5 @@
#
# system.prop for generic sdk
#
rild.libpath=/vendor/lib/libreference-ril.so

View File

@ -17,27 +17,32 @@
# aosp_x86 with arm libraries needed by binary translation.
# The system image of aosp_x86-userdebug is a GSI for the devices with:
# - x86 32 bits user space
# - 64 bits binder interface
# - system-as-root
# - VNDK enforcement
# - compatible property override enabled
-include device/generic/goldfish/x86-vendor.mk
include $(SRC_TARGET_DIR)/product/full_x86.mk
# arm libraries. This is the list of shared libraries included in the NDK.
# Their dependency libraries will be automatically pulled in.
# Enable dynamic partition size
PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true
# Enable A/B update
AB_OTA_UPDATER := true
AB_OTA_PARTITIONS := system
PRODUCT_PACKAGES += \
libandroid_arm \
libaaudio_arm \
libc_arm \
libdl_arm \
libEGL_arm \
libGLESv1_CM_arm \
libGLESv2_arm \
libGLESv3_arm \
libjnigraphics_arm \
liblog_arm \
libm_arm \
libmediandk_arm \
libOpenMAXAL_arm \
libstdc++_arm \
libOpenSLES_arm \
libz_arm \
update_engine \
update_verifier
# Needed by Pi newly launched device to pass VtsTrebleSysProp on GSI
PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := true
# Support addtional P vendor interface
PRODUCT_EXTRA_VNDK_VERSIONS := 28
PRODUCT_NAME := aosp_x86_arm
PRODUCT_DEVICE := generic_x86_arm