1# 2# Copyright (C) 2022 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17# This makefile supports a generic system image for an automotive device. 18$(call inherit-product, packages/services/Car/car_product/build/car_system.mk) 19 20# Car rotary 21PRODUCT_PACKAGES += \ 22 CarRotaryController \ 23 CarRotaryImeRRO \ 24 RotaryIME \ 25 RotaryPlayground \ 26 27PRODUCT_PACKAGES_DEBUG += \ 28 avbctl \ 29 bootctl \ 30 curl \ 31 tinycap \ 32 tinyhostless \ 33 tinymix \ 34 tinypcminfo \ 35 tinyplay \ 36 update_engine_client \ 37 AdasLocationTestApp \ 38 CarHotwordDetectionServiceOne \ 39 CarTelemetryApp \ 40 DefaultStorageMonitoringCompanionApp \ 41 EmbeddedKitchenSinkApp \ 42 ExperimentalCarService \ 43 GarageModeTestApp \ 44 NetworkPreferenceApp \ 45 RailwayReferenceApp \ 46 SampleCustomInputService \ 47 AaosCustomizationTool \ 48 49# Default boot animation for AAOS 50PRODUCT_COPY_FILES += \ 51 packages/services/Car/car_product/bootanimations/bootanimation-832.zip:$(TARGET_COPY_OUT_SYSTEM)/media/bootanimation.zip 52 53# ClusterOsDouble is the testing app to test Cluster2 framework and it can handle Cluster VHAL 54# and do some Cluster OS role. 55ifeq ($(ENABLE_CLUSTER_OS_DOUBLE), true) 56PRODUCT_PACKAGES += ClusterHomeSample ClusterOsDouble 57else 58# DirectRenderingCluster is the sample app for the old Cluster framework. 59PRODUCT_PACKAGES += DirectRenderingCluster 60endif # ENABLE_CLUSTER_OS_DOUBLE 61 62# ENABLE_CAMERA_SERVICE must be set as true from the product's makefile if it wants to support 63# Android Camera service. 64ifneq ($(ENABLE_CAMERA_SERVICE), true) 65PRODUCT_PROPERTY_OVERRIDES += config.disable_cameraservice=true 66PRODUCT_PACKAGES += HideCameraApps 67endif 68 69# ENABLE_EVS_SERVICE must be set as true from the product's makefile if it wants to support 70# the Extended View System service. 71ifeq ($(ENABLE_EVS_SERVICE), true) 72PRODUCT_PACKAGES += evsmanagerd 73 74# CUSTOMIZE_EVS_SERVICE_PARAMETER must be set as true from the product's makefile if it wants 75# to use IEvsEnumearor instances other than hw/1. 76ifneq ($(CUSTOMIZE_EVS_SERVICE_PARAMETER), true) 77PRODUCT_COPY_FILES += \ 78 packages/services/Car/cpp/evs/manager/aidl/init.evs.rc:$(TARGET_COPY_OUT_SYSTEM)/etc/init/init.evs.rc 79endif 80 81ifeq ($(ENABLE_CAREVSSERVICE_SAMPLE), true) 82# TODO(b/293332636): Clean up below line when both apps are consolidated into a single app. 83PRODUCT_PACKAGES += CarEvsCameraPreviewApp CarEvsMultiCameraPreviewApp 84endif 85ifeq ($(ENABLE_REAR_VIEW_CAMERA_SAMPLE), true) 86PRODUCT_PACKAGES += SampleRearViewCamera 87endif 88# This is needed to be available to all builds because overlay config doesn't support optional overlays. 89PRODUCT_PACKAGE_OVERLAYS += packages/services/Car/tests/SampleRearViewCamera/overlay 90 91endif # ENABLE_EVS_SERVICE 92 93# Conditionally enable the telemetry service 94ifeq ($(ENABLE_CARTELEMETRY_SERVICE), true) 95PRODUCT_PACKAGES += android.automotive.telemetryd@1.0 \ 96 ScriptExecutor 97endif 98 99# ENABLE_EVS_SAMPLE should be set true or their vendor specific equivalents should be included in 100# the device.mk with the corresponding selinux policies 101ifeq ($(ENABLE_EVS_SAMPLE), true) 102PRODUCT_PACKAGES += evs_app 103# A reference EVS HAL implementation will be added in car_vendor.mk and require AIDL version of 104# the automotive display service implementation. 105USE_AIDL_DISPLAY_SERVICE := true 106else ifeq ($(ENABLE_SAMPLE_EVS_APP), true) 107PRODUCT_PACKAGES += evs_app 108endif 109 110ifeq ($(USE_AIDL_DISPLAY_SERVICE), true) 111PRODUCT_PACKAGES += cardisplayproxyd 112else 113# TODO(b/276340636): Remove HIDL Automotive Display Service implementation when we stop supporting 114# HIDL EVS interface implementations. 115$(warning HIDL version of the Automotive Display Service is deprecated \ 116 and will be replaced with cardisplayproxyd.) 117PRODUCT_PACKAGES += android.frameworks.automotive.display@1.0-service 118endif # USE_AIDL_DISPLAY_SERVICE 119 120PRODUCT_NAME := car_generic_system 121PRODUCT_BRAND := generic 122 123# Define /system partition-specific product properties to identify that /system 124# partition is car_generic_system. 125PRODUCT_SYSTEM_NAME := car_generic 126PRODUCT_SYSTEM_BRAND := Android 127PRODUCT_SYSTEM_MANUFACTURER := Android 128PRODUCT_SYSTEM_MODEL := car_generic 129PRODUCT_SYSTEM_DEVICE := generic 130 131# System.img should be mounted at /, so we include ROOT here. 132_my_paths := \ 133 $(TARGET_COPY_OUT_ROOT)/ \ 134 $(TARGET_COPY_OUT_SYSTEM)/ \ 135 136$(call require-artifacts-in-path, $(_my_paths),) 137