diff --git a/target/board/generic_arm64_a/BoardConfig.mk b/target/board/generic_arm64_a/BoardConfig.mk new file mode 100644 index 0000000000..fbac4171ac --- /dev/null +++ b/target/board/generic_arm64_a/BoardConfig.mk @@ -0,0 +1,71 @@ +# +# Copyright (C) 2017 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. +# + +# Common boardconfig settings for generic AOSP products targetting mobile +# (phone/table) devices. + +# Bootloader is not part of generic AOSP image +TARGET_NO_BOOTLOADER := true + +# Kernel is also not part of generic AOSP image +TARGET_NO_KERNEL := true + +# system.img is always ext4 with sparse option +TARGET_USERIMAGES_USE_EXT4 := true +TARGET_USERIMAGES_SPARSE_EXT_DISABLED := false +TARGET_USES_MKE2FS := true + +# Enable dex pre-opt to speed up initial boot +ifeq ($(HOST_OS),linux) + ifeq ($(WITH_DEXPREOPT),) + WITH_DEXPREOPT := true + WITH_DEXPREOPT_PIC := true + ifneq ($(TARGET_BUILD_VARIANT),user) + # Retain classes.dex in APK's for non-user builds + DEX_PREOPT_DEFAULT := nostripping + endif + endif +endif + +# Generic AOSP image always requires separate vendor.img +BOARD_USES_VENDORIMAGE := true +TARGET_COPY_OUT_VENDOR := vendor + +# Generic AOSP image does NOT support HWC1 +TARGET_USES_HWC2 := true + +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 := armv7-a-neon +TARGET_2ND_CPU_ABI := armeabi-v7a +TARGET_2ND_CPU_ABI2 := armeabi +TARGET_2ND_CPU_VARIANT := generic + +TARGET_USES_64_BIT_BINDER := true + +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736 # 1.5 GB + +# TODO(b/35790399): remove when b/35790399 is fixed. +BOARD_NAND_SPARE_SIZE := 0 +BOARD_FLASH_BLOCK_SIZE := 512 + +BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true + diff --git a/target/board/generic_arm64_a/system.prop b/target/board/generic_arm64_a/system.prop new file mode 100644 index 0000000000..e69de29bb2 diff --git a/target/board/generic_arm_a/BoardConfig.mk b/target/board/generic_arm_a/BoardConfig.mk new file mode 100644 index 0000000000..6c1b36f60f --- /dev/null +++ b/target/board/generic_arm_a/BoardConfig.mk @@ -0,0 +1,63 @@ +# +# Copyright (C) 2017 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. +# + +# Common boardconfig settings for generic AOSP products targetting mobile +# (phone/table) devices. + +# Bootloader is not part of generic AOSP image +TARGET_NO_BOOTLOADER := true + +# Kernel is also not part of generic AOSP image +TARGET_NO_KERNEL := true + +# system.img is always ext4 with sparse option +TARGET_USERIMAGES_USE_EXT4 := true +TARGET_USERIMAGES_SPARSE_EXT_DISABLED := false +TARGET_USES_MKE2FS := true + +# Enable dex pre-opt to speed up initial boot +ifeq ($(HOST_OS),linux) + ifeq ($(WITH_DEXPREOPT),) + WITH_DEXPREOPT := true + WITH_DEXPREOPT_PIC := true + ifneq ($(TARGET_BUILD_VARIANT),user) + # Retain classes.dex in APK's for non-user builds + DEX_PREOPT_DEFAULT := nostripping + endif + endif +endif + +# Generic AOSP image always requires separate vendor.img +BOARD_USES_VENDORIMAGE := true +TARGET_COPY_OUT_VENDOR := vendor + +# Generic AOSP image does NOT support HWC1 +TARGET_USES_HWC2 := true + +TARGET_ARCH := arm +TARGET_ARCH_VARIANT := armv7-a-neon +TARGET_CPU_ABI := armeabi-v7a +TARGET_CPU_ABI2 := armeabi +TARGET_CPU_VARIANT := generic + +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736 + +# TODO(b/35790399): remove when b/35790399 is fixed. +BOARD_NAND_SPARE_SIZE := 0 +BOARD_FLASH_BLOCK_SIZE := 512 + +BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true + diff --git a/target/board/generic_arm_a/system.prop b/target/board/generic_arm_a/system.prop new file mode 100644 index 0000000000..e69de29bb2 diff --git a/target/product/AndroidProducts.mk b/target/product/AndroidProducts.mk index 2ad45728ff..285fc3930f 100644 --- a/target/product/AndroidProducts.mk +++ b/target/product/AndroidProducts.mk @@ -42,7 +42,6 @@ PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/aosp_mips.mk \ $(LOCAL_DIR)/full_mips.mk \ $(LOCAL_DIR)/aosp_arm64.mk \ - $(LOCAL_DIR)/aosp_arm64_ab.mk \ $(LOCAL_DIR)/aosp_mips64.mk \ $(LOCAL_DIR)/aosp_x86_64.mk else @@ -52,6 +51,7 @@ PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/generic_x86.mk \ $(LOCAL_DIR)/generic_mips.mk \ $(LOCAL_DIR)/aosp_arm.mk \ + $(LOCAL_DIR)/aosp_arm_a.mk \ $(LOCAL_DIR)/full.mk \ $(LOCAL_DIR)/aosp_x86.mk \ $(LOCAL_DIR)/aosp_x86_arm.mk \ @@ -59,6 +59,7 @@ PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/aosp_mips.mk \ $(LOCAL_DIR)/full_mips.mk \ $(LOCAL_DIR)/aosp_arm64.mk \ + $(LOCAL_DIR)/aosp_arm64_a.mk \ $(LOCAL_DIR)/aosp_arm64_ab.mk \ $(LOCAL_DIR)/aosp_mips64.mk \ $(LOCAL_DIR)/aosp_x86_64.mk \ diff --git a/target/product/aosp_arm64_a.mk b/target/product/aosp_arm64_a.mk new file mode 100644 index 0000000000..0b0ba61817 --- /dev/null +++ b/target/product/aosp_arm64_a.mk @@ -0,0 +1,111 @@ +# +# Copyright (C) 2017 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_PROPERTY_OVERRIDES cannot be used here because sysprops will be at +# /vendor/[build|default].prop when build split is on. In order to have sysprops +# on the generic system image, place them in build/make/target/board/generic_arm_nonab/ +# system.prop. + +PRODUCT_COPY_FILES := \ + device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml + +#split selinux policy +PRODUCT_FULL_TREBLE_OVERRIDE := true + +# Some of HAL interface libraries are automatically added by the dependencies from +# the framework. However, we list them all here to make it explicit and prevent +# possible mistake. +PRODUCT_PACKAGES := \ + android.dvr.composer@1.0 \ + android.hardware.audio@2.0 \ + android.hardware.audio.common@2.0 \ + android.hardware.audio.common@2.0-util \ + android.hardware.audio.effect@2.0 \ + android.hardware.biometrics.fingerprint@2.1 \ + android.hardware.bluetooth@1.0 \ + android.hardware.boot@1.0 \ + android.hardware.broadcastradio@1.0 \ + android.hardware.broadcastradio@1.1 \ + android.hardware.camera.common@1.0 \ + android.hardware.camera.device@1.0 \ + android.hardware.camera.device@3.2 \ + android.hardware.camera.provider@2.4 \ + android.hardware.configstore@1.0 \ + android.hardware.contexthub@1.0 \ + android.hardware.drm@1.0 \ + android.hardware.gatekeeper@1.0 \ + android.hardware.gnss@1.0 \ + android.hardware.graphics.allocator@2.0 \ + android.hardware.graphics.common@1.0 \ + android.hardware.graphics.composer@2.1 \ + android.hardware.graphics.mapper@2.0 \ + android.hardware.ir@1.0 \ + android.hardware.keymaster@3.0 \ + android.hardware.light@2.0 \ + android.hardware.media@1.0 \ + android.hardware.media.omx@1.0 \ + android.hardware.media.omx@1.0-utils \ + android.hardware.memtrack@1.0 \ + android.hardware.nfc@1.0 \ + android.hardware.oemlock@1.0 \ + android.hardware.power@1.0 \ + android.hardware.radio@1.0 \ + android.hardware.radio.deprecated@1.0 \ + android.hardware.sensors@1.0 \ + android.hardware.soundtrigger@2.0 \ + android.hardware.thermal@1.0 \ + android.hardware.tv.cec@1.0 \ + android.hardware.tv.input@1.0 \ + android.hardware.usb@1.0 \ + android.hardware.vibrator@1.0 \ + android.hardware.vr@1.0 \ + android.hardware.weaver@1.0 \ + android.hardware.wifi@1.0 \ + android.hardware.wifi.supplicant@1.0 \ + android.hidl.allocator@1.0 \ + android.hidl.base@1.0 \ + android.hidl.manager@1.0 \ + android.hidl.memory@1.0 \ + +PRODUCT_PACKAGES += \ + libdynamic_sensor_ext \ + libaudioroute \ + libxml2 \ + libtinyalsa \ + libtinycompress \ + cplay \ + libion \ + +# WiFi +# Note: Wifi HAL (android.hardware.wifi@1.0-service, wpa_supplicant, +# and wpa_supplicant.conf) is not here. They are at vendor.img +PRODUCT_PACKAGES += \ + libwpa_client \ + hostapd \ + hostapd_cli \ + wificond \ + wifilogd \ + +PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/bootdevice/by-name/system + +$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/verity.mk) + +PRODUCT_NAME := aosp_arm64_a +PRODUCT_DEVICE := generic_arm64_a +PRODUCT_BRAND := Android +PRODUCT_MODEL := AOSP on ARM64 diff --git a/target/product/aosp_arm_a.mk b/target/product/aosp_arm_a.mk new file mode 100644 index 0000000000..83db4027b7 --- /dev/null +++ b/target/product/aosp_arm_a.mk @@ -0,0 +1,111 @@ +# +# Copyright (C) 2017 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_PROPERTY_OVERRIDES cannot be used here because sysprops will be at +# /vendor/[build|default].prop when build split is on. In order to have sysprops +# on the generic system image, place them in build/make/target/board/generic_arm_a/ +# system.prop. + +PRODUCT_COPY_FILES := \ + device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml + +#split selinux policy +PRODUCT_FULL_TREBLE_OVERRIDE := true + +# Some of HAL interface libraries are automatically added by the dependencies from +# the framework. However, we list them all here to make it explicit and prevent +# possible mistake. +PRODUCT_PACKAGES := \ + android.dvr.composer@1.0 \ + android.hardware.audio@2.0 \ + android.hardware.audio.common@2.0 \ + android.hardware.audio.common@2.0-util \ + android.hardware.audio.effect@2.0 \ + android.hardware.biometrics.fingerprint@2.1 \ + android.hardware.bluetooth@1.0 \ + android.hardware.boot@1.0 \ + android.hardware.broadcastradio@1.0 \ + android.hardware.broadcastradio@1.1 \ + android.hardware.camera.common@1.0 \ + android.hardware.camera.device@1.0 \ + android.hardware.camera.device@3.2 \ + android.hardware.camera.provider@2.4 \ + android.hardware.configstore@1.0 \ + android.hardware.contexthub@1.0 \ + android.hardware.drm@1.0 \ + android.hardware.gatekeeper@1.0 \ + android.hardware.gnss@1.0 \ + android.hardware.graphics.allocator@2.0 \ + android.hardware.graphics.common@1.0 \ + android.hardware.graphics.composer@2.1 \ + android.hardware.graphics.mapper@2.0 \ + android.hardware.ir@1.0 \ + android.hardware.keymaster@3.0 \ + android.hardware.light@2.0 \ + android.hardware.media@1.0 \ + android.hardware.media.omx@1.0 \ + android.hardware.media.omx@1.0-utils \ + android.hardware.memtrack@1.0 \ + android.hardware.nfc@1.0 \ + android.hardware.oemlock@1.0 \ + android.hardware.power@1.0 \ + android.hardware.radio@1.0 \ + android.hardware.radio.deprecated@1.0 \ + android.hardware.sensors@1.0 \ + android.hardware.soundtrigger@2.0 \ + android.hardware.thermal@1.0 \ + android.hardware.tv.cec@1.0 \ + android.hardware.tv.input@1.0 \ + android.hardware.usb@1.0 \ + android.hardware.usb@1.1 \ + android.hardware.vibrator@1.0 \ + android.hardware.vr@1.0 \ + android.hardware.weaver@1.0 \ + android.hardware.wifi@1.0 \ + android.hardware.wifi.supplicant@1.0 \ + android.hidl.allocator@1.0 \ + android.hidl.base@1.0 \ + android.hidl.manager@1.0 \ + android.hidl.memory@1.0 \ + +PRODUCT_PACKAGES += \ + libdynamic_sensor_ext \ + libaudioroute \ + libxml2 \ + libtinyalsa \ + libtinycompress \ + cplay \ + libion \ + +# WiFi +# Note: Wifi HAL (android.hardware.wifi@1.0-service, wpa_supplicant, +# and wpa_supplicant.conf) is not here. They are at vendor.img +PRODUCT_PACKAGES += \ + libwpa_client \ + hostapd \ + hostapd_cli \ + wificond \ + wifilogd \ + +PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/bootdevice/by-name/system + +$(call inherit-product, $(SRC_TARGET_DIR)/product/aosp_base_telephony.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/verity.mk) + +PRODUCT_NAME := aosp_arm_a +PRODUCT_DEVICE := generic_arm_a +PRODUCT_BRAND := Android +PRODUCT_MODEL := AOSP on ARM32