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