| # Copyright (C) 2013 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. |
| # |
| |
| # The generic product target doesn't have any hardware-specific pieces. |
| TARGET_NO_BOOTLOADER := true |
| TARGET_NO_KERNEL := true |
| TARGET_ARCH := arm64 |
| TARGET_ARCH_VARIANT := armv8-a |
| TARGET_CPU_VARIANT := generic |
| TARGET_CPU_ABI := arm64-v8a |
| TARGET_BOOTLOADER_BOARD_NAME := goldfish_$(TARGET_ARCH) |
| |
| TARGET_2ND_ARCH := arm |
| TARGET_2ND_CPU_ABI := armeabi-v7a |
| TARGET_2ND_CPU_ABI2 := armeabi |
| |
| ifneq ($(TARGET_BUILD_APPS)$(filter cts sdk,$(MAKECMDGOALS)),) |
| # DO NOT USE |
| # DO NOT USE |
| # |
| # This architecture / CPU variant must NOT be used for any 64 bit |
| # platform builds. It is the lowest common denominator required |
| # to build an unbundled application or cts for all supported 32 and 64 bit |
| # platforms. |
| # |
| # If you're building a 64 bit platform (and not an application) the |
| # ARM-v8 specification allows you to assume all the features available in an |
| # armv7-a-neon CPU. You should set the following as 2nd arch/cpu variant: |
| # |
| # TARGET_2ND_ARCH_VARIANT := armv8-a |
| # TARGET_2ND_CPU_VARIANT := generic |
| # |
| # DO NOT USE |
| # DO NOT USE |
| TARGET_2ND_ARCH_VARIANT := armv7-a |
| # DO NOT USE |
| # DO NOT USE |
| TARGET_2ND_CPU_VARIANT := generic |
| # DO NOT USE |
| # DO NOT USE |
| else |
| TARGET_2ND_ARCH_VARIANT := armv8-a |
| TARGET_2ND_CPU_VARIANT := generic |
| endif |
| |
| |
| TARGET_USES_64_BIT_BINDER := true |
| |
| # no hardware camera |
| USE_CAMERA_STUB := true |
| |
| TARGET_USES_HWC2 := true |
| NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 |
| |
| # Build OpenGLES emulation host and guest libraries |
| BUILD_EMULATOR_OPENGL := true |
| BUILD_QEMU_IMAGES := 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 |
| |
| TARGET_USERIMAGES_USE_EXT4 := true |
| BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2684354560 # 2.5 GB |
| BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 |
| TARGET_COPY_OUT_VENDOR := vendor |
| # ~100 MB vendor image. Please adjust system image / vendor image sizes |
| # when finalizing them. |
| BOARD_VENDORIMAGE_PARTITION_SIZE := 100000000 |
| BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 |
| BOARD_FLASH_BLOCK_SIZE := 512 |
| TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true |
| DEVICE_MATRIX_FILE := device/generic/goldfish/compatibility_matrix.xml |
| |
| # Android generic system image always create metadata partition |
| BOARD_USES_METADATA_PARTITION := true |
| |
| # Set this to create /cache mount point for non-A/B devices that mounts /cache. |
| # The partition size doesn't matter, just to make build pass. |
| BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 |
| BOARD_CACHEIMAGE_PARTITION_SIZE := 16777216 |
| |
| BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true |
| BOARD_SEPOLICY_DIRS += device/generic/goldfish/sepolicy/common |
| |
| # Android Verified Boot (AVB): |
| # Builds a special vbmeta.img that disables AVB verification. |
| # Otherwise, AVB will prevent the device from booting the generic system.img. |
| # Also checks that BOARD_AVB_ENABLE is not set, to prevent adding verity |
| # metadata into system.img. |
| ifeq ($(BOARD_AVB_ENABLE),true) |
| $(error BOARD_AVB_ENABLE cannot be set for GSI) |
| endif |
| BOARD_BUILD_DISABLED_VBMETAIMAGE := true |
| |
| ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) |
| # GSI is always userdebug and needs a couple of properties taking precedence |
| # over those set by the vendor. |
| TARGET_SYSTEM_PROP := build/make/target/board/gsi_system.prop |
| endif |
| BOARD_VNDK_VERSION := current |
| |
| # Emulator system image is going to be used as GSI and some vendor still hasn't |
| # cleaned up all device specific directories under root! |
| |
| # TODO(jiyong) These might be SoC specific. |
| BOARD_ROOT_EXTRA_FOLDERS += firmware firmware/radio persist |
| BOARD_ROOT_EXTRA_SYMLINKS := /vendor/lib/dsp:/dsp |
| |
| # TODO(b/36764215): remove this setting when the generic system image |
| # no longer has QCOM-specific directories under /. |
| BOARD_SEPOLICY_DIRS += build/target/board/generic_arm64_ab/sepolicy |
| |
| # 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" |
| |
| # Enable A/B update |
| TARGET_NO_RECOVERY := true |
| BOARD_BUILD_SYSTEM_ROOT_IMAGE := true |