summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWally Yau <wyau@google.com>2018-02-15 21:27:52 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-02-15 21:27:52 +0000
commit260822818d0f19d7824eddc22731744815b00d25 (patch)
treef7e28d0ff615ff2196c09cfd0e29d95e425c5297
parent8c4851e7c4fa39afd8c1edf4ee4069e6d309d37f (diff)
parentf9879fbff3200918277b9795820ce77bd7b6fc12 (diff)
downloadatv-260822818d0f19d7824eddc22731744815b00d25.tar.gz
Merge "Generic System Image for Android TV"
-rw-r--r--products/AndroidProducts.mk38
-rw-r--r--products/aosp_atv_arm64_a.mk27
-rw-r--r--products/aosp_atv_arm64_ab.mk33
-rw-r--r--products/aosp_atv_arm_a.mk27
-rw-r--r--products/aosp_atv_arm_ab.mk33
-rw-r--r--products/treble_atv_common.mk81
-rw-r--r--products/treble_atv_common_32.mk22
-rw-r--r--products/treble_atv_common_64.mk34
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