diff --git a/target/board/gsi_arm64/BoardConfig.mk b/target/board/gsi_arm64/BoardConfig.mk new file mode 100644 index 000000000..90ddd0dd5 --- /dev/null +++ b/target/board/gsi_arm64/BoardConfig.mk @@ -0,0 +1,37 @@ +# Copyright (C) 2019 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. +# + +include build/make/target/board/BoardConfigGsiCommon.mk + +TARGET_ARCH := arm64 +TARGET_ARCH_VARIANT := armv8-a +TARGET_CPU_ABI := arm64-v8a +TARGET_CPU_ABI2 := +TARGET_CPU_VARIANT := generic + +TARGET_2ND_ARCH := arm +TARGET_2ND_ARCH_VARIANT := armv8-a +TARGET_2ND_CPU_ABI := armeabi-v7a +TARGET_2ND_CPU_ABI2 := armeabi +TARGET_2ND_CPU_VARIANT := generic + +# TODO(b/111434759, b/111287060) SoC specific hacks +BOARD_ROOT_EXTRA_SYMLINKS += /vendor/lib/dsp:/dsp +BOARD_ROOT_EXTRA_SYMLINKS += /mnt/vendor/persist:/persist +BOARD_ROOT_EXTRA_SYMLINKS += /vendor/firmware_mnt:/firmware + +# 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 diff --git a/target/product/AndroidProducts.mk b/target/product/AndroidProducts.mk index 480b39591..12fd99a77 100644 --- a/target/product/AndroidProducts.mk +++ b/target/product/AndroidProducts.mk @@ -60,6 +60,7 @@ PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/full_x86.mk \ $(LOCAL_DIR)/generic.mk \ $(LOCAL_DIR)/generic_x86.mk \ + $(LOCAL_DIR)/gsi_arm64.mk \ $(LOCAL_DIR)/mainline_arm64.mk \ $(LOCAL_DIR)/mainline_system_arm64.mk \ $(LOCAL_DIR)/sdk_arm64.mk \ diff --git a/target/product/gsi_arm64.mk b/target/product/gsi_arm64.mk new file mode 100644 index 000000000..cf4babadb --- /dev/null +++ b/target/product/gsi_arm64.mk @@ -0,0 +1,36 @@ +# +# Copyright (C) 2019 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. +# + +$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/gsi_common.mk) + +PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST += \ + root/init.zygote32_64.rc \ + root/init.zygote64_32.rc \ + +# Copy different zygote settings for vendor.img to select by setting property +# ro.zygote=zygote64_32 or ro.zygote=zygote32_64: +# 1. 64-bit primary, 32-bit secondary OR +# 2. 32-bit primary, 64-bit secondary +# init.zygote64_32.rc is in the core_64_bit.mk below +PRODUCT_COPY_FILES += \ + system/core/rootdir/init.zygote32_64.rc:root/init.zygote32_64.rc + +PRODUCT_NAME := gsi_arm64 +PRODUCT_DEVICE := gsi_arm64 +PRODUCT_BRAND := generic +PRODUCT_MODEL := GSI on ARM64 + diff --git a/target/product/gsi_common.mk b/target/product/gsi_common.mk new file mode 100644 index 000000000..0006e62cf --- /dev/null +++ b/target/product/gsi_common.mk @@ -0,0 +1,98 @@ +# +# Copyright (C) 2019 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. +# + +$(call inherit-product, $(SRC_TARGET_DIR)/product/mainline_system.mk) + +# GSI includes all AOSP product packages and placed under /system/product +$(call inherit-product, $(SRC_TARGET_DIR)/product/handheld_product.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/telephony_product.mk) + +# Default AOSP sounds +$(call inherit-product-if-exists, frameworks/base/data/sounds/AllAudio.mk) + +# Additional settings used in all AOSP builds +PRODUCT_PROPERTY_OVERRIDES := \ + ro.config.ringtone=Ring_Synth_04.ogg \ + ro.config.notification_sound=pixiedust.ogg + + +# Enable mainline checking and the whitelist for GSI +PRODUCT_ENFORCE_ARTIFACT_PATH_REQUIREMENTS := relaxed +PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \ + system/app/messaging/messaging.apk \ + system/app/PhotoTable/PhotoTable.apk \ + system/app/WAPPushManager/WAPPushManager.apk \ + system/bin/healthd \ + system/etc/init/healthd.rc \ + system/etc/vintf/manifest/manifest_healthd.xml \ + system/lib/libframesequence.so \ + system/lib/libgiftranscode.so \ + system/lib64/libframesequence.so \ + system/lib64/libgiftranscode.so \ + system/priv-app/Dialer/Dialer.apk \ + +# Some GSI builds enable dexpreopt, whitelist these preopt files +PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST += %.odex %.vdex %.art + +# Exclude GSI specific files +PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST += \ + system/etc/init/config/skip_mount.cfg \ + system/etc/init/init.gsi.rc \ + +# Exclude all files under system/product +PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST += \ + system/product/% + + +# Split selinux policy +PRODUCT_FULL_TREBLE_OVERRIDE := true + +# Enable dynamic partition size +PRODUCT_USE_DYNAMIC_PARTITION_SIZE := true + +# Enable A/B update +AB_OTA_UPDATER := true +AB_OTA_PARTITIONS := system + +# Needed by Pi newly launched device to pass VtsTrebleSysProp on GSI +PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := true + +# GSI specific tasks on boot +PRODUCT_COPY_FILES += \ + build/make/target/product/gsi/skip_mount.cfg:system/etc/init/config/skip_mount.cfg \ + build/make/target/product/gsi/init.gsi.rc:system/etc/init/init.gsi.rc \ + +# Support addtional P vendor interface +PRODUCT_EXTRA_VNDK_VERSIONS := 28 + +# Default AOSP packages +PRODUCT_PACKAGES += \ + messaging \ + +# Default AOSP packages +PRODUCT_PACKAGES += \ + PhotoTable \ + WAPPushManager \ + +# Telephony: +# Provide a APN configuration to GSI product +PRODUCT_COPY_FILES += \ + device/sample/etc/apns-full-conf.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/apns-conf.xml + +# NFC: +# Provide a libnfc-nci.conf to GSI product +PRODUCT_COPY_FILES += \ + device/generic/common/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf