diff options
author | Wally Yau <wyau@google.com> | 2018-02-15 21:27:52 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-02-15 21:27:52 +0000 |
commit | 260822818d0f19d7824eddc22731744815b00d25 (patch) | |
tree | f7e28d0ff615ff2196c09cfd0e29d95e425c5297 | |
parent | 8c4851e7c4fa39afd8c1edf4ee4069e6d309d37f (diff) | |
parent | f9879fbff3200918277b9795820ce77bd7b6fc12 (diff) | |
download | atv-260822818d0f19d7824eddc22731744815b00d25.tar.gz |
Merge "Generic System Image for Android TV"
-rw-r--r-- | products/AndroidProducts.mk | 38 | ||||
-rw-r--r-- | products/aosp_atv_arm64_a.mk | 27 | ||||
-rw-r--r-- | products/aosp_atv_arm64_ab.mk | 33 | ||||
-rw-r--r-- | products/aosp_atv_arm_a.mk | 27 | ||||
-rw-r--r-- | products/aosp_atv_arm_ab.mk | 33 | ||||
-rw-r--r-- | products/treble_atv_common.mk | 81 | ||||
-rw-r--r-- | products/treble_atv_common_32.mk | 22 | ||||
-rw-r--r-- | products/treble_atv_common_64.mk | 34 |
8 files changed, 295 insertions, 0 deletions
diff --git a/products/AndroidProducts.mk b/products/AndroidProducts.mk new file mode 100644 index 0000000..6f7ebdb --- /dev/null +++ b/products/AndroidProducts.mk @@ -0,0 +1,38 @@ +# +# 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. +# 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. +# + +# +# This file should set PRODUCT_MAKEFILES to a list of product makefiles +# to expose to the build system. LOCAL_DIR will already be set to +# the directory containing this file. +# PRODUCT_MAKEFILES is set up in AndroidProducts.mks. +# Format of PRODUCT_MAKEFILES: +# <product_name>:<path_to_the_product_makefile> +# If the <product_name> is the same as the base file name (without dir +# and the .mk suffix) of the product makefile, "<product_name>:" can be +# omitted. +# +# This file may not rely on the value of any variable other than +# LOCAL_DIR; do not use any conditionals, and do not look up the +# value of any variable that isn't set in this file or in a file that +# it includes. +# + +PRODUCT_MAKEFILES := \ + $(LOCAL_DIR)/aosp_atv_arm_a.mk \ + $(LOCAL_DIR)/aosp_atv_arm_ab.mk \ + $(LOCAL_DIR)/aosp_atv_arm64_a.mk \ + $(LOCAL_DIR)/aosp_atv_arm64_ab.mk diff --git a/products/aosp_atv_arm64_a.mk b/products/aosp_atv_arm64_a.mk new file mode 100644 index 0000000..0fc76c2 --- /dev/null +++ b/products/aosp_atv_arm64_a.mk @@ -0,0 +1,27 @@ +# +# 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. +# 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/ +# treble_system.prop. + +include device/google/atv/products/treble_atv_common_64.mk + +PRODUCT_NAME := aosp_atv_arm64_a +PRODUCT_DEVICE := generic_arm64_a +PRODUCT_BRAND := Android +PRODUCT_MODEL := AOSP ATV on ARM64 diff --git a/products/aosp_atv_arm64_ab.mk b/products/aosp_atv_arm64_ab.mk new file mode 100644 index 0000000..56b0cf1 --- /dev/null +++ b/products/aosp_atv_arm64_ab.mk @@ -0,0 +1,33 @@ +# +# 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. +# 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/ +# treble_system.prop. + +include device/google/atv/products/treble_atv_common_64.mk + +AB_OTA_UPDATER := true +AB_OTA_PARTITIONS := system +PRODUCT_PACKAGES += \ + update_engine \ + update_verifier + +PRODUCT_NAME := aosp_atv_arm64_ab +PRODUCT_DEVICE := generic_arm64_ab +PRODUCT_BRAND := Android +PRODUCT_MODEL := AOSP ATV on ARM64 diff --git a/products/aosp_atv_arm_a.mk b/products/aosp_atv_arm_a.mk new file mode 100644 index 0000000..83af0e9 --- /dev/null +++ b/products/aosp_atv_arm_a.mk @@ -0,0 +1,27 @@ +# +# 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. +# 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/ +# treble_system.prop. + +include device/google/atv/products/treble_atv_common_32.mk + +PRODUCT_NAME := aosp_atv_arm_a +PRODUCT_DEVICE := generic_arm_a +PRODUCT_BRAND := Android +PRODUCT_MODEL := AOSP ATV on ARM32 diff --git a/products/aosp_atv_arm_ab.mk b/products/aosp_atv_arm_ab.mk new file mode 100644 index 0000000..d359582 --- /dev/null +++ b/products/aosp_atv_arm_ab.mk @@ -0,0 +1,33 @@ +# +# 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. +# 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/ +# treble_system.prop. + +include device/google/atv/products/treble_atv_common_32.mk + +AB_OTA_UPDATER := true +AB_OTA_PARTITIONS := system +PRODUCT_PACKAGES += \ + update_engine \ + update_verifier + +PRODUCT_NAME := aosp_atv_arm_ab +PRODUCT_DEVICE := generic_arm_ab +PRODUCT_BRAND := Android +PRODUCT_MODEL := AOSP ATV on ARM32 diff --git a/products/treble_atv_common.mk b/products/treble_atv_common.mk new file mode 100644 index 0000000..d0540d4 --- /dev/null +++ b/products/treble_atv_common.mk @@ -0,0 +1,81 @@ +# +# 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. +# 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/ +# treble_system.prop. + +# Generic system image inherits from AOSP +$(call inherit-product, device/google/atv/products/atv_base.mk) + +# Split selinux policy +PRODUCT_FULL_TREBLE_OVERRIDE := true + +# Packages required for ATV GSI +PRODUCT_PACKAGES += \ + FrameworkPackageStubs \ + LatinIMEGoogleTvPrebuilt \ + TvProvision \ + TvSampleLeanbackLauncher + +# All VNDK libraries (HAL interfaces, VNDK, VNDK-SP, LL-NDK) +PRODUCT_PACKAGES += vndk_package + +# SP-NDK: +PRODUCT_PACKAGES += \ + libvulkan \ + +# The following policy XML files are used as fallback for +# vendors/devices not using XML to configure audio policy. +PRODUCT_COPY_FILES += \ + frameworks/av/services/audiopolicy/config/audio_policy_configuration_generic.xml:system/etc/audio_policy_configuration.xml \ + frameworks/av/services/audiopolicy/config/primary_audio_policy_configuration.xml:system/etc/primary_audio_policy_configuration.xml \ + frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:system/etc/r_submix_audio_policy_configuration.xml \ + frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:system/etc/audio_policy_volumes.xml \ + frameworks/av/services/audiopolicy/config/default_volume_tables.xml:system/etc/default_volume_tables.xml \ + +# Bluetooth: +# audio.a2dp.default is a system module. Generic system image includes +# audio.a2dp.default to support A2DP if board has the capability. +PRODUCT_PACKAGES += \ + audio.a2dp.default + +# Net: +# Vendors can use the platform-provided network configuration utilities (ip, +# iptable, etc.) to configure the Linux networking stack, but these utilities +# do not yet include a HIDL interface wrapper. This is a solution on +# Android O. +PRODUCT_PACKAGES += \ + netutils-wrapper-1.0 + +# Support for the devices with no VNDK enforcing +PRODUCT_COPY_FILES += \ + build/make/target/product/vndk/init.gsi.rc:system/etc/init/init.gsi.rc \ + build/make/target/product/vndk/init.noenforce.rc:system/etc/init/gsi/init.noenforce.rc + +# Name space configuration file for non-enforcing VNDK +PRODUCT_PACKAGES += \ + ld.config.noenforce.txt + +# Set current VNDK version for GSI +PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \ + ro.gsi.vndk.version=$(PLATFORM_VNDK_VERSION) + +# privapp-permissions whitelisting +PRODUCT_COPY_FILES += \ + vendor/google/data/etc/permissions/privapp-permissions-google.xml:system/etc/permissions/privapp-permissions-google.xml \ + vendor/google/data/etc/permissions/privapp-permissions-atv.xml:system/etc/permissions/privapp-permissions-atv.xml diff --git a/products/treble_atv_common_32.mk b/products/treble_atv_common_32.mk new file mode 100644 index 0000000..8609052 --- /dev/null +++ b/products/treble_atv_common_32.mk @@ -0,0 +1,22 @@ +# +# 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. +# 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/ +# treble_system.prop. + +include device/google/atv/products/treble_atv_common.mk diff --git a/products/treble_atv_common_64.mk b/products/treble_atv_common_64.mk new file mode 100644 index 0000000..43ebc0b --- /dev/null +++ b/products/treble_atv_common_64.mk @@ -0,0 +1,34 @@ +# +# 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. +# 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/ +# treble_system.prop. + +include device/google/atv/products/treble_atv_common.mk + +# For now this will allow 64-bit apps, but still compile all apps with JNI +# for 32-bit only. + +# 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 +# 3. 64-bit only is currently forbidden (b/64280459#comment6) +PRODUCT_COPY_FILES += \ + system/core/rootdir/init.zygote64_32.rc:root/init.zygote64_32.rc \ + system/core/rootdir/init.zygote32_64.rc:root/init.zygote32_64.rc |