编译时会选择
source build/envsetup.sh
lunch
选择 10 可以编译汽车相关的平台系统软件
分别调用以下编译脚本
device\generic\car\common\\car.mk
# Auto modules
PRODUCT_PACKAGES += \
android.hardware.broadcastradio@2.0-service \
android.hardware.automotive.vehicle@2.0-service
# Emulator configuration
PRODUCT_COPY_FILES += \
device/generic/car/common/config.ini:config.ini
# Car init.rc
PRODUCT_COPY_FILES += \
packages/services/Car/car_product/init/init.bootstat.rc:root/init.bootstat.rc \
packages/services/Car/car_product/init/init.car.rc:root/init.car.rc
# Enable landscape
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.screen.landscape.xml:system/etc/permissions/android.hardware.screen.landscape.xml
# Overwrite handheld_core_hardware.xml with a dummy config.
PRODUCT_COPY_FILES += \
device/generic/car/common/android.hardware.dummy.xml:system/etc/permissions/handheld_core_hardware.xml \
device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml \
device/sample/etc/old-apns-conf.xml:system/etc/old-apns-conf.xml \
device/generic/car/common/car_core_hardware.xml:system/etc/permissions/car_core_hardware.xml \
frameworks/native/data/etc/android.hardware.type.automotive.xml:system/etc/permissions/android.hardware.type.automotive.xml
# Vendor Interface Manifest
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.broadcastradio.xml:system/etc/permissions/android.hardware.broadcastradio.xml \
device/generic/car/common/manifest.xml:$(TARGET_COPY_OUT_VENDOR)/manifest.xml
PRODUCT_PROPERTY_OVERRIDES += \
android.car.hvac.demo=true
TARGET_USES_CAR_FUTURE_FEATURES := true
$(call inherit-product, packages/services/Car/car_product/build/car.mk)
app编译调用脚本如下:
packages\services\Car\car_product\build\car.mk
# Common make file for all car builds
BOARD_PLAT_PUBLIC_SEPOLICY_DIR += packages/services/Car/car_product/sepolicy/public
BOARD_PLAT_PRIVATE_SEPOLICY_DIR += packages/services/Car/car_product/sepolicy/private
PRODUCT_PACKAGES += \
Bluetooth \
OneTimeInitializer \
Provision \
SystemUI \
SystemUpdater
PRODUCT_PACKAGES += \
clatd \
clatd.conf \
pppd \
screenrecord
# This is for testing
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PACKAGES += \
DefaultStorageMonitoringCompanionApp \
EmbeddedKitchenSinkApp \
VmsPublisherClientSample \
VmsSubscriberClientSample \
android.car.cluster.loggingrenderer \
DirectRenderingClusterSample \
com.android.car.powertestservice \
# SEPolicy for test apps / services
BOARD_SEPOLICY_DIRS += packages/services/Car/car_product/sepolicy/test
endif
PRODUCT_COPY_FILES := \
frameworks/av/media/libeffects/data/audio_effects.conf:system/etc/audio_effects.conf \
packages/services/Car/car_product/preloaded-classes-car:system/etc/preloaded-classes \
PRODUCT_PROPERTY_OVERRIDES += \
ro.carrier=unknown \
persist.bluetooth.enablenewavrcp=false
# Overlay for Google network and fused location providers
$(call inherit-product, device/sample/products/location_overlay.mk)
$(call inherit-product-if-exists, frameworks/base/data/fonts/fonts.mk)
$(call inherit-product-if-exists, external/google-fonts/dancing-script/fonts.mk)
$(call inherit-product-if-exists, external/google-fonts/carrois-gothic-sc/fonts.mk)
$(call inherit-product-if-exists, external/google-fonts/coming-soon/fonts.mk)
$(call inherit-product-if-exists, external/google-fonts/cutive-mono/fonts.mk)
$(call inherit-product-if-exists, external/noto-fonts/fonts.mk)
$(call inherit-product-if-exists, external/roboto-fonts/fonts.mk)
$(call inherit-product-if-exists, external/hyphenation-patterns/patterns.mk)
$(call inherit-product-if-exists, frameworks/base/data/keyboards/keyboards.mk)
$(call inherit-product-if-exists, frameworks/webview/chromium/chromium.mk)
$(call inherit-product, packages/services/Car/car_product/build/car_base.mk)
# Overrides
PRODUCT_BRAND := generic
PRODUCT_DEVICE := generic
PRODUCT_NAME := generic_car_no_telephony
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
# Automotive specific packages
PRODUCT_PACKAGES += \
CarService \
CarTrustAgentService \
CarDialerApp \
CarRadioApp \
OverviewApp \
CarLauncher \
CarLensPickerApp \
LocalMediaPlayer \
CarMediaApp \
CarMessengerApp \
CarHvacApp \
CarMapsPlaceholder \
CarLatinIME \
CarSettings \
CarUsbHandler \
android.car \
car-frameworks-service \
com.android.car.procfsinspector \
libcar-framework-service-jni \
# System Server components
PRODUCT_SYSTEM_SERVER_JARS += car-frameworks-service
# Boot animation
PRODUCT_COPY_FILES += \
packages/services/Car/car_product/bootanimations/bootanimation-832.zip:system/media/bootanimation.zip
PRODUCT_PROPERTY_OVERRIDES += \
fmas.spkr_6ch=35,20,110 \
fmas.spkr_2ch=35,25 \
fmas.spkr_angles=10 \
fmas.spkr_sgain=0 \
media.aac_51_output_enabled=true
PRODUCT_LOCALES := en_US af_ZA am_ET ar_EG bg_BG bn_BD ca_ES cs_CZ da_DK de_DE el_GR en_AU en_GB en_IN es_ES es_US et_EE eu_ES fa_IR fi_FI fr_CA fr_FR gl_ES hi_IN hr_HR hu_HU hy_AM in_ID is_IS it_IT iw_IL ja_JP ka_GE km_KH ko_KR ky_KG lo_LA lt_LT lv_LV km_MH kn_IN mn_MN ml_IN mk_MK mr_IN ms_MY my_MM ne_NP nb_NO nl_NL pl_PL pt_BR pt_PT ro_RO ru_RU si_LK sk_SK sl_SI sr_RS sv_SE sw_TZ ta_IN te_IN th_TH tl_PH tr_TR uk_UA vi_VN zh_CN zh_HK zh_TW zu_ZA en_XA ar_XB
# should add to BOOT_JARS only once
ifeq (,$(INCLUDED_ANDROID_CAR_TO_PRODUCT_BOOT_JARS))
PRODUCT_BOOT_JARS += \
android.car
INCLUDED_ANDROID_CAR_TO_PRODUCT_BOOT_JARS := yes
endif