blob: 2642760693d2dcc075967e03f40f9114d40f97c5 [file] [log] [blame]
#
# Copyright (C) 2016 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 make file for all car builds
PRODUCT_PUBLIC_SEPOLICY_DIRS += packages/services/Car/car_product/sepolicy/public
PRODUCT_PRIVATE_SEPOLICY_DIRS += packages/services/Car/car_product/sepolicy/private
ifeq ($(ENABLE_CARTELEMETRY_SERVICE), true)
PRODUCT_PRIVATE_SEPOLICY_DIRS += packages/services/Car/car_product/sepolicy/cartelemetry
endif
PRODUCT_PACKAGES += \
Bluetooth \
CarActivityResolver \
CarDeveloperOptions \
CarSettingsIntelligence \
CarManagedProvisioning \
CarProvision \
StatementService \
SystemUpdater
PRODUCT_PACKAGES += \
pppd \
screenrecord
# This is for testing
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PACKAGES += \
DefaultStorageMonitoringCompanionApp \
EmbeddedKitchenSinkApp \
GarageModeTestApp \
ExperimentalCarService \
BugReportApp \
NetworkPreferenceApp \
SampleCustomInputService \
AdasLocationTestApp \
curl \
CarTelemetryApp \
RailwayReferenceApp \
CarHotwordDetectionServiceOne \
KitchenSinkServerlessRemoteTaskClientRRO \
# SEPolicy for test apps / services
PRODUCT_PRIVATE_SEPOLICY_DIRS += packages/services/Car/car_product/sepolicy/test
endif
# ClusterOsDouble is the testing app to test Cluster2 framework and it can handle Cluster VHAL
# and do some Cluster OS role.
ifeq ($(ENABLE_CLUSTER_OS_DOUBLE), true)
PRODUCT_PACKAGES += ClusterHomeSample ClusterOsDouble
else
# DirectRenderingCluster is the sample app for the old Cluster framework.
PRODUCT_PACKAGES += DirectRenderingCluster
endif # ENABLE_CLUSTER_OS_DOUBLE
PRODUCT_PROPERTY_OVERRIDES += \
ro.carrier=unknown \
ro.hardware.type=automotive \
# Disable developer options activity embedding
PRODUCT_SYSTEM_PROPERTIES += \
persist.sys.fflag.override.settings_support_large_screen=false
# Set default Bluetooth profiles
TARGET_SYSTEM_PROP += \
packages/services/Car/car_product/properties/bluetooth.prop
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
config.disable_systemtextclassifier=true
###
### Suggested values for multi-user properties - can be overridden
###
# Enable headless system user mode
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
ro.fw.mu.headless_system_user?=true
# Enable User HAL integration
# NOTE: when set to true, VHAL must also implement the user-related properties,
# otherwise CarService will ignore it
PRODUCT_SYSTEM_DEFAULT_PROPERTIES += \
android.car.user_hal_enabled?=true
### end of multi-user properties ###
# Overlay for Google network and fused location providers
$(call inherit-product, device/sample/products/location_overlay.mk)
$(call inherit-product-if-exists, frameworks/webview/chromium/chromium.mk)
$(call inherit-product, packages/services/Car/car_product/build/car_base.mk)
# Window Extensions
$(call inherit-product, $(SRC_TARGET_DIR)/product/window_extensions.mk)
# Overrides
PRODUCT_BRAND := generic
PRODUCT_DEVICE := generic
PRODUCT_NAME := generic_car_no_telephony
PRODUCT_IS_AUTOMOTIVE := true
PRODUCT_PROPERTY_OVERRIDES := \
ro.config.ringtone=Girtab.ogg \
ro.config.notification_sound=Tethys.ogg \
ro.config.alarm_alert=Oxygen.ogg \
$(PRODUCT_PROPERTY_OVERRIDES) \
PRODUCT_PROPERTY_OVERRIDES += \
keyguard.no_require_sim=true
# TODO(b/255631687): Enable the shell transition as soon as all CTS issues are resolved.
PRODUCT_SYSTEM_PROPERTIES += \
persist.wm.debug.shell_transit=0
# TODO(b/198516172): Find a better location to add this read only property
# It is added here to check the functionality, will be updated in next CL
PRODUCT_SYSTEM_PROPERTIES += \
ro.android.car.carservice.overlay.packages?=com.android.car.resources.vendor;com.google.android.car.resources.vendor;
# vendor layer can override this
PRODUCT_SYSTEM_PROPERTIES += \
ro.android.car.carservice.package?=com.android.car.updatable
# Update with PLATFORM_VERSION_MINOR_INT update
PRODUCT_SYSTEM_PROPERTIES += ro.android.car.version.platform_minor=0
# Automotive specific packages
PRODUCT_PACKAGES += \
CarFrameworkPackageStubs \
CarService \
CarShell \
CarDialerApp \
CarRadioApp \
OverviewApp \
CarLauncher \
CarSystemUI \
LocalMediaPlayer \
CarMediaApp \
CarMessengerApp \
CarHTMLViewer \
CarMapsPlaceholder \
CarLatinIME \
CarSettings \
CarUsbHandler \
RotaryIME \
RotaryPlayground \
android.car.builtin \
car-frameworks-service \
libcarservicehelperjni \
com.android.car.procfsinspector \
com.android.permission \
# RROs
PRODUCT_PACKAGES += \
CarPermissionControllerRRO \
CarSystemUIRRO \
# CarSystemUIPassengerOverlay is an RRO package required for enabling unique look
# and feel for Passenger(Secondary) User.
ifeq ($(ENABLE_PASSENGER_SYSTEMUI_RRO), true)
PRODUCT_PACKAGES += CarSystemUIPassengerOverlay
endif # ENABLE_PASSENGER_SYSTEMUI_RRO
# System Server components
# Order is important: if X depends on Y, then Y should precede X on the list.
PRODUCT_SYSTEM_SERVER_JARS += car-frameworks-service
# TODO: make the order optimal by appending 'car-frameworks-service' at the end
# after its dependency 'services'. Currently the order is violated because this
# makefile is included before AOSP makefile.
PRODUCT_BROKEN_SUBOPTIMAL_ORDER_OF_SYSTEM_SERVER_JARS := true
# Boot animation
PRODUCT_COPY_FILES += \
packages/services/Car/car_product/bootanimations/bootanimation-832.zip:system/media/bootanimation.zip
PRODUCT_LOCALES := \
en_US \
af_ZA \
am_ET \
ar_EG ar_XB \
as_IN \
az_AZ \
be_BY \
bg_BG \
bn_BD \
bs_BA \
ca_ES \
cs_CZ \
da_DK \
de_DE \
el_GR \
en_AU en_CA en_GB en_IN en_XA \
es_ES es_US \
et_EE \
eu_ES \
fa_IR \
fi_FI \
fil_PH \
fr_CA fr_FR \
gl_ES \
gu_IN \
hi_IN \
hr_HR \
hu_HU \
hy_AM \
id_ID \
is_IS \
it_IT \
iw_IL \
ja_JP \
ka_GE \
kk_KZ \
km_KH km_MH \
kn_IN \
ko_KR \
ky_KG \
lo_LA \
lv_LV \
lt_LT \
mk_MK \
ml_IN \
mn_MN \
mr_IN \
ms_MY \
my_MM \
ne_NP \
nl_NL \
no_NO \
or_IN \
pa_IN \
pl_PL \
pt_BR pt_PT \
ro_RO \
ru_RU \
si_LK \
sk_SK \
sl_SI \
sq_AL \
sr_RS \
sv_SE \
sw_TZ \
ta_IN \
te_IN \
th_TH \
tr_TR \
uk_UA \
ur_PK \
uz_UZ \
vi_VN \
zh_CN zh_HK zh_TW \
zu_ZA
PRODUCT_BOOT_JARS += \
android.car.builtin
USE_CAR_FRAMEWORK_APEX ?= false
ifeq ($(USE_CAR_FRAMEWORK_APEX),true)
PRODUCT_PACKAGES += com.android.car.framework
PRODUCT_APEX_BOOT_JARS += com.android.car.framework:android.car-module
PRODUCT_APEX_SYSTEM_SERVER_JARS += com.android.car.framework:car-frameworks-service-module
$(call soong_config_set,AUTO,car_bootclasspath_fragment,true)
PRODUCT_HIDDENAPI_STUBS := android.car-module.stubs
PRODUCT_HIDDENAPI_STUBS_SYSTEM := android.car-module.stubs.system
PRODUCT_HIDDENAPI_STUBS_TEST := android.car-module.stubs.test
else # !USE_CAR_FRAMEWORK_APEX
PRODUCT_BOOT_JARS += android.car
PRODUCT_PACKAGES += android.car CarServiceUpdatableNonModule car-frameworks-service-module
PRODUCT_SYSTEM_SERVER_JARS += car-frameworks-service-module
PRODUCT_HIDDENAPI_STUBS := android.car-stubs-dex
PRODUCT_HIDDENAPI_STUBS_SYSTEM := android.car-system-stubs-dex
PRODUCT_HIDDENAPI_STUBS_TEST := android.car-test-stubs-dex
endif # USE_CAR_FRAMEWORK_APEX
# Disable Prime Shader Cache in SurfaceFlinger to make it available faster
PRODUCT_PROPERTY_OVERRIDES += \
service.sf.prime_shader_cache=0
# Always disable Compose features in SystemUI to avoid APK size increase.
SYSTEMUI_USE_COMPOSE := false