From 7c9f562d00303f5b477ce2247cea394a1d8dd804 Mon Sep 17 00:00:00 2001 From: Sam Lin Date: Mon, 8 Jun 2020 23:06:26 +0000 Subject: [PATCH] Add an aosp target that supports 64-bit app only Bug: 168796046 Test: N/A Change-Id: I57116fe67cbe1322f348c9d0506655f32a900dcc Merged-In: I57116fe67cbe1322f348c9d0506655f32a900dcc --- .../generic_64bitonly_x86_64/BoardConfig.mk | 45 ++++++++++++ .../board/generic_64bitonly_x86_64/README.txt | 7 ++ .../board/generic_64bitonly_x86_64/device.mk | 24 +++++++ .../generic_64bitonly_x86_64/system.prop | 5 ++ target/product/AndroidProducts.mk | 1 + target/product/aosp_64bitonly_x86_64.mk | 72 +++++++++++++++++++ 6 files changed, 154 insertions(+) create mode 100644 target/board/generic_64bitonly_x86_64/BoardConfig.mk create mode 100644 target/board/generic_64bitonly_x86_64/README.txt create mode 100644 target/board/generic_64bitonly_x86_64/device.mk create mode 100644 target/board/generic_64bitonly_x86_64/system.prop create mode 100644 target/product/aosp_64bitonly_x86_64.mk diff --git a/target/board/generic_64bitonly_x86_64/BoardConfig.mk b/target/board/generic_64bitonly_x86_64/BoardConfig.mk new file mode 100644 index 000000000..71c4357ec --- /dev/null +++ b/target/board/generic_64bitonly_x86_64/BoardConfig.mk @@ -0,0 +1,45 @@ +# Copyright (C) 2020 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. +# + +# x86_64 emulator specific definitions +TARGET_CPU_ABI := x86_64 +TARGET_ARCH := x86_64 +TARGET_ARCH_VARIANT := x86_64 + +# Keep the following for 32-bit native code support +# There are a few native services still on 32-bit modes, e.g. media & audio. +# Remove them in S. +TARGET_2ND_CPU_ABI := x86 +TARGET_2ND_ARCH := x86 +TARGET_2ND_ARCH_VARIANT := x86_64 + +TARGET_PRELINK_MODULE := false +include build/make/target/board/BoardConfigGsiCommon.mk +include build/make/target/board/BoardConfigEmuCommon.mk + +BOARD_USERDATAIMAGE_PARTITION_SIZE := 576716800 + +BOARD_SEPOLICY_DIRS += device/generic/goldfish/sepolicy/x86 + +# 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" diff --git a/target/board/generic_64bitonly_x86_64/README.txt b/target/board/generic_64bitonly_x86_64/README.txt new file mode 100644 index 000000000..dc7efd386 --- /dev/null +++ b/target/board/generic_64bitonly_x86_64/README.txt @@ -0,0 +1,7 @@ +The "generic_x86_64_app" 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, + +This supports 64-bit apps only. diff --git a/target/board/generic_64bitonly_x86_64/device.mk b/target/board/generic_64bitonly_x86_64/device.mk new file mode 100644 index 000000000..bb49057ab --- /dev/null +++ b/target/board/generic_64bitonly_x86_64/device.mk @@ -0,0 +1,24 @@ +# +# Copyright (C) 2020 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. +# + +ifdef NET_ETH0_STARTONBOOT + PRODUCT_PROPERTY_OVERRIDES += net.eth0.startonboot=1 +endif + +# Ensure we package the BIOS files too. +PRODUCT_HOST_PACKAGES += \ + bios.bin \ + vgabios-cirrus.bin \ diff --git a/target/board/generic_64bitonly_x86_64/system.prop b/target/board/generic_64bitonly_x86_64/system.prop new file mode 100644 index 000000000..ed9d1731c --- /dev/null +++ b/target/board/generic_64bitonly_x86_64/system.prop @@ -0,0 +1,5 @@ +# +# system.prop for generic sdk +# + +rild.libpath=/vendor/lib64/libreference-ril.so diff --git a/target/product/AndroidProducts.mk b/target/product/AndroidProducts.mk index 8c069ba36..61a7583a9 100644 --- a/target/product/AndroidProducts.mk +++ b/target/product/AndroidProducts.mk @@ -43,6 +43,7 @@ PRODUCT_MAKEFILES := \ else PRODUCT_MAKEFILES := \ + $(LOCAL_DIR)/aosp_64bitonly_x86_64.mk \ $(LOCAL_DIR)/aosp_arm64_ab.mk \ $(LOCAL_DIR)/aosp_arm64.mk \ $(LOCAL_DIR)/aosp_arm_ab.mk \ diff --git a/target/product/aosp_64bitonly_x86_64.mk b/target/product/aosp_64bitonly_x86_64.mk new file mode 100644 index 000000000..4de4e0c89 --- /dev/null +++ b/target/product/aosp_64bitonly_x86_64.mk @@ -0,0 +1,72 @@ +# +# Copyright 2020 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. +# + +PRODUCT_USE_DYNAMIC_PARTITIONS := true + +# The system image of aosp_x86_64_app-userdebug is a GSI for the devices with: +# - x86 64 bits user space +# - 64 bits binder interface +# - system-as-root +# - VNDK enforcement +# - compatible property override enabled + +# This is a build configuration for a full-featured build of the +# Open-Source part of the tree. It's geared toward a US-centric +# build quite specifically for the emulator, and might not be +# entirely appropriate to inherit from for on-device configurations. + +# GSI for system/product & support 64-bit apps only +$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/mainline_system.mk) + +# Enable mainline checking for excat this product name +ifeq (aosp_64bitonly_x86_64,$(TARGET_PRODUCT)) +PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed +endif + +# +# All components inherited here go to system_ext image +# +$(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_system_ext.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_system_ext.mk) + +# +# All components inherited here go to product image +# +$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_product.mk) + +# +# All components inherited here go to vendor image +# +$(call inherit-product-if-exists, device/generic/goldfish/x86_64-vendor.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/emulator_vendor.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/board/generic_x86_64/device.mk) + +# +# Special settings for GSI releasing +# +ifeq (aosp_64bitonly_x86_64,$(TARGET_PRODUCT)) +$(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_release.mk) +endif + +PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST += \ + root/init.zygote64.rc + +# This build configuration supports 64-bit apps only +PRODUCT_NAME := aosp_64bitonly_x86_64 +PRODUCT_DEVICE := generic_64bitonly_x86_64 +PRODUCT_BRAND := Android +PRODUCT_MODEL := AOSP on x86_64 App