• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (C) 2011 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
17include device/google/gs-common/device.mk
18
19TARGET_BOARD_PLATFORM := gs201
20
21AB_OTA_POSTINSTALL_CONFIG += \
22	RUN_POSTINSTALL_system=true \
23	POSTINSTALL_PATH_system=system/bin/otapreopt_script \
24	FILESYSTEM_TYPE_system=ext4 \
25POSTINSTALL_OPTIONAL_system=true
26
27# Set Vendor SPL to match platform
28VENDOR_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH)
29
30# Set boot SPL
31BOOT_SECURITY_PATCH = $(PLATFORM_SECURITY_PATCH)
32
33# TODO(b/207450311): Remove this flag once implemented
34USE_PIXEL_GRALLOC := false
35ifeq ($(USE_PIXEL_GRALLOC),true)
36	PRODUCT_SOONG_NAMESPACES += hardware/google/gchips/GrallocHAL
37else
38	PRODUCT_SOONG_NAMESPACES += hardware/google/gchips/gralloc4
39endif
40
41PRODUCT_SOONG_NAMESPACES += \
42	hardware/google/av \
43	hardware/google/gchips \
44	hardware/google/graphics/common \
45	hardware/google/graphics/gs201 \
46	hardware/google/interfaces \
47	hardware/google/pixel \
48	device/google/gs201 \
49	device/google/gs201/powerstats \
50	vendor/google/whitechapel/tools \
51	vendor/google/interfaces \
52	vendor/google_devices/common/proprietary/confirmatioui_hal \
53	vendor/google_nos/host/android \
54	vendor/google_nos/test/system-test-harness \
55	vendor/google/camera
56
57LOCAL_KERNEL := $(TARGET_KERNEL_DIR)/Image.lz4
58
59# OEM Unlock reporting
60PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
61	ro.oem_unlock_supported=1
62
63ifneq ($(BOARD_WITHOUT_RADIO),true)
64# Include vendor telephony soong namespace
65PRODUCT_SOONG_NAMESPACES += \
66	vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)
67endif
68
69ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
70#Set IKE logs to verbose for WFC
71PRODUCT_PROPERTY_OVERRIDES += log.tag.IKE=VERBOSE
72
73#Set Shannon IMS logs to debug
74PRODUCT_PROPERTY_OVERRIDES += log.tag.SHANNON_IMS=DEBUG
75
76#Set Shannon QNS logs to debug
77PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS=DEBUG
78PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-ims=DEBUG
79PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-emergency=DEBUG
80PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-mms=DEBUG
81PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-xcap=DEBUG
82PRODUCT_PROPERTY_OVERRIDES += log.tag.ShannonQNS-HC=DEBUG
83
84# Modem userdebug
85include device/google/gs201/modem/userdebug.mk
86endif
87
88ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
89# b/36703476: Set default log size to 1M
90PRODUCT_PROPERTY_OVERRIDES += \
91	ro.logd.size=1M
92# b/114766334: persist all logs by default rotating on 30 files of 1MiB
93PRODUCT_PROPERTY_OVERRIDES += \
94	logd.logpersistd=logcatd \
95	logd.logpersistd.size=30
96endif
97
98# From system.property
99PRODUCT_PROPERTY_OVERRIDES += \
100	ro.telephony.default_network=27 \
101	persist.vendor.ril.use.iccid_to_plmn=1 \
102	persist.vendor.ril.emergencynumber.mode=5
103	#rild.libpath=/system/lib64/libsec-ril.so \
104	#rild.libargs=-d /dev/umts_ipc0
105
106# SIT-RIL Logging setting
107PRODUCT_PROPERTY_OVERRIDES += \
108	persist.vendor.ril.log_mask=3 \
109	persist.vendor.ril.log.base_dir=/data/vendor/radio/sit-ril \
110	persist.vendor.ril.log.chunk_size=5242880 \
111	persist.vendor.ril.log.num_file=3
112
113# Enable reboot free DSDS
114PRODUCT_PRODUCT_PROPERTIES += \
115	persist.radio.reboot_on_modem_change=false
116
117# Configure DSDS by default
118PRODUCT_PRODUCT_PROPERTIES += \
119	persist.radio.multisim.config=dsds
120
121# Enable Early Camping
122PRODUCT_PRODUCT_PROPERTIES += \
123	persist.vendor.ril.camp_on_earlier=1
124
125# Enable SET_SCREEN_STATE request
126PRODUCT_PROPERTY_OVERRIDES += \
127	persist.vendor.ril.enable_set_screen_state=1
128
129# Set the Bluetooth Class of Device
130ifneq ($(USE_TABLET_BT_COD),true)
131# Service Field: 0x5A -> 90
132#    Bit 14: LE audio
133#    Bit 17: Networking
134#    Bit 19: Capturing
135#    Bit 20: Object Transfer
136#    Bit 22: Telephony
137# MAJOR_CLASS: 0x42 -> 66 (Phone)
138# MINOR_CLASS: 0x0C -> 12 (Smart Phone)
139PRODUCT_PRODUCT_PROPERTIES += \
140    bluetooth.device.class_of_device=90,66,12
141else
142# Service Field: 0x5A -> 90
143#    Bit 14: LE audio
144#    Bit 17: Networking
145#    Bit 19: Capturing
146#    Bit 20: Object Transfer
147#    Bit 22: Telephony
148# MAJOR_CLASS: 0x41 -> 65 (Computer)
149# MINOR_CLASS: 0x10 -> 16 (Handheld PC/PDA clamshell)
150PRODUCT_PRODUCT_PROPERTIES += \
151    bluetooth.device.class_of_device=90,65,16
152endif
153
154# Set supported Bluetooth profiles to enabled
155PRODUCT_PRODUCT_PROPERTIES += \
156	bluetooth.profile.asha.central.enabled?=true \
157	bluetooth.profile.a2dp.source.enabled?=true \
158	bluetooth.profile.avrcp.target.enabled?=true \
159	bluetooth.profile.bas.client.enabled?=true \
160	bluetooth.profile.gatt.enabled?=true \
161	bluetooth.profile.hfp.ag.enabled?=true \
162	bluetooth.profile.hid.device.enabled?=true \
163	bluetooth.profile.hid.host.enabled?=true \
164	bluetooth.profile.map.server.enabled?=true \
165	bluetooth.profile.opp.enabled?=true \
166	bluetooth.profile.pan.nap.enabled?=true \
167	bluetooth.profile.pan.panu.enabled?=true \
168	bluetooth.profile.pbap.server.enabled?=true \
169	bluetooth.profile.sap.server.enabled?=true \
170
171# Carrier configuration default location
172PRODUCT_PROPERTY_OVERRIDES += \
173	persist.vendor.radio.config.carrier_config_dir=/mnt/vendor/modem_img/images/default/confpack
174
175PRODUCT_PROPERTY_OVERRIDES += \
176	telephony.active_modems.max_count=2
177
178USE_LASSEN_OEMHOOK := true
179
180# Use for GRIL
181USES_LASSEN_MODEM := true
182
183ifeq ($(USES_GOOGLE_DIALER_CARRIER_SETTINGS),true)
184USE_GOOGLE_DIALER := true
185USE_GOOGLE_CARRIER_SETTINGS := true
186USES_GAUDIO := true
187endif
188
189ifeq (,$(filter aosp_%,$(TARGET_PRODUCT)))
190# Audio client implementation for RIL
191USES_GAUDIO := true
192endif
193
194# ######################
195# GRAPHICS - GPU (begin)
196
197# Must match BOARD_USES_SWIFTSHADER in BoardConfig.mk
198USE_SWIFTSHADER := false
199
200# HWUI
201TARGET_USES_VULKAN = true
202
203PRODUCT_SOONG_NAMESPACES += \
204	vendor/arm/mali/valhall
205
206$(call soong_config_set,pixel_mali,soc,$(TARGET_BOARD_PLATFORM))
207
208include device/google/gs101/neuralnetwork/neuralnetwork.mk
209
210PRODUCT_PACKAGES += \
211	csffw_image_prebuilt__firmware_prebuilt_todx_mali_csffw.bin \
212	libGLES_mali \
213	vulkan.mali \
214	libOpenCL \
215	libgpudataproducer \
216
217PRODUCT_VENDOR_PROPERTIES += \
218	ro.hardware.vulkan=mali
219
220ifeq ($(USE_SWIFTSHADER),true)
221PRODUCT_PACKAGES += \
222   libGLESv1_CM_swiftshader \
223   libEGL_swiftshader \
224   libGLESv2_swiftshader
225endif
226
227PRODUCT_COPY_FILES += \
228	frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml \
229	frameworks/native/data/etc/android.hardware.vulkan.version-1_3.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.version.xml \
230	frameworks/native/data/etc/android.hardware.vulkan.level-1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.level.xml \
231	frameworks/native/data/etc/android.hardware.vulkan.compute-0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.vulkan.compute.xml \
232	frameworks/native/data/etc/android.software.vulkan.deqp.level-2022-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.vulkan.deqp.level.xml \
233	frameworks/native/data/etc/android.software.opengles.deqp.level-2022-03-01.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.opengles.deqp.level.xml
234
235ifeq ($(USE_SWIFTSHADER),true)
236PRODUCT_VENDOR_PROPERTIES += \
237	ro.hardware.egl = swiftshader
238else
239PRODUCT_VENDOR_PROPERTIES += \
240	ro.hardware.egl = mali
241endif
242
243PRODUCT_VENDOR_PROPERTIES += \
244	ro.opengles.version=196610 \
245	graphics.gpu.profiler.support=true \
246	debug.renderengine.backend=skiaglthreaded \
247
248# GRAPHICS - GPU (end)
249# ####################
250
251# Device Manifest, Device Compatibility Matrix for Treble
252DEVICE_MANIFEST_FILE := \
253	device/google/gs201/manifest.xml
254
255ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
256DEVICE_MANIFEST_FILE += \
257	device/google/gs201/manifest_media_aosp.xml
258
259PRODUCT_COPY_FILES += \
260	device/google/gs201/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml
261else
262DEVICE_MANIFEST_FILE += \
263	device/google/gs201/manifest_media.xml
264
265PRODUCT_COPY_FILES += \
266	device/google/gs201/media_codecs_bo_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml \
267	device/google/gs201/media_codecs_aosp_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_aosp_c2.xml
268endif
269
270DEVICE_MATRIX_FILE := \
271	device/google/gs201/compatibility_matrix.xml
272
273DEVICE_PACKAGE_OVERLAYS += device/google/gs201/overlay
274
275# This device is shipped with 33 (Android T)
276PRODUCT_SHIPPING_API_LEVEL := 33
277
278# RKP VINTF
279-include vendor/google_nos/host/android/hals/keymaster/aidl/strongbox/RemotelyProvisionedComponent-citadel.mk
280
281# Enforce the Product interface
282PRODUCT_PRODUCT_VNDK_VERSION := current
283PRODUCT_ENFORCE_PRODUCT_PARTITION_INTERFACE := true
284
285# Init files
286PRODUCT_COPY_FILES += \
287	$(LOCAL_KERNEL):kernel \
288	device/google/gs201/conf/init.gs201.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.gs201.usb.rc \
289	device/google/gs201/conf/ueventd.gs201.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc
290
291PRODUCT_COPY_FILES += \
292	device/google/gs201/conf/init.gs201.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.gs201.rc
293
294ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
295PRODUCT_COPY_FILES += \
296	device/google/gs201/conf/init.debug.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.debug.rc
297endif
298
299# Recovery files
300PRODUCT_COPY_FILES += \
301	device/google/gs201/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.gs201.rc
302
303# Fstab files
304PRODUCT_PACKAGES += \
305	fstab.gs201 \
306	fstab.gs201.vendor_ramdisk \
307	fstab.gs201-fips \
308	fstab.gs201-fips.vendor_ramdisk
309
310PRODUCT_COPY_FILES += \
311	device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.persist:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.persist \
312
313# Shell scripts
314PRODUCT_COPY_FILES += \
315	device/google/gs201/init.insmod.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.insmod.sh \
316	device/google/gs201/disable_contaminant_detection.sh:$(TARGET_COPY_OUT_VENDOR)/bin/hw/disable_contaminant_detection.sh
317
318# insmod files
319PRODUCT_COPY_FILES += \
320	device/google/gs201/init.insmod.gs201.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/init.insmod.gs201.cfg
321
322# For creating dtbo image
323PRODUCT_HOST_PACKAGES += \
324	mkdtimg
325
326PRODUCT_PACKAGES += \
327	messaging
328
329# Contexthub HAL
330PRODUCT_PACKAGES += \
331	android.hardware.contexthub-service.generic
332
333# CHRE tools
334ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
335PRODUCT_PACKAGES += \
336	chre_power_test_client \
337	chre_test_client
338endif
339
340PRODUCT_COPY_FILES += \
341	frameworks/native/data/etc/android.hardware.context_hub.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.context_hub.xml
342
343## Enable the CHRE Daemon
344CHRE_USF_DAEMON_ENABLED := true
345PRODUCT_PACKAGES += \
346	chre \
347	preloaded_nanoapps.json
348
349# Filesystem management tools
350PRODUCT_PACKAGES += \
351	linker.vendor_ramdisk \
352	tune2fs.vendor_ramdisk \
353	resize2fs.vendor_ramdisk
354
355# Filesystem: convert /dev/block/by-name/persist to ext4 (b/239632964)
356PRODUCT_COPY_FILES += \
357	device/google/gs201/convert_to_ext4.sh:$(TARGET_COPY_OUT_SYSTEM_EXT)/bin/convert_to_ext4.sh \
358
359# Userdata Checkpointing OTA GC
360PRODUCT_PACKAGES += \
361	checkpoint_gc
362
363# Vendor verbose logging default property
364ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
365PRODUCT_PROPERTY_OVERRIDES += \
366	persist.vendor.verbose_logging_enabled=true
367else
368PRODUCT_PROPERTY_OVERRIDES += \
369	persist.vendor.verbose_logging_enabled=false
370endif
371
372# RPMB TA
373PRODUCT_PACKAGES += \
374	tlrpmb
375
376# Touch firmware
377#PRODUCT_COPY_FILES += \
378	device/google/gs201/firmware/touch/s6sy761.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/s6sy761.fw
379# Touch
380PRODUCT_COPY_FILES += \
381	frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml
382
383# Sensors
384PRODUCT_COPY_FILES += \
385	frameworks/native/data/etc/android.hardware.sensor.accelerometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.accelerometer.xml \
386	frameworks/native/data/etc/android.hardware.sensor.compass.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.compass.xml \
387	frameworks/native/data/etc/android.hardware.sensor.dynamic.head_tracker.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.dynamic.head_tracker.xml \
388	frameworks/native/data/etc/android.hardware.sensor.gyroscope.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.gyroscope.xml \
389	frameworks/native/data/etc/android.hardware.sensor.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.light.xml\
390	frameworks/native/data/etc/android.hardware.sensor.stepcounter.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepcounter.xml \
391	frameworks/native/data/etc/android.hardware.sensor.stepdetector.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.stepdetector.xml
392# (See b/240652154)
393ifneq ($(DISABLE_SENSOR_BARO_PROX_HIFI),true)
394PRODUCT_COPY_FILES += \
395	frameworks/native/data/etc/android.hardware.sensor.barometer.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.barometer.xml \
396	frameworks/native/data/etc/android.hardware.sensor.hifi_sensors.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.hifi_sensors.xml \
397	frameworks/native/data/etc/android.hardware.sensor.proximity.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.sensor.proximity.xml
398endif
399
400# Add sensor HAL 2.1 product packages
401PRODUCT_PACKAGES += android.hardware.sensors@2.1-service.multihal
402
403# USB HAL
404PRODUCT_PACKAGES += \
405	android.hardware.usb-service
406PRODUCT_PACKAGES += \
407	android.hardware.usb.gadget-service
408
409# MIDI feature
410PRODUCT_COPY_FILES += \
411	frameworks/native/data/etc/android.software.midi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.midi.xml
412
413# eSIM MEP Feature
414ifneq ($(DISABLE_TELEPHONY_EUICC),true)
415PRODUCT_COPY_FILES += \
416    frameworks/native/data/etc/android.hardware.telephony.euicc.mep.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/permissions/android.hardware.telephony.euicc.mep.xml
417endif
418
419# default usb debug functions
420ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
421PRODUCT_PROPERTY_OVERRIDES += \
422	persist.vendor.usb.usbradio.config=dm
423endif
424
425
426PRODUCT_COPY_FILES += \
427	device/google/gs201/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
428
429-include hardware/google/pixel/power-libperfmgr/aidl/device.mk
430
431# IRQ rebalancing.
432include hardware/google/pixel/rebalance_interrupts/rebalance_interrupts.mk
433
434# PowerStats HAL
435PRODUCT_PACKAGES += \
436	android.hardware.power.stats-service.pixel
437
438# dumpstate HAL
439PRODUCT_PACKAGES += \
440	android.hardware.dumpstate-service.gs201
441
442# AoC support
443include device/google/gs201/aoc/device.mk
444
445#
446# Audio HALs
447#
448
449# Audio Configurations
450USE_LEGACY_LOCAL_AUDIO_HAL := false
451USE_XML_AUDIO_POLICY_CONF := 1
452
453# Enable AAudio MMAP/NOIRQ data path.
454PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_policy=2
455PRODUCT_PROPERTY_OVERRIDES += aaudio.mmap_exclusive_policy=2
456PRODUCT_PROPERTY_OVERRIDES += aaudio.hw_burst_min_usec=2000
457
458# Calliope firmware overwrite
459#PRODUCT_COPY_FILES += \
460	device/google/gs201/firmware/calliope_dram.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_dram.bin \
461	device/google/gs201/firmware/calliope_sram.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_sram.bin \
462	device/google/gs201/firmware/calliope_dram_2.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_dram_2.bin \
463	device/google/gs201/firmware/calliope_sram_2.bin:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope_sram_2.bin \
464	device/google/gs201/firmware/calliope2.dt:$(TARGET_COPY_OUT_VENDOR)/firmware/calliope2.dt \
465
466# Cannot reference variables defined in BoardConfig.mk, uncomment this if
467# BOARD_USE_OFFLOAD_AUDIO and BOARD_USE_OFFLOAD_EFFECT are true
468## AudioEffectHAL library
469#PRODUCT_PACKAGES += \
470#	libexynospostprocbundle
471
472# Cannot reference variables defined in BoardConfig.mk, uncomment this if
473# BOARD_USE_SOUNDTRIGGER_HAL is true
474#PRODUCT_PACKAGES += \
475#	sound_trigger.primary.maran9820
476
477# A-Box Service Daemon
478#PRODUCT_PACKAGES += main_abox
479
480# Libs
481PRODUCT_PACKAGES += \
482	com.android.future.usb.accessory
483
484PRODUCT_PACKAGES += \
485	android.hardware.graphics.mapper@4.0-impl \
486	android.hardware.graphics.allocator-V1-service
487
488PRODUCT_PACKAGES += \
489	android.hardware.memtrack-service.pixel \
490	libion_exynos \
491	libion
492
493PRODUCT_PACKAGES += \
494	libhwjpeg
495
496# Video Editor
497PRODUCT_PACKAGES += \
498	VideoEditorGoogle
499
500# WideVine modules
501include device/google/gs201/widevine/device.mk
502PRODUCT_PACKAGES += \
503	liboemcrypto \
504
505PANTHER_PRODUCT := %panther
506CHEETAH_PRODUCT := %cheetah
507LYNX_PRODUCT := %lynx
508FELIX_PRODUCT := %felix
509TANGOR_PRODUCT := %tangorpro
510CLOUDRIPPER_PRODUCT := %cloudripper
511ifneq (,$(filter $(PANTHER_PRODUCT), $(TARGET_PRODUCT)))
512        LOCAL_TARGET_PRODUCT := panther
513else ifneq (,$(filter $(CHEETAH_PRODUCT), $(TARGET_PRODUCT)))
514        LOCAL_TARGET_PRODUCT := cheetah
515else ifneq (,$(filter $(LYNX_PRODUCT), $(TARGET_PRODUCT)))
516        LOCAL_TARGET_PRODUCT := lynx
517else ifneq (,$(filter $(FELIX_PRODUCT), $(TARGET_PRODUCT)))
518        LOCAL_TARGET_PRODUCT := felix
519else ifneq (,$(filter $(TANGOR_PRODUCT), $(TARGET_PRODUCT)))
520        LOCAL_TARGET_PRODUCT := tangorpro
521else ifneq (,$(filter $(CLOUDRIPPER_PRODUCT), $(TARGET_PRODUCT)))
522        LOCAL_TARGET_PRODUCT := cloudripper
523else
524        # WAR: continue defaulting to slider build on gs201 to not
525        # break dev targets such as ravenclaw
526        LOCAL_TARGET_PRODUCT := slider
527endif
528
529$(call soong_config_set,google3a_config,soc,gs201)
530$(call soong_config_set,google3a_config,gcam_awb,true)
531$(call soong_config_set,google3a_config,ghawb_truetone,true)
532
533ifneq ($(wildcard vendor/google/services/LyricCameraHAL/src),)
534$(call soong_config_set,lyric,soc,gs201)
535$(call soong_config_set,lyric,use_lyric_camera_hal,true)
536# lyric::tuning_product is set in device-specific makefiles,
537# such as device/google/${DEVICE}/device-${DEVICE}.mk
538
539$(call soong_config_set,gch,hwl_library,lyric)
540endif
541
542# WiFi
543PRODUCT_PACKAGES += \
544	android.hardware.wifi@1.0-service \
545	wificond \
546	libwpa_client
547
548# Connectivity
549PRODUCT_PACKAGES += \
550        ConnectivityOverlay
551
552# Battery Mitigation
553PRODUCT_PACKAGES += \
554        battery_mitigation
555
556
557ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
558PRODUCT_PACKAGES += BrownoutDetection
559endif
560
561PRODUCT_PACKAGES_DEBUG += \
562	sg_write_buffer \
563	f2fs_io \
564	check_f2fs \
565	f2fsstat \
566	f2fs.fibmap \
567	dump.f2fs
568
569# Storage health HAL
570PRODUCT_PACKAGES += \
571	android.hardware.health.storage-service.default
572
573# storage pixelstats
574-include hardware/google/pixel/pixelstats/device.mk
575
576# Enable project quotas and casefolding for emulated storage without sdcardfs
577$(call inherit-product, $(SRC_TARGET_DIR)/product/emulated_storage.mk)
578
579$(call inherit-product, $(SRC_TARGET_DIR)/product/virtual_ab_ota/android_t_baseline.mk)
580PRODUCT_VIRTUAL_AB_COMPRESSION_METHOD := gz
581
582# Enforce generic ramdisk allow list
583$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_ramdisk.mk)
584
585# Titan-M
586ifeq (,$(filter true, $(BOARD_WITHOUT_DTLS)))
587include hardware/google/pixel/dauntless/dauntless.mk
588endif
589
590PRODUCT_PACKAGES_DEBUG += \
591	WvInstallKeybox
592
593# Copy Camera HFD Setfiles
594#PRODUCT_COPY_FILES += \
595	device/google/gs201/firmware/camera/libhfd/default_configuration.hfd.cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/default_configuration.hfd.cfg.json \
596	device/google/gs201/firmware/camera/libhfd/pp_cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/pp_cfg.json \
597	device/google/gs201/firmware/camera/libhfd/tracker_cfg.json:$(TARGET_COPY_OUT_VENDOR)/firmware/tracker_cfg.json \
598	device/google/gs201/firmware/camera/libhfd/WithLightFixNoBN.SDNNmodel:$(TARGET_COPY_OUT_VENDOR)/firmware/WithLightFixNoBN.SDNNmodel
599
600# WiFi
601PRODUCT_COPY_FILES += \
602	frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
603	frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
604	frameworks/native/data/etc/android.hardware.wifi.aware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.aware.xml \
605	frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
606	frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
607
608PRODUCT_COPY_FILES += \
609	frameworks/native/data/etc/android.hardware.usb.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.host.xml \
610	frameworks/native/data/etc/android.hardware.usb.accessory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.usb.accessory.xml
611
612# (See b/239142680, b/211840489, b/225749853)
613ifneq ($(DISABLE_CAMERA_FS_AF),true)
614PRODUCT_COPY_FILES += \
615	frameworks/native/data/etc/android.hardware.camera.flash-autofocus.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.flash-autofocus.xml
616else
617PRODUCT_COPY_FILES += \
618	frameworks/native/data/etc/android.hardware.camera.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.xml
619endif
620
621PRODUCT_COPY_FILES += \
622	frameworks/native/data/etc/android.hardware.camera.front.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.front.xml \
623	frameworks/native/data/etc/android.hardware.camera.concurrent.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.concurrent.xml \
624	frameworks/native/data/etc/android.hardware.camera.full.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.full.xml\
625	frameworks/native/data/etc/android.hardware.camera.raw.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.camera.raw.xml\
626	vendor/google/services/LyricCameraHAL/src/vendor.android.hardware.camera.preview-dis.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/vendor.android.hardware.camera.preview-dis.xml\
627	vendor/google/services/LyricCameraHAL/src/vendor.android.hardware.camera.stream-usecase.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/vendor.android.hardware.camera.stream-usecase.xml\
628
629#PRODUCT_COPY_FILES += \
630	frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml \
631	frameworks/native/data/etc/android.hardware.wifi.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.xml \
632	frameworks/native/data/etc/android.hardware.wifi.direct.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.direct.xml \
633	frameworks/native/data/etc/android.hardware.wifi.passpoint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.passpoint.xml \
634
635PRODUCT_COPY_FILES += \
636	frameworks/native/data/etc/android.hardware.audio.low_latency.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.low_latency.xml \
637	frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml \
638
639PRODUCT_COPY_FILES += \
640	frameworks/native/data/etc/android.software.ipsec_tunnels.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.ipsec_tunnels.xml \
641
642PRODUCT_PROPERTY_OVERRIDES += \
643	debug.slsi_platform=1 \
644	debug.hwc.winupdate=1
645
646ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
647PRODUCT_PACKAGES += displaycolor_service
648endif
649
650PRODUCT_PROPERTY_OVERRIDES += \
651	debug.sf.disable_backpressure=0 \
652	debug.sf.enable_gl_backpressure=1 \
653	debug.sf.enable_sdr_dimming=1
654
655PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.use_phase_offsets_as_durations=1
656PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.sf.duration=10500000
657PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.late.app.duration=16600000
658PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.sf.duration=16600000
659PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.early.app.duration=16600000
660PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.sf.duration=16600000
661PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.earlyGl.app.duration=16600000
662PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.frame_rate_multiple_threshold=120
663PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.layer_caching_active_layer_timeout_ms=1000
664PRODUCT_DEFAULT_PROPERTY_OVERRIDES += debug.sf.treat_170m_as_sRGB=1
665
666PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.enable_layer_caching=true
667PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms?=80
668PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_touch_timer_ms=200
669PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_display_power_timer_ms=1000
670PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_content_detection_for_refresh_rate=true
671PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.max_frame_buffer_acquired_buffers=3
672
673PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.supports_background_blur=1
674PRODUCT_SYSTEM_PROPERTIES += ro.launcher.blur.appLaunch=0
675
676# Must align with HAL types Dataspace
677# The data space of wide color gamut composition preference is Dataspace::DISPLAY_P3
678PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.wcg_composition_dataspace=143261696
679
680# Display
681PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.has_wide_color_display=true
682PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.has_HDR_display=true
683PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.use_color_management=true
684PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.protected_contents=true
685PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.display_update_imminent_timeout_ms=50
686
687# force to blend in P3 mode
688PRODUCT_PROPERTY_OVERRIDES += \
689	persist.sys.sf.native_mode=2 \
690	persist.sys.sf.color_mode=9
691PRODUCT_COPY_FILES += \
692	device/google/gs201/display/display_colordata_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_cal0.pb
693
694# limit DPP downscale ratio
695PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.hwc.dpp.downscale=2
696
697# Cannot reference variables defined in BoardConfig.mk, uncomment this if
698# BOARD_USES_EXYNOS_DSS_FEATURE is true
699## set the dss enable status setup
700#PRODUCT_PROPERTY_OVERRIDES += \
701#        ro.exynos.dss=1
702
703# Cannot reference variables defined in BoardConfig.mk, uncomment this if
704# BOARD_USES_EXYNOS_AFBC_FEATURE is true
705# set the dss enable status setup
706PRODUCT_PROPERTY_OVERRIDES += \
707	ro.vendor.ddk.set.afbc=1
708
709PRODUCT_CHARACTERISTICS := nosdcard
710
711# WIFI COEX
712PRODUCT_COPY_FILES += \
713	device/google/gs201/wifi/coex_table.xml:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/coex_table.xml
714
715PRODUCT_PACKAGES += hostapd
716PRODUCT_PACKAGES += wpa_supplicant
717PRODUCT_PACKAGES += wpa_supplicant.conf
718
719WIFI_PRIV_CMD_UPDATE_MBO_CELL_STATUS := enabled
720
721ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
722PRODUCT_PACKAGES += wpa_cli
723PRODUCT_PACKAGES += hostapd_cli
724endif
725
726####################################
727## VIDEO
728####################################
729
730$(call soong_config_set,bigo,soc,gs201)
731
732# 1. Codec 2.0
733# exynos service
734PRODUCT_SOONG_NAMESPACES += vendor/samsung_slsi/codec2
735
736PRODUCT_COPY_FILES += \
737	device/google/gs201/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
738
739PRODUCT_PACKAGES += \
740	samsung.hardware.media.c2@1.0-service \
741	codec2.vendor.base.policy \
742	codec2.vendor.ext.policy \
743	libExynosC2ComponentStore \
744	libExynosC2H264Dec \
745	libExynosC2H264Enc \
746	libExynosC2HevcDec \
747	libExynosC2HevcEnc \
748	libExynosC2Mpeg4Dec \
749	libExynosC2Mpeg4Enc \
750	libExynosC2H263Dec \
751	libExynosC2H263Enc \
752	libExynosC2Vp8Dec \
753	libExynosC2Vp8Enc \
754	libExynosC2Vp9Dec \
755	libExynosC2Vp9Enc
756
757PRODUCT_PROPERTY_OVERRIDES += \
758       debug.stagefright.c2-poolmask=458752 \
759       debug.c2.use_dmabufheaps=1 \
760       media.c2.dmabuf.padding=512 \
761       debug.stagefright.ccodec_delayed_params=1 \
762       ro.vendor.gpu.dataspace=1
763
764# Create input surface on the framework side
765PRODUCT_PROPERTY_OVERRIDES += \
766	debug.stagefright.c2inputsurface=-1 \
767
768# 2. OpenMAX IL
769PRODUCT_COPY_FILES += \
770	device/google/gs201/media_codecs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs.xml \
771	device/google/gs201/media_codecs_performance.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance.xml
772####################################
773
774# Telephony
775#PRODUCT_COPY_FILES += \
776	frameworks/av/media/libstagefright/data/media_codecs_google_telephony.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_google_telephony.xml
777
778# CBD (CP booting deamon)
779CBD_USE_V2 := true
780CBD_PROTOCOL_SIT := true
781
782# setup dalvik vm configs.
783$(call inherit-product, frameworks/native/build/phone-xhdpi-6144-dalvik-heap.mk)
784
785PRODUCT_TAGS += dalvik.gc.type-precise
786
787# Exynos OpenVX framework
788PRODUCT_PACKAGES += \
789		libexynosvision
790
791ifeq ($(TARGET_USES_CL_KERNEL),true)
792PRODUCT_PACKAGES += \
793	libopenvx-opencl
794endif
795
796# Trusty (KM, GK, Storage)
797$(call inherit-product, system/core/trusty/trusty-storage.mk)
798$(call inherit-product, system/core/trusty/trusty-base.mk)
799
800# Trusty unit test tool
801PRODUCT_PACKAGES_DEBUG += trusty-ut-ctrl \
802   tipc-test
803
804include device/google/gs101/confirmationui/confirmationui.mk
805
806# Trusty Secure DPU Daemon
807PRODUCT_PACKAGES += \
808	securedpud.slider
809
810# Trusty Metrics Daemon
811#PRODUCT_SOONG_NAMESPACES += \
812#	vendor/google/trusty/common
813#
814#PRODUCT_PACKAGES += \
815#	trusty_metricsd
816
817PRODUCT_PACKAGES += \
818	android.hardware.composer.hwc3-service.pixel \
819	libdisplaycolor
820
821# Storage: for factory reset protection feature
822PRODUCT_PROPERTY_OVERRIDES += \
823	ro.frp.pst=/dev/block/by-name/frp
824
825# Bluetooth
826PRODUCT_COPY_FILES += \
827	frameworks/native/data/etc/android.hardware.bluetooth.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth.xml \
828	frameworks/native/data/etc/android.hardware.bluetooth_le.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.bluetooth_le.xml
829
830# System props to enable Bluetooth Quality Report (BQR) feature
831ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
832PRODUCT_PRODUCT_PROPERTIES += \
833	persist.bluetooth.bqr.event_mask?=262174 \
834	persist.bluetooth.bqr.min_interval_ms=500
835else
836PRODUCT_PRODUCT_PROPERTIES += \
837	persist.bluetooth.bqr.event_mask?=30 \
838	persist.bluetooth.bqr.min_interval_ms=500
839endif
840
841#VNDK
842PRODUCT_PACKAGES += \
843	vndk-libs
844
845PRODUCT_ENFORCE_RRO_TARGETS := \
846	framework-res
847
848# Dynamic Partitions
849PRODUCT_USE_DYNAMIC_PARTITIONS := true
850
851# Use FUSE passthrough
852PRODUCT_PRODUCT_PROPERTIES += \
853	persist.sys.fuse.passthrough.enable=true
854
855# Use /product/etc/fstab.postinstall to mount system_other
856PRODUCT_PRODUCT_PROPERTIES += \
857	ro.postinstall.fstab.prefix=/product
858
859PRODUCT_COPY_FILES += \
860	device/google/gs201/conf/fstab.postinstall:$(TARGET_COPY_OUT_PRODUCT)/etc/fstab.postinstall
861
862# fastbootd
863PRODUCT_PACKAGES += \
864	android.hardware.fastboot@1.1-impl.pixel \
865	fastbootd
866
867#google iwlan
868PRODUCT_PACKAGES += \
869	Iwlan
870
871#Iwlan test app for userdebug/eng builds
872ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
873PRODUCT_PACKAGES += \
874	IwlanTestApp
875endif
876
877PRODUCT_PACKAGES += \
878	whitelist \
879	libstagefright_hdcp \
880	libskia_opt
881
882#PRODUCT_PACKAGES += \
883	mfc_fw.bin \
884	calliope_sram.bin \
885	calliope_dram.bin \
886	calliope_iva.bin \
887	vts.bin
888
889ifneq ($(BOARD_WITHOUT_RADIO),true)
890# This will be called only if IMSService is building with source code for dev branches.
891$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/shannon-ims/device-vendor.mk)
892
893PRODUCT_PACKAGES += ShannonIms
894
895#RCS Test Messaging App
896PRODUCT_PACKAGES_DEBUG += \
897	TestRcsApp
898
899PRODUCT_PACKAGES += ShannonRcs
900endif
901
902# Boot Control HAL
903PRODUCT_PACKAGES += \
904	android.hardware.boot@1.2-impl-gs201 \
905	android.hardware.boot@1.2-service-gs201
906
907# Exynos RIL and telephony
908# Multi SIM(DSDS)
909SIM_COUNT := 2
910SUPPORT_MULTI_SIM := true
911# Support NR
912SUPPORT_NR := true
913# Support 5G on both stacks
914SUPPORT_NR_DS := true
915# Using IRadio 2.0
916USE_RADIO_HAL_2_0 := true
917# Using Early Send Device Info
918USE_EARLY_SEND_DEVICE_INFO := true
919
920#$(call inherit-product, vendor/google_devices/telephony/common/device-vendor.mk)
921#$(call inherit-product, vendor/google_devices/gs201/proprietary/device-vendor.mk)
922
923ifneq ($(BOARD_WITHOUT_RADIO),true)
924$(call inherit-product-if-exists, vendor/samsung_slsi/telephony/$(BOARD_USES_SHARED_VENDOR_TELEPHONY)/common/device-vendor.mk)
925
926# modem_svc_sit daemon
927PRODUCT_PACKAGES += modem_svc_sit
928
929# modem logging binary/configs
930PRODUCT_PACKAGES += modem_logging_control
931
932# CP Logging properties
933PRODUCT_PROPERTY_OVERRIDES += \
934	ro.vendor.sys.modem.logging.loc = /data/vendor/slog \
935	ro.vendor.cbd.modem_removable = "1" \
936	ro.vendor.cbd.modem_type = "s5100sit" \
937	persist.vendor.sys.modem.logging.br_num=5 \
938	persist.vendor.sys.modem.logging.enable=true
939
940# Enable silent CP crash handling
941ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
942PRODUCT_PROPERTY_OVERRIDES += \
943	persist.vendor.ril.crash_handling_mode=1
944else
945PRODUCT_PROPERTY_OVERRIDES += \
946	persist.vendor.ril.crash_handling_mode=2
947endif
948
949# Add support dual SIM mode
950PRODUCT_PROPERTY_OVERRIDES += \
951	persist.vendor.radio.multisim_switch_support=true
952
953PRODUCT_COPY_FILES += \
954	device/google/$(TARGET_BOARD_PLATFORM)/conf/init.modem.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.modem.rc \
955	device/google/$(TARGET_BOARD_PLATFORM)/conf/fstab.modem:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.modem \
956
957#GPS HAL
958include device/google/gs201/gnss/device-gnss.mk
959endif
960BOARD_VENDOR_SEPOLICY_DIRS += device/google/gs201-sepolicy/gps
961
962$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit_only.mk)
963#$(call inherit-product, hardware/google_devices/exynos5/exynos5.mk)
964#$(call inherit-product-if-exists, hardware/google_devices/gs201/gs201.mk)
965#$(call inherit-product-if-exists, vendor/google_devices/common/exynos-vendor.mk)
966#$(call inherit-product-if-exists, hardware/broadcom/wlan/bcmdhd/firmware/bcm4375/device-bcm.mk)
967ifeq ($(wildcard vendor/google/sensors/usf),)
968$(call inherit-product-if-exists, vendor/google_devices/gs201/proprietary/usf/usf_product.mk)
969else
970$(call inherit-product-if-exists, vendor/google/sensors/usf/android/usf_efw_product.mk)
971endif
972$(call inherit-product-if-exists, vendor/google/services/LyricCameraHAL/src/build/device-vendor.mk)
973$(call inherit-product-if-exists, vendor/google/camera/devices/whi/device-vendor.mk)
974
975PRODUCT_COPY_FILES += \
976	device/google/gs201/default-permissions.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/default-permissions/default-permissions.xml \
977	device/google/gs201/component-overrides.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sysconfig/component-overrides.xml
978
979# modem logging configs
980PRODUCT_COPY_FILES += \
981	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/logging.conf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/logging.conf \
982	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.cfg \
983	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default.nprf \
984	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/default_metrics.xml \
985	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_Default_metrics.xml:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_Default_metrics.xml \
986	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_stability.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_stability.cfg \
987	device/google/$(TARGET_BOARD_PLATFORM)/radio/config/Pixel_stability.nprf:$(TARGET_COPY_OUT_VENDOR)/etc/modem/Pixel_stability.nprf \
988
989# ARM NN files
990ARM_COMPUTE_CL_ENABLE := 1
991
992# Vibrator Diag
993PRODUCT_PACKAGES_DEBUG += \
994	diag-vibrator \
995	diag-vibrator-cs40l25a \
996	diag-vibrator-drv2624 \
997	$(NULL)
998
999PRODUCT_PACKAGES += \
1000	android.hardware.health-service.gs201 \
1001	android.hardware.health-service.gs201_recovery \
1002
1003# Audio
1004# Audio HAL Server & Default Implementations
1005PRODUCT_PACKAGES += \
1006	android.hardware.audio.service \
1007	android.hardware.audio@7.1-impl \
1008	android.hardware.audio.effect@7.0-impl \
1009	android.hardware.soundtrigger@2.3-impl \
1010	vendor.google.whitechapel.audio.audioext@4.0-impl \
1011	android.hardware.bluetooth.audio-impl \
1012
1013#
1014##Audio HAL libraries
1015PRODUCT_PACKAGES += \
1016	audio.primary.$(TARGET_BOARD_PLATFORM) \
1017	audio.platform.aoc \
1018	audio_tunnel_aoc \
1019	aoc_aud_ext \
1020	libaoctuningdecoder \
1021	liboffloadeffect \
1022	audio_bt_aoc \
1023	audio_waves_aoc \
1024	audio_fortemedia_aoc \
1025	audio_bluenote_aoc \
1026	audio_usb_aoc \
1027	audio_cca_aoc \
1028	libamcsextfile \
1029	audio_amcs_ext \
1030	audio.usb.default \
1031	audio.usbv2.default \
1032	audio.bluetooth.default \
1033	audio.r_submix.default \
1034	audio_spk_35l41 \
1035	sound_trigger.primary.$(TARGET_BOARD_PLATFORM)
1036#	libaoc_waves \
1037#
1038
1039##Audio Vendor libraries
1040PRODUCT_PACKAGES += \
1041	libfvsam_prm_parser \
1042	libmahalcontroller \
1043	libAlgFx_HiFi3z
1044#
1045## AudioHAL Configurations
1046PRODUCT_COPY_FILES += \
1047	frameworks/av/services/audiopolicy/config/a2dp_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_audio_policy_configuration_7_0.xml \
1048	frameworks/av/services/audiopolicy/config/a2dp_in_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/a2dp_in_audio_policy_configuration_7_0.xml \
1049	frameworks/av/services/audiopolicy/config/hearing_aid_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/hearing_aid_audio_policy_configuration_7_0.xml \
1050	frameworks/av/services/audiopolicy/config/r_submix_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/r_submix_audio_policy_configuration.xml \
1051	frameworks/av/services/audiopolicy/config/usb_audio_policy_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/usb_audio_policy_configuration.xml \
1052        frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
1053	frameworks/av/services/audiopolicy/config/default_volume_tables.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default_volume_tables.xml \
1054	frameworks/av/services/audiopolicy/config/bluetooth_audio_policy_configuration_7_0.xml:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_audio_policy_configuration_7_0.xml
1055
1056##Audio soong
1057PRODUCT_SOONG_NAMESPACES += \
1058	vendor/google/whitechapel/audio/hal \
1059	vendor/google/whitechapel/audio/interfaces
1060
1061$(call soong_config_set,aoc_audio_board,platform,$(TARGET_BOARD_PLATFORM))
1062
1063## AoC soong
1064PRODUCT_SOONG_NAMESPACES += \
1065        vendor/google/whitechapel/aoc
1066
1067$(call soong_config_set,aoc,target_soc,$(TARGET_BOARD_PLATFORM))
1068$(call soong_config_set,aoc,target_product,$(TARGET_PRODUCT))
1069
1070#
1071## Audio properties
1072ifneq (,$(filter $(TANGOR_PRODUCT), $(TARGET_PRODUCT)))
1073PRODUCT_PROPERTY_OVERRIDES += \
1074	ro.config.vc_call_vol_steps=7 \
1075	ro.config.media_vol_steps=20 \
1076	ro.audio.monitorRotation = true \
1077	ro.audio.offload_wakelock=false
1078else
1079PRODUCT_PROPERTY_OVERRIDES += \
1080	ro.config.vc_call_vol_steps=7 \
1081	ro.config.media_vol_steps=25 \
1082	ro.audio.monitorRotation = true \
1083	ro.audio.offload_wakelock=false
1084endif
1085
1086# vndservicemanager and vndservice no longer included in API 30+, however needed by vendor code.
1087# See b/148807371 for reference
1088PRODUCT_PACKAGES += vndservicemanager
1089PRODUCT_PACKAGES += vndservice
1090
1091## TinyTools, debug tool and cs35l41 speaker calibration tool for Audio
1092ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
1093PRODUCT_PACKAGES += \
1094	tinyplay \
1095	tinycap \
1096	tinymix \
1097	tinypcminfo \
1098	tinyhostless \
1099	cplay \
1100	aoc_hal \
1101	aoc_tuning_inft \
1102	mahal_test \
1103	ma_aoc_tuning_test \
1104	crus_sp_cal
1105endif
1106
1107PRODUCT_PACKAGES += \
1108	google.hardware.media.c2@1.0-service \
1109	libgc2_store \
1110	libgc2_base \
1111	libgc2_av1_dec \
1112	libbo_av1 \
1113	libgc2_cwl \
1114	libgc2_utils
1115
1116## Start packet router
1117include device/google/gs101/telephony/pktrouter.mk
1118
1119# Thermal HAL
1120PRODUCT_PROPERTY_OVERRIDES += persist.vendor.enable.thermal.genl=true
1121include hardware/google/pixel/thermal/device.mk
1122$(call soong_config_set,thermal_hal_feature,pid,apply_2_0)
1123
1124## TPU packages
1125include device/google/gs201/edgetpu/edgetpu.mk
1126
1127# Connectivity Thermal Power Manager
1128PRODUCT_PACKAGES += \
1129	ConnectivityThermalPowerManager
1130
1131# A/B support
1132PRODUCT_PACKAGES += \
1133	otapreopt_script \
1134	cppreopts.sh \
1135	update_engine \
1136	update_engine_sideload \
1137	update_verifier
1138
1139# pKVM
1140$(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk)
1141PRODUCT_BUILD_PVMFW_IMAGE := true
1142
1143# Enable to build standalone vendor_kernel_boot image.
1144PRODUCT_BUILD_VENDOR_KERNEL_BOOT_IMAGE := true
1145
1146# Enable watchdog timeout loop breaker.
1147PRODUCT_PROPERTY_OVERRIDES += \
1148	framework_watchdog.fatal_window.second=600 \
1149	framework_watchdog.fatal_count=3
1150
1151# Enable zygote critical window.
1152PRODUCT_PROPERTY_OVERRIDES += \
1153	zygote.critical_window.minute=10
1154
1155# Suspend properties
1156PRODUCT_PROPERTY_OVERRIDES += \
1157    suspend.short_suspend_threshold_millis=5000
1158
1159# Enable Incremental on the device
1160PRODUCT_PROPERTY_OVERRIDES += \
1161	ro.incremental.enable=true
1162
1163# Project
1164include hardware/google/pixel/common/pixel-common-device.mk
1165
1166# Pixel Logger
1167include hardware/google/pixel/PixelLogger/PixelLogger.mk
1168
1169# sscoredump
1170include hardware/google/pixel/sscoredump/device.mk
1171
1172# RadioExt Version
1173USES_RADIOEXT_V1_5 = true
1174
1175# Wifi ext
1176include hardware/google/pixel/wifi_ext/device.mk
1177
1178# Battery Stats Viewer
1179PRODUCT_PACKAGES_DEBUG += BatteryStatsViewer
1180
1181# Install product specific framework compatibility matrix
1182# (TODO: b/169535506) This includes the FCM for system_ext and product partition.
1183# It must be split into the FCM of each partition.
1184DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE := device/google/gs201/device_framework_matrix_product.xml
1185
1186# Preopt SystemUI
1187PRODUCT_DEXPREOPT_SPEED_APPS += SystemUIGoogle  # For internal
1188PRODUCT_DEXPREOPT_SPEED_APPS += SystemUI  # For AOSP
1189
1190# Compile SystemUI on device with `speed`.
1191PRODUCT_PROPERTY_OVERRIDES += \
1192    dalvik.vm.systemuicompilerfilter=speed
1193
1194# Keymint configuration
1195PRODUCT_COPY_FILES += \
1196    frameworks/native/data/etc/android.software.device_id_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.device_id_attestation.xml \
1197    frameworks/native/data/etc/android.hardware.device_unique_attestation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.device_unique_attestation.xml
1198
1199# Call deleteAllKeys if vold detects a factory reset
1200PRODUCT_VENDOR_PROPERTIES += ro.crypto.metadata_init_delete_all_keys.enabled?=true
1201