Compare commits
267 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b0cab762f4 | |||
|
|
05a1c0bece | ||
|
|
f7e6c47464 | ||
|
|
047d138ff3 | ||
|
|
ef7e54bbb0 | ||
|
|
ddc7d0a6fd | ||
|
|
b2ecfb344b | ||
|
|
7b17ab192b | ||
|
|
4ab59f37cd | ||
|
|
879e5a4eb0 | ||
|
|
eb7b498c6f | ||
|
|
73b47f9d11 | ||
|
|
226bd99479 | ||
|
|
6375d23423 | ||
|
|
fad97e08cc | ||
|
|
2f0bad0305 | ||
|
|
f8535c571c | ||
|
|
00804e9801 | ||
|
|
9338fc1e20 | ||
|
|
c98593a399 | ||
|
|
71e4dd30cd | ||
|
|
84284c5818 | ||
|
|
430eda3bbd | ||
|
|
5d517213df | ||
|
|
cc19fb6d53 | ||
|
|
f93c39ba4b | ||
|
|
cadaa795ca | ||
|
|
5cc7affab1 | ||
|
|
460aea1f1c | ||
|
|
53b4d0d3d8 | ||
|
|
0d66d11b31 | ||
|
|
7f7ddfbc45 | ||
|
|
0c862790d2 | ||
|
|
bda03ba8a4 | ||
|
|
f49f7cfca2 | ||
|
|
6d5f581bc8 | ||
|
|
b199b8752a | ||
|
|
6cbbb3368d | ||
|
|
6e15ffc943 | ||
|
|
0eba70056e | ||
|
|
8523bfff54 | ||
|
|
a45a9f13dd | ||
|
|
1a8b8047a7 | ||
|
|
0b01dd31f8 | ||
|
|
a62c6ed1e6 | ||
|
|
99862216a4 | ||
|
|
9a37a12abe | ||
|
|
b5a04156de | ||
|
|
bd85dfeef1 | ||
|
|
58a5a65a9d | ||
|
|
36034cca55 | ||
|
|
dc1995ccb3 | ||
|
|
1fc583e43a | ||
|
|
71f464d189 | ||
|
|
af98660b14 | ||
|
|
b3e5dda716 | ||
|
|
da4b0d2873 | ||
|
|
b32c27d074 | ||
|
|
fc4e79acb1 | ||
|
|
ba93e73aa5 | ||
|
|
2638f59cf6 | ||
|
|
8c46be4365 | ||
|
|
538758a2e8 | ||
|
|
0a33420e8a | ||
|
|
f3547d708c | ||
|
|
d660fac25a | ||
|
|
0eae11b318 | ||
|
|
4aa169474a | ||
|
|
11d2c6ddfd | ||
|
|
cc44c3f21d | ||
|
|
1acd3d0af6 | ||
|
|
681ed33926 | ||
|
|
23a95f6b5b | ||
|
|
a51219179e | ||
| 3e280a2443 | |||
|
|
3605af8a45 | ||
|
|
417727c85e | ||
|
|
ec577c0298 | ||
|
|
cc2553c7df | ||
|
|
88bb90b429 | ||
|
|
fd86cfcfed | ||
|
|
93d667f40e | ||
|
|
1c79e4e16e | ||
|
|
169b12bf2b | ||
|
|
91feff6123 | ||
|
|
596973f6ea | ||
|
|
b34ff94265 | ||
|
|
e3d32baa72 | ||
|
|
c0a8895700 | ||
|
|
414e29c820 | ||
|
|
5d140bdb98 | ||
|
|
2b73d48b95 | ||
|
|
4329839712 | ||
|
|
439d11dd01 | ||
|
|
cbe5484792 | ||
|
|
489d533485 | ||
|
|
84a6b3d738 | ||
|
|
075b408020 | ||
|
|
3975f91645 | ||
|
|
6be64ea9f0 | ||
|
|
d32a4d834a | ||
|
|
2cc890cd3b | ||
|
|
4177b4d158 | ||
|
|
af493c2bd0 | ||
|
|
69223d3af7 | ||
|
|
c19551feeb | ||
|
|
874fc54da1 | ||
|
|
e96318007d | ||
|
|
32c2f95b10 | ||
|
|
6a28923cc0 | ||
|
|
25046bedc2 | ||
|
|
1c129ded22 | ||
|
|
70a2a32350 | ||
|
|
c2af5ec536 | ||
|
|
928e724ab5 | ||
|
|
cf885a9bd9 | ||
|
|
ac7bd4d11f | ||
|
|
fcc13445d9 | ||
|
|
fe83ab93d4 | ||
|
|
1f2b5c710f | ||
|
|
ffa3824435 | ||
|
|
bc60dde087 | ||
|
|
3dedd0cfa0 | ||
|
|
f58f7ef409 | ||
|
|
f503a505a5 | ||
|
|
5de4d4e0c7 | ||
|
|
2dba660f5a | ||
|
|
5045d7ef0d | ||
|
|
e1715fd574 | ||
|
|
cbaa58a4d7 | ||
|
|
760188730b | ||
|
|
712921b0ba | ||
|
|
390be24332 | ||
|
|
8c72a7406d | ||
|
|
d1f5d2be32 | ||
|
|
e36c43bcd3 | ||
|
|
1ac7a991a3 | ||
|
|
dd5b81d8c6 | ||
|
|
545e139c48 | ||
|
|
258f90a967 | ||
|
|
51729b8b1c | ||
|
|
89ece9edde | ||
|
|
3ff00c0207 | ||
|
|
01ebc389e5 | ||
|
|
df3dc0eda1 | ||
|
|
c5fe36936f | ||
|
|
56ed2ee1ce | ||
|
|
7eac372522 | ||
|
|
5b16c748ba | ||
|
|
b822ffaf86 | ||
|
|
446dd8971a | ||
|
|
2fb3a29def | ||
|
|
0ab65c4d38 | ||
|
|
14e7fa65de | ||
|
|
332be08c18 | ||
|
|
15fe5a0a7d | ||
|
|
965a2ad217 | ||
|
|
9c2d57272f | ||
|
|
96d3e8fcdc | ||
|
|
01778be4df | ||
|
|
cc96c62aa6 | ||
|
|
b888fc9b7e | ||
|
|
45c89ee59a | ||
|
|
e80edb1f85 | ||
|
|
4e191a8d97 | ||
|
|
89a0673397 | ||
|
|
6b6bd13dc4 | ||
|
|
a9f6474c2b | ||
|
|
e09fea449c | ||
|
|
f93ce47a3c | ||
|
|
bec3b11f79 | ||
|
|
4f457fb780 | ||
|
|
2b5632bbe4 | ||
|
|
0b1f5e7fc9 | ||
|
|
16db441dbe | ||
|
|
04b05427fc | ||
|
|
fbd0cb8bc3 | ||
|
|
d17f55dac7 | ||
|
|
ac6880d4f8 | ||
|
|
fbf6757438 | ||
|
|
1cec3eb9a6 | ||
|
|
ad99860ea5 | ||
|
|
1dd5800192 | ||
|
|
9b01f7e657 | ||
|
|
3d96ae7ed8 | ||
|
|
95a4541ba2 | ||
|
|
b65605ead3 | ||
|
|
231936b1b3 | ||
|
|
a6f591bdff | ||
|
|
7bcdca27bf | ||
|
|
76bf3cea64 | ||
|
|
9152f08107 | ||
|
|
8e1ce1268f | ||
|
|
3838065b64 | ||
|
|
0d6bf9a031 | ||
|
|
6602d509b3 | ||
|
|
34d6cdb063 | ||
|
|
8c4dea2fa8 | ||
|
|
4ec6ed316d | ||
|
|
5a5b0f3cb3 | ||
|
|
c134324a8d | ||
|
|
4a90451745 | ||
|
|
3e11fd4cda | ||
|
|
301e7513b0 | ||
|
|
c7ffd1ba22 | ||
|
|
c0f2fd69c5 | ||
|
|
1df894ba9a | ||
|
|
824799114d | ||
|
|
8cb1da499c | ||
|
|
ebb0fee1d7 | ||
|
|
80b2d761ba | ||
|
|
3407892dfa | ||
|
|
c4b8f8b977 | ||
|
|
0bd44ea059 | ||
|
|
c3da58cd2a | ||
|
|
2f7ec9270c | ||
|
|
1e99ffa18b | ||
|
|
d3ebe379f9 | ||
|
|
559b633493 | ||
|
|
afc9f7b790 | ||
|
|
9185298f68 | ||
|
|
3e27193e8e | ||
|
|
a6fe5e6884 | ||
|
|
034f842e84 | ||
|
|
4d2fa59bc3 | ||
|
|
870addb6bc | ||
|
|
657605e4a7 | ||
|
|
66ece29e0a | ||
|
|
b50b9cde68 | ||
|
|
a078ec46fc | ||
|
|
ae44830a40 | ||
|
|
2e7c13a9b5 | ||
|
|
d528df2874 | ||
|
|
346fd27480 | ||
|
|
b621d69c03 | ||
|
|
75ce8fadef | ||
|
|
ea79f4b33a | ||
|
|
823aa61aaa | ||
|
|
c68f4c88c7 | ||
|
|
c35512774f | ||
|
|
632fe721d1 | ||
|
|
c3e3b8d64e | ||
|
|
9f5df0bbf9 | ||
|
|
cc54167bf1 | ||
|
|
5d8bcc3d52 | ||
|
|
f6e23b787f | ||
|
|
49ce0f99f5 | ||
|
|
5c1e2295a8 | ||
|
|
c203472864 | ||
|
|
809bf6f774 | ||
|
|
bcef5e2c3f | ||
|
|
7430cd8a64 | ||
|
|
3836ec433d | ||
|
|
e33788bdde | ||
|
|
8c3609efcc | ||
|
|
ace7a66f13 | ||
|
|
390b23dca7 | ||
|
|
94ab8f1592 | ||
|
|
2994007654 | ||
|
|
541afa711a | ||
|
|
0159d7fd54 | ||
|
|
a0d97f5a9f | ||
|
|
2326eaab62 | ||
|
|
8bb8258ea5 | ||
|
|
e74e4e964a | ||
|
|
7700d78617 | ||
|
|
73026c0748 |
@@ -16,9 +16,4 @@
|
||||
|
||||
PRODUCT_MAKEFILES := \
|
||||
$(LOCAL_DIR)/aosp_tangorpro.mk \
|
||||
$(LOCAL_DIR)/aosp_tangorpro_hwasan.mk \
|
||||
$(LOCAL_DIR)/factory_tangorpro.mk \
|
||||
$(LOCAL_DIR)/lineage_tangorpro.mk
|
||||
|
||||
COMMON_LUNCH_CHOICES := \
|
||||
aosp_tangorpro-trunk_staging-userdebug
|
||||
|
||||
4
BoardConfigEvolution.mk
Normal file
4
BoardConfigEvolution.mk
Normal file
@@ -0,0 +1,4 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2024 The Evolution X Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
@@ -1,5 +1,11 @@
|
||||
#
|
||||
# Copyright (C) 2023 The LineageOS Project
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 The LineageOS Project
|
||||
# SPDX-FileCopyrightText: 2021-2024 The Calyx Institute
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Kernel modules
|
||||
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_BLOCKLIST_FILE := $(DEVICE_PATH)/modules.blocklist.vendor_kernel_boot
|
||||
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_RAW := $(strip $(shell cat $(DEVICE_PATH)/modules.load.vendor_kernel_boot))
|
||||
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD += $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_RAW)
|
||||
BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES += $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_RAW)))
|
||||
|
||||
4
OWNERS
4
OWNERS
@@ -1,4 +0,0 @@
|
||||
per-file powerhint.json = jychen@google.com,jenhaochen@google.com,wvw@google.com,joaodias@google.com
|
||||
|
||||
# per-file for Pixel device makefiles, see go/pixel-device-mk-owner-checklist for details.
|
||||
per-file *.mk,*/BoardConfig.mk=file:device/google/gs-common:main:/OWNERS
|
||||
@@ -1,2 +0,0 @@
|
||||
[Builtin Hooks]
|
||||
jsonlint = true
|
||||
4
USI_Stylus.idc
Normal file
4
USI_Stylus.idc
Normal file
@@ -0,0 +1,4 @@
|
||||
touch.orientationAware = 1
|
||||
touch.orientation = ORIENTATION_0
|
||||
touch.usiVersionMajor = 2
|
||||
touch.usiVersionMinor = 0
|
||||
@@ -29,6 +29,3 @@ PRODUCT_DEVICE := tangorpro
|
||||
PRODUCT_MODEL := AOSP on Tangorpro
|
||||
PRODUCT_BRAND := Android
|
||||
PRODUCT_MANUFACTURER := Google
|
||||
|
||||
DEVICE_MANIFEST_FILE += \
|
||||
device/google/tangorpro/manifest.xml
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
#
|
||||
# Copyright 2023 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
$(call inherit-product, device/google/tangorpro/aosp_tangorpro.mk)
|
||||
PRODUCT_NAME := aosp_tangorpro_hwasan
|
||||
|
||||
# Add "hwaddress" as a global sanitizer if it's missing.
|
||||
ifeq ($(filter hwaddress,$(SANITIZE_TARGET)),)
|
||||
SANITIZE_TARGET := $(strip $(SANITIZE_TARGET) hwaddress)
|
||||
endif
|
||||
@@ -1410,7 +1410,7 @@
|
||||
<path name="bluetooth-sco-headset-microphones" />
|
||||
</path>
|
||||
|
||||
<path name="usb-headset-microphones">
|
||||
<path name="usb-microphones">
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="0" value="0" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="1" value="3" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="2" value="2" />
|
||||
@@ -1420,6 +1420,14 @@
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<path name="usb-headset-microphones">
|
||||
<path name="usb-microphones" />
|
||||
</path>
|
||||
|
||||
<path name="usb-device-microphones">
|
||||
<path name="usb-microphones" />
|
||||
</path>
|
||||
|
||||
<!-- cs35l41 specific path for rotation start -->
|
||||
<path name="cs35l41-rotation-0">
|
||||
</path>
|
||||
|
||||
@@ -79,22 +79,3 @@ PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/audio/$(AUDIO_TABLE_FOLDER)/tuning/apmg3/downlink_dock_config.pb:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/downlink_dock_config.pb \
|
||||
device/google/tangorpro/audio/$(AUDIO_TABLE_FOLDER)/tuning/apmg3/downlink_speaker_config.pb:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/downlink_speaker_config.pb \
|
||||
device/google/tangorpro/audio/$(AUDIO_TABLE_FOLDER)/tuning/apmg3/downlink_external_speaker_config.pb:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/downlink_external_speaker_config.pb
|
||||
|
||||
# userdebug specific
|
||||
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/BLUETOOTH.mods:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/BLUETOOTH.mods \
|
||||
device/google/tangorpro/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/HANDSFREE.mods:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/HANDSFREE.mods \
|
||||
device/google/tangorpro/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/HANDSET.mods:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/HANDSET.mods \
|
||||
device/google/tangorpro/audio/$(AUDIO_TABLE_FOLDER)/tuning/fortemedia/HEADSET.mods:$(TARGET_COPY_OUT_VENDOR)/etc/aoc/HEADSET.mods
|
||||
|
||||
# Mixer Path Configuration for Audio Speaker Calibration Tool crus_sp_cal
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/audio/$(AUDIO_TABLE_FOLDER)/cs35l41/crus_sp_cal_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/crus_sp_cal_mixer_paths.xml
|
||||
|
||||
# Waves ini/mps files for unit tests of halcontroller
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/tests/test_config.ini:$(TARGET_COPY_OUT_VENDOR)/etc/test_config.ini \
|
||||
device/google/tangorpro/audio/$(AUDIO_TABLE_FOLDER)/tuning/waves/tests/test_preset.mps:$(TARGET_COPY_OUT_VENDOR)/etc/test_preset.mps
|
||||
|
||||
endif
|
||||
|
||||
@@ -254,6 +254,7 @@
|
||||
<feature name="SoundTriggerDockTuning"/>
|
||||
<feature name="BatteryThrottle=Type:BCL_VOLTAGE,Name:BCL_AUDIO_BAACL,Strategy:WholeSpeaker"/>
|
||||
<feature name="Apmg3"/>
|
||||
<!--feature name="Pokebowl"/-->
|
||||
</features>
|
||||
|
||||
<cfg_attr>
|
||||
@@ -292,6 +293,7 @@
|
||||
<item component="TUNING_COMPONENT_WAVES" id="2"/>
|
||||
<item component="TUNING_COMPONENT_FORTEMEDIA" id="3"/>
|
||||
<item component="TUNING_COMPONENT_APMG3" id="24"/>
|
||||
<!--item component="TUNING_COMPONENT_POKEBOWL" id="25"/-->
|
||||
<item component="TUNING_COMPONENT_CAMCORDER" id="6"/>
|
||||
<item component="TUNING_COMPONENT_STEREO_SPATIALIZER" id="26"/>
|
||||
</xlate_id>
|
||||
@@ -312,6 +314,7 @@
|
||||
<module libname="audio_amcs_ext.so" argu="SpeakerNum=4" />
|
||||
<module libname="audio_bluenote_aoc.so"/>
|
||||
<module libname="audio_apmg3_aoc.so"/>
|
||||
<!--module libname="audio_pokebowl_aoc.so"/-->
|
||||
</external_module>
|
||||
|
||||
<hal_effect>
|
||||
|
||||
@@ -136,10 +136,6 @@
|
||||
</devicePort>
|
||||
<devicePort tagName="Speaker Safe" type="AUDIO_DEVICE_OUT_SPEAKER_SAFE" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
|
||||
@@ -152,8 +148,6 @@
|
||||
</devicePort>
|
||||
<devicePort tagName="USB Dock" type="AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Aux Digital" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
|
||||
</devicePort>
|
||||
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
|
||||
@@ -161,8 +155,6 @@
|
||||
</devicePort>
|
||||
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
|
||||
</devicePort>
|
||||
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
|
||||
</devicePort>
|
||||
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
|
||||
</devicePort>
|
||||
<devicePort tagName="BT A2DP Out" type="AUDIO_DEVICE_OUT_BLUETOOTH_A2DP" role="sink"
|
||||
@@ -195,7 +187,7 @@
|
||||
<route type="mix" sink="Speaker"
|
||||
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,ultrasound output,immersive_out"/>
|
||||
<route type="mix" sink="Speaker Safe"
|
||||
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,ultrasound output"/>
|
||||
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,ultrasound output,immersive_out"/>
|
||||
<route type="mix" sink="BT A2DP Out"
|
||||
sources="primary output,deep buffer,compressed_offload,voip_rx,raw,mmap_no_irq_out,immersive_out"/>
|
||||
<route type="mix" sink="BT A2DP Headphones"
|
||||
|
||||
@@ -136,10 +136,6 @@
|
||||
</devicePort>
|
||||
<devicePort tagName="Speaker Safe" type="AUDIO_DEVICE_OUT_SPEAKER_SAFE" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
|
||||
@@ -152,8 +148,6 @@
|
||||
</devicePort>
|
||||
<devicePort tagName="USB Dock" type="AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Aux Digital" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
|
||||
</devicePort>
|
||||
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
|
||||
@@ -161,8 +155,6 @@
|
||||
</devicePort>
|
||||
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
|
||||
</devicePort>
|
||||
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
|
||||
</devicePort>
|
||||
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
|
||||
</devicePort>
|
||||
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
|
||||
|
||||
@@ -132,10 +132,6 @@
|
||||
</devicePort>
|
||||
<devicePort tagName="Speaker Safe" type="AUDIO_DEVICE_OUT_SPEAKER_SAFE" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
|
||||
@@ -146,8 +142,6 @@
|
||||
</devicePort>
|
||||
<devicePort tagName="USB Headset Out" type="AUDIO_DEVICE_OUT_USB_HEADSET" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Aux Digital" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
|
||||
</devicePort>
|
||||
<devicePort tagName="Telephony Tx" type="AUDIO_DEVICE_OUT_TELEPHONY_TX" role="sink">
|
||||
</devicePort>
|
||||
<!-- Input devices declaration, i.e. Source DEVICE PORT -->
|
||||
@@ -155,8 +149,6 @@
|
||||
</devicePort>
|
||||
<devicePort tagName="Built-In Back Mic" type="AUDIO_DEVICE_IN_BACK_MIC" role="source">
|
||||
</devicePort>
|
||||
<devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
|
||||
</devicePort>
|
||||
<devicePort tagName="BT SCO Headset Mic" type="AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET" role="source">
|
||||
</devicePort>
|
||||
<devicePort tagName="USB Device In" type="AUDIO_DEVICE_IN_USB_DEVICE" role="source">
|
||||
|
||||
@@ -1,653 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<mixer>
|
||||
<ctl name="TDM_0_RX Mixer EP3" value="0" />
|
||||
<ctl name="TDM_0_RX Mixer EP6" value="0" />
|
||||
<ctl name="I2S_0_RX Mixer EP3" value="0" />
|
||||
<ctl name="Main AMP Enable Switch" value="0" />
|
||||
<ctl name="R Main AMP Enable Switch" value="0" />
|
||||
<ctl name="L2 Main AMP Enable Switch" value="0" />
|
||||
<ctl name="R2 Main AMP Enable Switch" value="0" />
|
||||
<ctl name="MIC HW Gain At Lower Power Mode (cB)" value="-160" />
|
||||
<ctl name="MIC HW Gain At High Power Mode (cB)" value="0" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0"/>
|
||||
|
||||
<ctl name="EP1 TX Mixer TDM_0_TX" value="0" />
|
||||
<ctl name="EP5 TX Mixer INTERNAL_MIC_US_TX" value="0" />
|
||||
<ctl name="DEFAULT_MIC_ID" value="0" />
|
||||
<ctl name="MIC0" value="0" />
|
||||
<ctl name="MIC1" value="0" />
|
||||
<ctl name="MIC2" value="0" />
|
||||
<ctl name="MIC3" value="0" />
|
||||
<ctl name="AoC Speaker Mixer ASP Mode" value="ASP_ON" />
|
||||
|
||||
<ctl name="TDM_0_RX Mixer US" value="0" />
|
||||
<ctl name="US Record Enable" value="0" />
|
||||
<ctl name="ASPRX1 Slot Position" value="0"/>
|
||||
<ctl name="R ASPRX1 Slot Position" value="1"/>
|
||||
<ctl name="L2 ASPRX1 Slot Position" value="0"/>
|
||||
<ctl name="R2 ASPRX1 Slot Position" value="1"/>
|
||||
|
||||
<path name="mfg-playback">
|
||||
</path>
|
||||
|
||||
<path name="deep-buffer-playback speaker">
|
||||
<ctl name="AoC Speaker Mixer ASP Mode" value="ASP_BYPASS" />
|
||||
<ctl name="TDM_0_RX Mixer EP6" value="1" />
|
||||
<path name="mfg-playback" />
|
||||
</path>
|
||||
|
||||
<path name="deep-buffer-playback headphones">
|
||||
<ctl name="I2S_0_RX Mixer EP6" value="1" />
|
||||
<path name="mfg-playback" />
|
||||
</path>
|
||||
|
||||
<path name="mfg-record">
|
||||
<ctl name="EP1 TX Mixer TDM_0_TX" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="mfg-record usb-headset-mic">
|
||||
<ctl name="Audio Capture Mic Source" value="USB_MIC"/>
|
||||
<ctl name="USB Playback EP ID v2" value="0" />
|
||||
<ctl name="USB Capture EP ID v2" value="1" />
|
||||
<ctl name="USB Capture FORMAT v2" value="1" />
|
||||
<ctl name="USB Config To AoC v2" value="1"/>
|
||||
<ctl name="EP1 TX Mixer USB_TX" value="1"/>
|
||||
</path>
|
||||
|
||||
<path name="us-mfg-record">
|
||||
<ctl name="EP5 TX Mixer INTERNAL_MIC_US_TX" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="mic1-status">
|
||||
<ctl name="MIC0" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="mic2-status">
|
||||
<ctl name="MIC1" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="mic3-status">
|
||||
<ctl name="MIC2" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="mic4-status">
|
||||
<ctl name="MIC3" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="mic1-gain">
|
||||
<ctl name="MIC HW Gain At Lower Power Mode (cB)" />
|
||||
<ctl name="MIC HW Gain At High Power Mode (cB)" />
|
||||
</path>
|
||||
|
||||
<path name="mic2-gain">
|
||||
<ctl name="MIC HW Gain At Lower Power Mode (cB)" />
|
||||
<ctl name="MIC HW Gain At High Power Mode (cB)" />
|
||||
</path>
|
||||
|
||||
<path name="mic3-gain">
|
||||
<ctl name="MIC HW Gain At Lower Power Mode (cB)" />
|
||||
<ctl name="MIC HW Gain At High Power Mode (cB)" />
|
||||
</path>
|
||||
|
||||
<path name="mic4-gain">
|
||||
<ctl name="MIC HW Gain At Lower Power Mode (cB)" />
|
||||
<ctl name="MIC HW Gain At High Power Mode (cB)" />
|
||||
</path>
|
||||
|
||||
<path name="mic1-sw-gain">
|
||||
<ctl name="MIC Record Soft Gain (dB)" />
|
||||
</path>
|
||||
|
||||
<path name="mic2-sw-gain">
|
||||
<ctl name="MIC Record Soft Gain (dB)" />
|
||||
</path>
|
||||
|
||||
<path name="mic3-sw-gain">
|
||||
<ctl name="MIC Record Soft Gain (dB)" />
|
||||
</path>
|
||||
|
||||
<path name="mic4-sw-gain">
|
||||
<ctl name="MIC Record Soft Gain (dB)" />
|
||||
</path>
|
||||
|
||||
<path name="usb-capture-gain">
|
||||
<ctl name="MIC Record Soft Gain (dB)" />
|
||||
</path>
|
||||
|
||||
<path name="mic1-only">
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="0" value="0" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="1" value="-1" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="2" value="-1" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="3" value="-1" />
|
||||
<ctl name="MIC0" value="1" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<path name="mic2-only">
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="0" value="3" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="1" value="-1" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="2" value="-1" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="3" value="-1" />
|
||||
<ctl name="MIC1" value="1" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<path name="mic3-only">
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="0" value="2" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="1" value="-1" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="2" value="-1" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="3" value="-1" />
|
||||
<ctl name="MIC2" value="1" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<path name="mic4-only">
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="0" value="3" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="1" value="-1" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="2" value="-1" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="3" value="-1" />
|
||||
<ctl name="MIC3" value="1" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<path name="mic-all">
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="0" value="0" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="1" value="3" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="2" value="2" />
|
||||
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="3" value="-1" />
|
||||
<ctl name="MIC0" value="1" />
|
||||
<ctl name="MIC1" value="1" />
|
||||
<ctl name="MIC2" value="1" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<path name="us-mic1-only">
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="0" value="0" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="1" value="-1" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="2" value="-1" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="3" value="-1" />
|
||||
<ctl name="MIC0" value="1" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<path name="us-mic2-only">
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="0" value="3" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="1" value="-1" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="2" value="-1" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="3" value="-1" />
|
||||
<ctl name="MIC1" value="1" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<path name="us-mic3-only">
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="0" value="2" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="1" value="-1" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="2" value="-1" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="3" value="-1" />
|
||||
<ctl name="MIC2" value="1" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<path name="us-mic-all">
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="0" value="0" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="1" value="3" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="2" value="2" />
|
||||
<ctl name="BUILDIN US MIC ID CAPTURE LIST" id="3" value="-1" />
|
||||
<ctl name="MIC0" value="1" />
|
||||
<ctl name="MIC1" value="1" />
|
||||
<ctl name="MIC2" value="1" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-us-config">
|
||||
<ctl name="ASPRX1 Slot Position" value="2"/>
|
||||
<ctl name="R ASPRX1 Slot Position" value="3"/>
|
||||
<ctl name="L2 ASPRX1 Slot Position" value="2"/>
|
||||
<ctl name="R2 ASPRX1 Slot Position" value="3"/>
|
||||
</path>
|
||||
|
||||
<path name="amp_iv-only">
|
||||
<ctl name="ASPTX1 Slot Position" value="0"/>
|
||||
<ctl name="R ASPTX1 Slot Position" value="1"/>
|
||||
<ctl name="L2 ASPTX1 Slot Position" value="2"/>
|
||||
<ctl name="R2 ASPTX1 Slot Position" value="3"/>
|
||||
<ctl name="ASPTX2 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX2 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX2 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX2 Slot Position" value="7"/>
|
||||
<ctl name="ASPTX3 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX3 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX3 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX3 Slot Position" value="7"/>
|
||||
<ctl name="ASPTX4 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX4 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX4 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX4 Slot Position" value="7"/>
|
||||
<ctl name="ASP TX1 Source" value="VMON" />
|
||||
<ctl name="R ASP TX1 Source" value="VMON" />
|
||||
<ctl name="L2 ASP TX1 Source" value="VMON" />
|
||||
<ctl name="R2 ASP TX1 Source" value="VMON" />
|
||||
<ctl name="ASP TX2 Source" value="Zero" />
|
||||
<ctl name="R ASP TX2 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX2 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX2 Source" value="Zero" />
|
||||
<ctl name="ASP TX3 Source" value="Zero" />
|
||||
<ctl name="R ASP TX3 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX3 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX3 Source" value="Zero" />
|
||||
<ctl name="ASP TX4 Source" value="Zero" />
|
||||
<ctl name="R ASP TX4 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX4 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX4 Source" value="Zero" />
|
||||
<ctl name="NoHost1 TX Mixer TDM_0_TX" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="amp_iv1-only">
|
||||
<ctl name="ASPTX1 Slot Position" value="0"/>
|
||||
<ctl name="R ASPTX1 Slot Position" value="4"/>
|
||||
<ctl name="L2 ASPTX1 Slot Position" value="5"/>
|
||||
<ctl name="R2 ASPTX1 Slot Position" value="6"/>
|
||||
<ctl name="ASPTX2 Slot Position" value="1"/>
|
||||
<ctl name="R ASPTX2 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX2 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX2 Slot Position" value="7"/>
|
||||
<ctl name="ASPTX3 Slot Position" value="2"/>
|
||||
<ctl name="R ASPTX3 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX3 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX3 Slot Position" value="7"/>
|
||||
<ctl name="ASPTX4 Slot Position" value="3"/>
|
||||
<ctl name="R ASPTX4 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX4 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX4 Slot Position" value="7"/>
|
||||
<ctl name="ASP TX1 Source" value="VMON" />
|
||||
<ctl name="R ASP TX1 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX1 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX1 Source" value="Zero" />
|
||||
<ctl name="ASP TX2 Source" value="IMON" />
|
||||
<ctl name="R ASP TX2 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX2 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX2 Source" value="Zero" />
|
||||
<ctl name="ASP TX3 Source" value="VPMON" />
|
||||
<ctl name="R ASP TX3 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX3 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX3 Source" value="Zero" />
|
||||
<ctl name="ASP TX4 Source" value="ASPRX1" />
|
||||
<ctl name="R ASP TX4 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX4 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX4 Source" value="Zero" />
|
||||
<ctl name="NoHost1 TX Mixer TDM_0_TX" value="1" />
|
||||
</path>
|
||||
<!-- L2 prefix -->
|
||||
<path name="amp_iv2-only">
|
||||
<ctl name="ASPTX1 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX1 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX1 Slot Position" value="0"/>
|
||||
<ctl name="R2 ASPTX1 Slot Position" value="6"/>
|
||||
<ctl name="ASPTX2 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX2 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX2 Slot Position" value="1"/>
|
||||
<ctl name="R2 ASPTX2 Slot Position" value="7"/>
|
||||
<ctl name="ASPTX3 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX3 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX3 Slot Position" value="2"/>
|
||||
<ctl name="R2 ASPTX3 Slot Position" value="7"/>
|
||||
<ctl name="ASPTX4 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX4 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX4 Slot Position" value="3"/>
|
||||
<ctl name="R2 ASPTX4 Slot Position" value="7"/>
|
||||
<ctl name="ASP TX1 Source" value="Zero" />
|
||||
<ctl name="R ASP TX1 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX1 Source" value="VMON" />
|
||||
<ctl name="R2 ASP TX1 Source" value="Zero" />
|
||||
<ctl name="ASP TX2 Source" value="Zero" />
|
||||
<ctl name="R ASP TX2 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX2 Source" value="IMON" />
|
||||
<ctl name="R2 ASP TX2 Source" value="Zero" />
|
||||
<ctl name="ASP TX3 Source" value="Zero" />
|
||||
<ctl name="R ASP TX3 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX3 Source" value="VPMON" />
|
||||
<ctl name="R2 ASP TX3 Source" value="Zero" />
|
||||
<ctl name="ASP TX4 Source" value="Zero" />
|
||||
<ctl name="R ASP TX4 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX4 Source" value="ASPRX1" />
|
||||
<ctl name="R2 ASP TX4 Source" value="Zero" />
|
||||
<ctl name="NoHost1 TX Mixer TDM_0_TX" value="1" />
|
||||
</path>
|
||||
<!-- R2 prefix -->
|
||||
<path name="amp_iv3-only">
|
||||
<ctl name="ASPTX1 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX1 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX1 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX1 Slot Position" value="0"/>
|
||||
<ctl name="ASPTX2 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX2 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX2 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX2 Slot Position" value="1"/>
|
||||
<ctl name="ASPTX3 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX3 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX3 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX3 Slot Position" value="2"/>
|
||||
<ctl name="ASPTX4 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX4 Slot Position" value="5"/>
|
||||
<ctl name="L2 ASPTX4 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX4 Slot Position" value="3"/>
|
||||
<ctl name="ASP TX1 Source" value="Zero" />
|
||||
<ctl name="R ASP TX1 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX1 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX1 Source" value="VMON" />
|
||||
<ctl name="ASP TX2 Source" value="Zero" />
|
||||
<ctl name="R ASP TX2 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX2 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX2 Source" value="IMON" />
|
||||
<ctl name="ASP TX3 Source" value="Zero" />
|
||||
<ctl name="R ASP TX3 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX3 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX3 Source" value="VPMON" />
|
||||
<ctl name="ASP TX4 Source" value="Zero" />
|
||||
<ctl name="R ASP TX4 Source" value="Zero" />
|
||||
<ctl name="L2 ASP TX4 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX4 Source" value="ASPRX1" />
|
||||
<ctl name="NoHost1 TX Mixer TDM_0_TX" value="1" />
|
||||
</path>
|
||||
<!-- R prefix-->
|
||||
<path name="amp_iv4-only">
|
||||
<ctl name="ASPTX1 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX1 Slot Position" value="0"/>
|
||||
<ctl name="L2 ASPTX1 Slot Position" value="5"/>
|
||||
<ctl name="R2 ASPTX1 Slot Position" value="6"/>
|
||||
<ctl name="ASPTX2 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX2 Slot Position" value="1"/>
|
||||
<ctl name="L2 ASPTX2 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX2 Slot Position" value="7"/>
|
||||
<ctl name="ASPTX3 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX3 Slot Position" value="2"/>
|
||||
<ctl name="L2 ASPTX3 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX3 Slot Position" value="7"/>
|
||||
<ctl name="ASPTX4 Slot Position" value="4"/>
|
||||
<ctl name="R ASPTX4 Slot Position" value="3"/>
|
||||
<ctl name="L2 ASPTX4 Slot Position" value="6"/>
|
||||
<ctl name="R2 ASPTX4 Slot Position" value="7"/>
|
||||
<ctl name="ASP TX1 Source" value="Zero" />
|
||||
<ctl name="R ASP TX1 Source" value="VMON" />
|
||||
<ctl name="L2 ASP TX1 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX1 Source" value="Zero" />
|
||||
<ctl name="ASP TX2 Source" value="Zero" />
|
||||
<ctl name="R ASP TX2 Source" value="IMON" />
|
||||
<ctl name="L2 ASP TX2 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX2 Source" value="Zero" />
|
||||
<ctl name="ASP TX3 Source" value="Zero" />
|
||||
<ctl name="R ASP TX3 Source" value="VPMON" />
|
||||
<ctl name="L2 ASP TX3 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX3 Source" value="Zero" />
|
||||
<ctl name="ASP TX4 Source" value="Zero" />
|
||||
<ctl name="R ASP TX4 Source" value="ASPRX1" />
|
||||
<ctl name="L2 ASP TX4 Source" value="Zero" />
|
||||
<ctl name="R2 ASP TX4 Source" value="Zero" />
|
||||
<ctl name="NoHost1 TX Mixer TDM_0_TX" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="us-amp_iv-only">
|
||||
<ctl name="TDM_0_RX Sample Rate" value="SR_96K" />
|
||||
<ctl name="TDM_0_TX Sample Rate" value="SR_96K" />
|
||||
<path name="amp_iv-only" />
|
||||
</path>
|
||||
|
||||
<path name="us-amp_iv1-only">
|
||||
<ctl name="TDM_0_RX Sample Rate" value="SR_96K" />
|
||||
<ctl name="TDM_0_TX Sample Rate" value="SR_96K" />
|
||||
<path name="amp_iv1-only" />
|
||||
</path>
|
||||
|
||||
<path name="us-amp_iv2-only">
|
||||
<ctl name="TDM_0_RX Sample Rate" value="SR_96K" />
|
||||
<ctl name="TDM_0_TX Sample Rate" value="SR_96K" />
|
||||
<path name="amp_iv2-only" />
|
||||
</path>
|
||||
|
||||
<path name="us-amp_iv3-only">
|
||||
<ctl name="TDM_0_RX Sample Rate" value="SR_96K" />
|
||||
<ctl name="TDM_0_TX Sample Rate" value="SR_96K" />
|
||||
<path name="amp_iv3-only" />
|
||||
</path>
|
||||
|
||||
<path name="us-amp_iv4-only">
|
||||
<ctl name="TDM_0_RX Sample Rate" value="SR_96K" />
|
||||
<ctl name="TDM_0_TX Sample Rate" value="SR_96K" />
|
||||
<path name="amp_iv4-only" />
|
||||
</path>
|
||||
|
||||
<path name="speaker1-status">
|
||||
<ctl name="Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="speaker2-status">
|
||||
<ctl name="L2 Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="speaker3-status">
|
||||
<ctl name="R2 Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="speaker4-status">
|
||||
<ctl name="R Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="speaker1-gain">
|
||||
<ctl name="AMP PCM Gain" />
|
||||
</path>
|
||||
|
||||
<path name="speaker2-gain">
|
||||
<ctl name="L2 AMP PCM Gain" />
|
||||
</path>
|
||||
|
||||
<path name="speaker3-gain">
|
||||
<ctl name="R2 AMP PCM Gain" />
|
||||
</path>
|
||||
|
||||
<path name="speaker4-gain">
|
||||
<ctl name="R AMP PCM Gain" />
|
||||
</path>
|
||||
|
||||
<path name="usb-playback-gain">
|
||||
<ctl name="Headset Playback Volume" />
|
||||
</path>
|
||||
|
||||
<path name="mfg-playback speaker">
|
||||
<ctl name="AoC Speaker Mixer ASP Mode" value="ASP_BYPASS" />
|
||||
<ctl name="TDM_0_RX Mixer EP3" value="1" />
|
||||
<ctl name="ASPRX1 Slot Position" value="0" />
|
||||
<ctl name="R ASPRX1 Slot Position" value="1" />
|
||||
<ctl name="SINK_IDS" id="0" value="0" />
|
||||
<ctl name="SINK_IDS" id="1" value="-1" />
|
||||
</path>
|
||||
|
||||
<path name="mfg-playback headphones">
|
||||
<ctl name="I2S_0_RX Chan" value="Two" />
|
||||
<ctl name="I2S_0_RX Format" value="S32_LE" />
|
||||
<ctl name="I2S_0_RX Mixer EP3" value="1" />
|
||||
<ctl name="SINK_IDS" id="0" value="1" />
|
||||
<ctl name="SINK_IDS" id="1" value="-1" />
|
||||
</path>
|
||||
|
||||
<path name="mfg-playback usb-headphones">
|
||||
<ctl name="USB Dev ID v2" value="2" />
|
||||
<ctl name="USB Capture EP ID v2" value="0" />
|
||||
<ctl name="USB Playback EP ID v2" value="1" />
|
||||
<ctl name="USB Playback FORMAT v2" value="6" />
|
||||
<ctl name="USB Playback SR v2" value="48000" />
|
||||
<ctl name="USB Playback CH v2" value="2" />
|
||||
<ctl name="USB Playback BW v2" value="16" />
|
||||
<ctl name="USB Config To AoC v2" value="1" />
|
||||
<ctl name="USB_RX Mixer EP3" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="us-mfg-playback speaker">
|
||||
<path name="cs35l41-us-config" />
|
||||
<ctl name="TDM_0_RX Sample Rate" value="SR_96K" />
|
||||
<ctl name="TDM_0_TX Sample Rate" value="SR_96K" />
|
||||
<ctl name="TDM_0_RX Mixer US" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="speaker1-only">
|
||||
<ctl name="Main AMP Enable Switch" value="1" />
|
||||
<path name="mfg-playback speaker" />
|
||||
<ctl name="Digital PCM Volume" value="817" />
|
||||
<ctl name="AMP PCM Gain" value="17" />
|
||||
<ctl name="PCM Source" value="ASP" />
|
||||
</path>
|
||||
|
||||
<path name="speaker2-only">
|
||||
<ctl name="L2 Main AMP Enable Switch" value="1" />
|
||||
<path name="mfg-playback speaker" />
|
||||
<ctl name="L2 Digital PCM Volume" value="817" />
|
||||
<ctl name="L2 AMP PCM Gain" value="17" />
|
||||
<ctl name="L2 PCM Source" value="ASP" />
|
||||
</path>
|
||||
|
||||
<path name="speaker3-only">
|
||||
<ctl name="R2 Main AMP Enable Switch" value="1" />
|
||||
<path name="mfg-playback speaker" />
|
||||
<ctl name="R2 Digital PCM Volume" value="817" />
|
||||
<ctl name="R2 AMP PCM Gain" value="17" />
|
||||
<ctl name="R2 PCM Source" value="ASP" />
|
||||
</path>
|
||||
|
||||
<path name="speaker4-only">
|
||||
<ctl name="R Main AMP Enable Switch" value="1" />
|
||||
<path name="mfg-playback speaker" />
|
||||
<ctl name="R Digital PCM Volume" value="817" />
|
||||
<ctl name="R AMP PCM Gain" value="17" />
|
||||
<ctl name="R PCM Source" value="ASP" />
|
||||
</path>
|
||||
|
||||
<path name="us-speaker1-only">
|
||||
<ctl name="Main AMP Enable Switch" value="1" />
|
||||
<path name="us-mfg-playback speaker" />
|
||||
<ctl name="Digital PCM Volume" value="817" />
|
||||
<ctl name="AMP PCM Gain" value="17" />
|
||||
<ctl name="PCM Source" value="ASP" />
|
||||
</path>
|
||||
|
||||
<path name="us-speaker2-only">
|
||||
<ctl name="L2 Main AMP Enable Switch" value="1" />
|
||||
<path name="us-mfg-playback speaker" />
|
||||
<ctl name="L2 Digital PCM Volume" value="817" />
|
||||
<ctl name="L2 AMP PCM Gain" value="17" />
|
||||
<ctl name="L2 PCM Source" value="ASP" />
|
||||
</path>
|
||||
|
||||
<path name="us-speaker3-only">
|
||||
<ctl name="R2 Main AMP Enable Switch" value="1" />
|
||||
<path name="us-mfg-playback speaker" />
|
||||
<ctl name="R2 Digital PCM Volume" value="817" />
|
||||
<ctl name="R2 AMP PCM Gain" value="17" />
|
||||
<ctl name="R2 PCM Source" value="ASP" />
|
||||
</path>
|
||||
|
||||
<path name="us-speaker4-only">
|
||||
<ctl name="R Main AMP Enable Switch" value="1" />
|
||||
<path name="us-mfg-playback speaker" />
|
||||
<ctl name="R Digital PCM Volume" value="817" />
|
||||
<ctl name="R AMP PCM Gain" value="17" />
|
||||
<ctl name="R PCM Source" value="ASP" />
|
||||
</path>
|
||||
|
||||
<path name="headphones">
|
||||
<ctl name="DAC1 MIXL DAC1 Switch" value="1" />
|
||||
<ctl name="DAC1 MIXR DAC1 Switch" value="1" />
|
||||
<ctl name="Stereo1 DAC MIXL DAC L1 Switch" value="1" />
|
||||
<ctl name="Stereo1 DAC MIXR DAC R1 Switch" value="1" />
|
||||
<ctl name="DAC L1 Source" value="Stereo1 DAC Mixer" />
|
||||
<ctl name="DAC R1 Source" value="Stereo1 DAC Mixer" />
|
||||
<ctl name="HPOL Playback Switch" value="1" />
|
||||
<ctl name="HPOR Playback Switch" value="1" />
|
||||
<path name="mfg-playback headphones" />
|
||||
</path>
|
||||
|
||||
<path name="speaker-all">
|
||||
<ctl name="Main AMP Enable Switch" value="1" />
|
||||
<ctl name="PCM Source" value="ASP" />
|
||||
<ctl name="Digital PCM Volume" value="817" />
|
||||
<ctl name="AMP PCM Gain" value="17" />
|
||||
<ctl name="R Main AMP Enable Switch" value="1" />
|
||||
<ctl name="R PCM Source" value="ASP" />
|
||||
<ctl name="R Digital PCM Volume" value="817" />
|
||||
<ctl name="R AMP PCM Gain" value="17" />
|
||||
<ctl name="L2 Main AMP Enable Switch" value="1" />
|
||||
<ctl name="L2 PCM Source" value="ASP" />
|
||||
<ctl name="L2 Digital PCM Volume" value="817" />
|
||||
<ctl name="L2 AMP PCM Gain" value="17" />
|
||||
<ctl name="R2 Main AMP Enable Switch" value="1" />
|
||||
<ctl name="R2 PCM Source" value="ASP" />
|
||||
<ctl name="R2 Digital PCM Volume" value="817" />
|
||||
<ctl name="R2 AMP PCM Gain" value="17" />
|
||||
<path name="mfg-playback speaker" />
|
||||
</path>
|
||||
|
||||
<path name="us-speaker-all">
|
||||
<ctl name="Main AMP Enable Switch" value="1" />
|
||||
<ctl name="PCM Source" value="ASP" />
|
||||
<ctl name="Digital PCM Volume" value="817" />
|
||||
<ctl name="AMP PCM Gain" value="17" />
|
||||
<ctl name="R Main AMP Enable Switch" value="1" />
|
||||
<ctl name="R PCM Source" value="ASP" />
|
||||
<ctl name="R Digital PCM Volume" value="817" />
|
||||
<ctl name="R AMP PCM Gain" value="17" />
|
||||
<ctl name="L2 Main AMP Enable Switch" value="1" />
|
||||
<ctl name="L2 PCM Source" value="ASP" />
|
||||
<ctl name="L2 Digital PCM Volume" value="817" />
|
||||
<ctl name="L2 AMP PCM Gain" value="17" />
|
||||
<ctl name="R2 Main AMP Enable Switch" value="1" />
|
||||
<ctl name="R2 PCM Source" value="ASP" />
|
||||
<ctl name="R2 Digital PCM Volume" value="817" />
|
||||
<ctl name="R2 AMP PCM Gain" value="17" />
|
||||
<path name="us-mfg-playback speaker" />
|
||||
</path>
|
||||
|
||||
<path name="loopback-mic-speaker">
|
||||
<ctl name="EP1 TX Mixer TDM_0_TX" value="1" />
|
||||
<ctl name="SINK_IDS" id="0" value="0" />
|
||||
<ctl name="SINK_IDS" id="1" value="-1" />
|
||||
<path name="mfg-playback" />
|
||||
</path>
|
||||
|
||||
<path name="loopback-mic-headphones">
|
||||
<ctl name="EP1 TX Mixer TDM_0_TX" value="1" />
|
||||
<ctl name="SINK_IDS" id="0" value="1" />
|
||||
<ctl name="SINK_IDS" id="1" value="-1" />
|
||||
<path name="mfg-playback" />
|
||||
</path>
|
||||
|
||||
<path name="loopback-mic-usb-headphones">
|
||||
<ctl name="MIC HW Gain At Lower Power Mode (cB)" value="-160" />
|
||||
<ctl name="MIC HW Gain At High Power Mode (cB)" value="0" />
|
||||
<ctl name="TDM_0_TX Format" value="S32_LE" />
|
||||
<ctl name="TDM_0_TX Chan" value="One" />
|
||||
<ctl name="EP1 TX Mixer TDM_0_TX" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="loopback-usb-mic-speaker">
|
||||
<ctl name="Audio Capture Mic Source" value='USB_MIC' />
|
||||
<ctl name="USB Capture FORMAT v2" value="1" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<path name="loopback-usb-mic-usb-headphone">
|
||||
<ctl name="Audio Capture Mic Source" value='USB_MIC' />
|
||||
<ctl name="USB Capture FORMAT v2" value="1" />
|
||||
<ctl name="MIC Record Soft Gain (dB)" value="0" />
|
||||
</path>
|
||||
|
||||
<pcm_id name="loopback-mic1" value="EP1 capture (*)"/>
|
||||
<pcm_id name="loopback-mic2" value="EP1 capture (*)"/>
|
||||
<pcm_id name="loopback-mic3" value="EP1 capture (*)"/>
|
||||
<pcm_id name="loopback-mic4" value="EP1 capture (*)"/>
|
||||
<pcm_id name="loopback-speaker1" value="EP3 playback (*)"/>
|
||||
<pcm_id name="loopback-speaker2" value="EP3 playback (*)"/>
|
||||
<pcm_id name="loopback-speaker3" value="EP3 playback (*)"/>
|
||||
<pcm_id name="loopback-speaker4" value="EP3 playback (*)"/>
|
||||
<pcm_id name="loopback-headphones" value="EP3 playback (*)"/>
|
||||
<pcm_id name="loopback-usb-headphones" value="EP3 playback (*)"/>
|
||||
<pcm_id name="loopback-usb-mic" value="EP1 capture (*)"/>
|
||||
<pcm_id name="loopback-amp_iv" value="nohost1 capture (*)"/>
|
||||
</mixer>
|
||||
@@ -1,508 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!-- Copyright (c) 2018-2020, The Linux Foundation. All rights reserved. -->
|
||||
<!-- -->
|
||||
<!-- Redistribution and use in source and binary forms, with or without -->
|
||||
<!-- modification, are permitted provided that the following conditions are -->
|
||||
<!-- met: -->
|
||||
<!-- * Redistributions of source code must retain the above copyright -->
|
||||
<!-- notice, this list of conditions and the following disclaimer. -->
|
||||
<!-- * Redistributions in binary form must reproduce the above -->
|
||||
<!-- copyright notice, this list of conditions and the following -->
|
||||
<!-- disclaimer in the documentation and/or other materials provided -->
|
||||
<!-- with the distribution. -->
|
||||
<!-- * Neither the name of The Linux Foundation nor the names of its -->
|
||||
<!-- contributors may be used to endorse or promote products derived -->
|
||||
<!-- from this software without specific prior written permission. -->
|
||||
<!-- -->
|
||||
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
|
||||
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
|
||||
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
|
||||
<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
|
||||
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
|
||||
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
|
||||
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
|
||||
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
|
||||
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
|
||||
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
|
||||
<mixer>
|
||||
<!-- Initial Values -->
|
||||
<!-- Preload Stage -->
|
||||
<ctl name="Main AMP Enable Switch" value="0" />
|
||||
<ctl name="DSP1 Preload Switch" value="0" />
|
||||
<ctl name="R Main AMP Enable Switch" value="0" />
|
||||
<ctl name="R DSP1 Preload Switch" value="0" />
|
||||
<ctl name="L2 Main AMP Enable Switch" value="0" />
|
||||
<ctl name="L2 DSP1 Preload Switch" value="0" />
|
||||
<ctl name="R2 Main AMP Enable Switch" value="0" />
|
||||
<ctl name="R2 DSP1 Preload Switch" value="0" />
|
||||
<!-- Clock-trigger Stage -->
|
||||
<ctl name="TDM_0_RX Mixer EP6" value="0"/>
|
||||
|
||||
<!-- Preparation Stage -->
|
||||
<path name="crus-switch-fw-prepare">
|
||||
<ctl name="DRE DRE Switch" value="1" />
|
||||
<ctl name="VBSTMON Output Switch" value="1" />
|
||||
<ctl name="DSP Booted" value="0" />
|
||||
<ctl name="DSP1 Preload Switch" value="0" />
|
||||
|
||||
<ctl name="R DRE DRE Switch" value="1" />
|
||||
<ctl name="R VBSTMON Output Switch" value="1" />
|
||||
<ctl name="R DSP Booted" value="0" />
|
||||
<ctl name="R DSP1 Preload Switch" value="0" />
|
||||
|
||||
<ctl name="L2 DRE DRE Switch" value="1" />
|
||||
<ctl name="L2 VBSTMON Output Switch" value="1" />
|
||||
<ctl name="L2 DSP Booted" value="0" />
|
||||
<ctl name="L2 DSP1 Preload Switch" value="0" />
|
||||
|
||||
<ctl name="R2 DRE DRE Switch" value="1" />
|
||||
<ctl name="R2 VBSTMON Output Switch" value="1" />
|
||||
<ctl name="R2 DSP Booted" value="0" />
|
||||
<ctl name="R2 DSP1 Preload Switch" value="0" />
|
||||
</path>
|
||||
|
||||
<!-- Preload Stage -->
|
||||
<path name="crus-fw-preload">
|
||||
<ctl name="DSP1 Preload Switch" value="1" />
|
||||
<ctl name="R DSP1 Preload Switch" value="1" />
|
||||
<ctl name="L2 DSP1 Preload Switch" value="1" />
|
||||
<ctl name="R2 DSP1 Preload Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<!-- Firmware-switching Stage -->
|
||||
<path name="crus-switch-fw-Calibration">
|
||||
<ctl name="AMP PCM Gain" value="17" />
|
||||
<ctl name="Digital PCM Volume" value="817" />
|
||||
<ctl name="PCM Source" value="DSP" />
|
||||
<ctl name="DSP1 Firmware" value="Calibration" />
|
||||
|
||||
<ctl name="R AMP PCM Gain" value="17" />
|
||||
<ctl name="R Digital PCM Volume" value="817" />
|
||||
<ctl name="R PCM Source" value="DSP" />
|
||||
<ctl name="R DSP1 Firmware" value="Calibration" />
|
||||
|
||||
<ctl name="L2 AMP PCM Gain" value="17" />
|
||||
<ctl name="L2 Digital PCM Volume" value="817" />
|
||||
<ctl name="L2 PCM Source" value="DSP" />
|
||||
<ctl name="L2 DSP1 Firmware" value="Calibration" />
|
||||
|
||||
<ctl name="R2 AMP PCM Gain" value="17" />
|
||||
<ctl name="R2 Digital PCM Volume" value="817" />
|
||||
<ctl name="R2 PCM Source" value="DSP" />
|
||||
<ctl name="R2 DSP1 Firmware" value="Calibration" />
|
||||
</path>
|
||||
|
||||
<path name="crus-switch-fw-Diagnostic">
|
||||
<ctl name="AMP PCM Gain" value="17" />
|
||||
<ctl name="Digital PCM Volume" value="817" />
|
||||
<ctl name="PCM Source" value="DSP" />
|
||||
<ctl name="DSP1 Firmware" value="Diagnostic" />
|
||||
|
||||
<ctl name="R AMP PCM Gain" value="17" />
|
||||
<ctl name="R Digital PCM Volume" value="817" />
|
||||
<ctl name="R PCM Source" value="DSP" />
|
||||
<ctl name="R DSP1 Firmware" value="Diagnostic" />
|
||||
|
||||
<ctl name="L2 AMP PCM Gain" value="17" />
|
||||
<ctl name="L2 Digital PCM Volume" value="817" />
|
||||
<ctl name="L2 PCM Source" value="DSP" />
|
||||
<ctl name="L2 DSP1 Firmware" value="Diagnostic" />
|
||||
|
||||
<ctl name="R2 AMP PCM Gain" value="17" />
|
||||
<ctl name="R2 Digital PCM Volume" value="817" />
|
||||
<ctl name="R2 PCM Source" value="DSP" />
|
||||
<ctl name="R2 DSP1 Firmware" value="Diagnostic" />
|
||||
</path>
|
||||
|
||||
<path name="crus-switch-fw-Protection">
|
||||
<ctl name="PCM Source" value="DSP" />
|
||||
<ctl name="DSP1 Firmware" value="Protection" />
|
||||
<ctl name="R PCM Source" value="DSP" />
|
||||
<ctl name="R DSP1 Firmware" value="Protection" />
|
||||
<ctl name="L2 PCM Source" value="DSP" />
|
||||
<ctl name="L2 DSP1 Firmware" value="Protection" />
|
||||
<ctl name="R2 PCM Source" value="DSP" />
|
||||
<ctl name="R2 DSP1 Firmware" value="Protection" />
|
||||
</path>
|
||||
|
||||
<!-- DSP-initialization Stage -->
|
||||
<path name="crus-dsp-pre-calibration-amp1">
|
||||
<ctl name="Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="crus-dsp-pre-calibration-amp2">
|
||||
<ctl name="R Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="crus-dsp-pre-calibration-amp3">
|
||||
<ctl name="L2 Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="crus-dsp-pre-calibration-amp4">
|
||||
<ctl name="R2 Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="crus-dsp-pre-calibration">
|
||||
<path name="crus-dsp-pre-calibration-amp1" />
|
||||
<path name="crus-dsp-pre-calibration-amp2" />
|
||||
<path name="crus-dsp-pre-calibration-amp3" />
|
||||
<path name="crus-dsp-pre-calibration-amp4" />
|
||||
</path>
|
||||
|
||||
<path name="crus-dsp-pre-diagnostic-amp1">
|
||||
<ctl name="Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="crus-dsp-pre-diagnostic-amp2">
|
||||
<ctl name="R Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="crus-dsp-pre-diagnostic-amp3">
|
||||
<ctl name="L2 Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="crus-dsp-pre-diagnostic-amp4">
|
||||
<ctl name="R2 Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<path name="crus-dsp-pre-diagnostic">
|
||||
<path name="crus-dsp-pre-diagnostic-amp1" />
|
||||
<path name="crus-dsp-pre-diagnostic-amp2" />
|
||||
<path name="crus-dsp-pre-diagnostic-amp3" />
|
||||
<path name="crus-dsp-pre-diagnostic-amp4" />
|
||||
</path>
|
||||
|
||||
<path name="crus-dsp-pre-protection">
|
||||
<ctl name="Main AMP Enable Switch" value="1" />
|
||||
<ctl name="R Main AMP Enable Switch" value="1" />
|
||||
<ctl name="L2 Main AMP Enable Switch" value="1" />
|
||||
<ctl name="R2 Main AMP Enable Switch" value="1" />
|
||||
</path>
|
||||
|
||||
<!-- Clock-trigger Stage -->
|
||||
<path name="platform-controls">
|
||||
<ctl name="TDM_0_RX Mixer EP6" value="1"/>
|
||||
</path>
|
||||
|
||||
<!-- Post loaded firmware -->
|
||||
<path name="crus-dsp-post-loading-fw">
|
||||
<ctl name="Main AMP Enable Switch" value="0" />
|
||||
<ctl name="R Main AMP Enable Switch" value="0" />
|
||||
<ctl name="L2 Main AMP Enable Switch" value="0" />
|
||||
<ctl name="R2 Main AMP Enable Switch" value="0" />
|
||||
</path>
|
||||
|
||||
<!-- Value & Information Fetch Stage -->
|
||||
<path name="platform-values">
|
||||
<ctl name="TDM_0_RX Format" />
|
||||
<ctl name="TDM_0_RX Chan" />
|
||||
<ctl name="TDM_0_RX Sample Rate" />
|
||||
<ctl name="PCM Playback Volume" />
|
||||
<ctl name="TDM_0_RX Mixer EP6" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-values">
|
||||
<ctl name="DRE DRE Switch" />
|
||||
<ctl name="R DRE DRE Switch" />
|
||||
<ctl name="L2 DRE DRE Switch" />
|
||||
<ctl name="R2 DRE DRE Switch" />
|
||||
<ctl name="VBSTMON Output Switch" />
|
||||
<ctl name="R VBSTMON Output Switch" />
|
||||
<ctl name="L2 VBSTMON Output Switch" />
|
||||
<ctl name="R2 VBSTMON Output Switch" />
|
||||
<ctl name="AMP PCM Gain" />
|
||||
<ctl name="R AMP PCM Gain" />
|
||||
<ctl name="L2 AMP PCM Gain" />
|
||||
<ctl name="R2 AMP PCM Gain" />
|
||||
<ctl name="Digital PCM Volume" />
|
||||
<ctl name="R Digital PCM Volume" />
|
||||
<ctl name="L2 Digital PCM Volume" />
|
||||
<ctl name="R2 Digital PCM Volume" />
|
||||
<ctl name="PCM Source" />
|
||||
<ctl name="R PCM Source" />
|
||||
<ctl name="L2 PCM Source" />
|
||||
<ctl name="R2 PCM Source" />
|
||||
<ctl name="DSP Booted" />
|
||||
<ctl name="R DSP Booted" />
|
||||
<ctl name="L2 DSP Booted" />
|
||||
<ctl name="R2 DSP Booted" />
|
||||
<ctl name="Main AMP Enable Switch" />
|
||||
<ctl name="R Main AMP Enable Switch" />
|
||||
<ctl name="L2 Main AMP Enable Switch" />
|
||||
<ctl name="R2 Main AMP Enable Switch" />
|
||||
<ctl name="DSP1 Preload Switch" />
|
||||
<ctl name="R DSP1 Preload Switch" />
|
||||
<ctl name="L2 DSP1 Preload Switch" />
|
||||
<ctl name="R2 DSP1 Preload Switch" />
|
||||
<ctl name="DSP1 Firmware" />
|
||||
<ctl name="R DSP1 Firmware" />
|
||||
<ctl name="L2 DSP1 Firmware" />
|
||||
<ctl name="R2 DSP1 Firmware" />
|
||||
</path>
|
||||
|
||||
|
||||
<!-- Note that the order of controls does matter because
|
||||
it should be matched to the structure defined in
|
||||
sp_cal_common.h -->
|
||||
<!--
|
||||
struct calibration_data {
|
||||
unsigned int cal_r;
|
||||
unsigned int cal_status;
|
||||
unsigned int cal_checksum;
|
||||
unsigned int cal_ambient;
|
||||
unsigned int amp_pcm_gain;
|
||||
unsigned int digital_pcm_gain;
|
||||
};
|
||||
-->
|
||||
<path name="cs35l41-dsp-amp1-calibration-values">
|
||||
<ctl name="DSP1 Calibration cd CAL_R" />
|
||||
<ctl name="DSP1 Calibration cd CAL_STATUS" />
|
||||
<ctl name="DSP1 Calibration cd CAL_CHECKSUM" />
|
||||
<ctl name="DSP1 Calibration cd CAL_AMBIENT" />
|
||||
<ctl name="AMP PCM Gain" />
|
||||
<ctl name="Digital PCM Volume" />
|
||||
|
||||
<!-- Only for debug print -->
|
||||
<ctl name="DSP1 Calibration cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp2-calibration-values">
|
||||
<ctl name="R DSP1 Calibration cd CAL_R" />
|
||||
<ctl name="R DSP1 Calibration cd CAL_STATUS" />
|
||||
<ctl name="R DSP1 Calibration cd CAL_CHECKSUM" />
|
||||
<ctl name="R DSP1 Calibration cd CAL_AMBIENT" />
|
||||
<ctl name="R AMP PCM Gain" />
|
||||
<ctl name="R Digital PCM Volume" />
|
||||
|
||||
<!-- Only for debug print -->
|
||||
<ctl name="R DSP1 Calibration cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp3-calibration-values">
|
||||
<ctl name="L2 DSP1 Calibration cd CAL_R" />
|
||||
<ctl name="L2 DSP1 Calibration cd CAL_STATUS" />
|
||||
<ctl name="L2 DSP1 Calibration cd CAL_CHECKSUM" />
|
||||
<ctl name="L2 DSP1 Calibration cd CAL_AMBIENT" />
|
||||
<ctl name="L2 AMP PCM Gain" />
|
||||
<ctl name="L2 Digital PCM Volume" />
|
||||
|
||||
<!-- Only for debug print -->
|
||||
<ctl name="L2 DSP1 Calibration cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp4-calibration-values">
|
||||
<ctl name="R2 DSP1 Calibration cd CAL_R" />
|
||||
<ctl name="R2 DSP1 Calibration cd CAL_STATUS" />
|
||||
<ctl name="R2 DSP1 Calibration cd CAL_CHECKSUM" />
|
||||
<ctl name="R2 DSP1 Calibration cd CAL_AMBIENT" />
|
||||
<ctl name="R2 AMP PCM Gain" />
|
||||
<ctl name="R2 Digital PCM Volume" />
|
||||
|
||||
<!-- Only for debug print -->
|
||||
<ctl name="R2 DSP1 Calibration cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<!--
|
||||
struct diagnostic_data {
|
||||
struct calibration_data calibration_data;
|
||||
unsigned int z_low_diff;
|
||||
unsigned int diag_f0;
|
||||
unsigned int diag_f0_status;
|
||||
};
|
||||
-->
|
||||
<path name="cs35l41-dsp-amp1-diagnostic-values">
|
||||
<!-- struct calibration_data START -->
|
||||
<ctl name="DSP1 Diagnostic cd CAL_R" />
|
||||
<ctl name="DSP1 Diagnostic cd CAL_STATUS" />
|
||||
<ctl name="DSP1 Diagnostic cd CAL_CHECKSUM" />
|
||||
<ctl name="DSP1 Diagnostic cd CAL_AMBIENT" />
|
||||
<ctl name="AMP PCM Gain" />
|
||||
<ctl name="Digital PCM Volume" />
|
||||
<!-- struct calibration_data END -->
|
||||
<ctl name="DSP1 Diagnostic cd DIAG_Z_LOW_DIFF" />
|
||||
<ctl name="DSP1 Diagnostic cd DIAG_F0" />
|
||||
<ctl name="DSP1 Diagnostic cd DIAG_F0_STATUS" />
|
||||
|
||||
<!-- Only for debug print -->
|
||||
<ctl name="DSP1 Diagnostic cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp2-diagnostic-values">
|
||||
<!-- struct calibration_data START -->
|
||||
<ctl name="R DSP1 Diagnostic cd CAL_R" />
|
||||
<ctl name="R DSP1 Diagnostic cd CAL_STATUS" />
|
||||
<ctl name="R DSP1 Diagnostic cd CAL_CHECKSUM" />
|
||||
<ctl name="R DSP1 Diagnostic cd CAL_AMBIENT" />
|
||||
<ctl name="R AMP PCM Gain" />
|
||||
<ctl name="R Digital PCM Volume" />
|
||||
<!-- struct calibration_data END -->
|
||||
<ctl name="R DSP1 Diagnostic cd DIAG_Z_LOW_DIFF" />
|
||||
<ctl name="R DSP1 Diagnostic cd DIAG_F0" />
|
||||
<ctl name="R DSP1 Diagnostic cd DIAG_F0_STATUS" />
|
||||
|
||||
<!-- Only for debug print -->
|
||||
<ctl name="R DSP1 Diagnostic cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp3-diagnostic-values">
|
||||
<!-- struct calibration_data START -->
|
||||
<ctl name="L2 DSP1 Diagnostic cd CAL_R" />
|
||||
<ctl name="L2 DSP1 Diagnostic cd CAL_STATUS" />
|
||||
<ctl name="L2 DSP1 Diagnostic cd CAL_CHECKSUM" />
|
||||
<ctl name="L2 DSP1 Diagnostic cd CAL_AMBIENT" />
|
||||
<ctl name="L2 AMP PCM Gain" />
|
||||
<ctl name="L2 Digital PCM Volume" />
|
||||
<!-- struct calibration_data END -->
|
||||
<ctl name="L2 DSP1 Diagnostic cd DIAG_Z_LOW_DIFF" />
|
||||
<ctl name="L2 DSP1 Diagnostic cd DIAG_F0" />
|
||||
<ctl name="L2 DSP1 Diagnostic cd DIAG_F0_STATUS" />
|
||||
|
||||
<!-- Only for debug print -->
|
||||
<ctl name="L2 DSP1 Diagnostic cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp4-diagnostic-values">
|
||||
<!-- struct calibration_data START -->
|
||||
<ctl name="R2 DSP1 Diagnostic cd CAL_R" />
|
||||
<ctl name="R2 DSP1 Diagnostic cd CAL_STATUS" />
|
||||
<ctl name="R2 DSP1 Diagnostic cd CAL_CHECKSUM" />
|
||||
<ctl name="R2 DSP1 Diagnostic cd CAL_AMBIENT" />
|
||||
<ctl name="R2 AMP PCM Gain" />
|
||||
<ctl name="R2 Digital PCM Volume" />
|
||||
<!-- struct calibration_data END -->
|
||||
<ctl name="R2 DSP1 Diagnostic cd DIAG_Z_LOW_DIFF" />
|
||||
<ctl name="R2 DSP1 Diagnostic cd DIAG_F0" />
|
||||
<ctl name="R2 DSP1 Diagnostic cd DIAG_F0_STATUS" />
|
||||
|
||||
<!-- Only for debug print -->
|
||||
<ctl name="R2 DSP1 Diagnostic cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp1-protection-values">
|
||||
<!-- struct calibration_data START -->
|
||||
<ctl name="DSP1 Protection cd CAL_R" />
|
||||
<ctl name="DSP1 Protection cd CAL_STATUS" />
|
||||
<ctl name="DSP1 Protection cd CAL_CHECKSUM" />
|
||||
<ctl name="DSP1 Protection cd CAL_AMBIENT" />
|
||||
|
||||
<!-- These controls are unrelated so we can simply
|
||||
skip them
|
||||
<ctl name="AMP PCM Gain" />
|
||||
<ctl name="Digital PCM Volume" />
|
||||
-->
|
||||
<!-- struct calibration_data END -->
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp2-protection-values">
|
||||
<!-- struct calibration_data START -->
|
||||
<ctl name="R DSP1 Protection cd CAL_R" />
|
||||
<ctl name="R DSP1 Protection cd CAL_STATUS" />
|
||||
<ctl name="R DSP1 Protection cd CAL_CHECKSUM" />
|
||||
<ctl name="R DSP1 Protection cd CAL_AMBIENT" />
|
||||
|
||||
<!-- These controls are unrelated so we can simply
|
||||
skip them
|
||||
<ctl name="R AMP PCM Gain" />
|
||||
<ctl name="R Digital PCM Volume" />
|
||||
-->
|
||||
<!-- struct calibration_data END -->
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp3-protection-values">
|
||||
<!-- struct calibration_data START -->
|
||||
<ctl name="L2 DSP1 Protection cd CAL_R" />
|
||||
<ctl name="L2 DSP1 Protection cd CAL_STATUS" />
|
||||
<ctl name="L2 DSP1 Protection cd CAL_CHECKSUM" />
|
||||
<ctl name="L2 DSP1 Protection cd CAL_AMBIENT" />
|
||||
|
||||
<!-- These controls are unrelated so we can simply
|
||||
skip them
|
||||
<ctl name="L2 AMP PCM Gain" />
|
||||
<ctl name="L2 Digital PCM Volume" />
|
||||
-->
|
||||
<!-- struct calibration_data END -->
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp4-protection-values">
|
||||
<!-- struct calibration_data START -->
|
||||
<ctl name="R2 DSP1 Protection cd CAL_R" />
|
||||
<ctl name="R2 DSP1 Protection cd CAL_STATUS" />
|
||||
<ctl name="R2 DSP1 Protection cd CAL_CHECKSUM" />
|
||||
<ctl name="R2 DSP1 Protection cd CAL_AMBIENT" />
|
||||
|
||||
<!-- These controls are unrelated so we can simply
|
||||
skip them
|
||||
<ctl name="R2 AMP PCM Gain" />
|
||||
<ctl name="R2 Digital PCM Volume" />
|
||||
-->
|
||||
<!-- struct calibration_data END -->
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp1-calibration-completion">
|
||||
<ctl name="DSP1 Calibration cd CAL_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp2-calibration-completion">
|
||||
<ctl name="R DSP1 Calibration cd CAL_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp3-calibration-completion">
|
||||
<ctl name="L2 DSP1 Calibration cd CAL_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp4-calibration-completion">
|
||||
<ctl name="R2 DSP1 Calibration cd CAL_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp1-protection-completion">
|
||||
<ctl name="DSP1 Protection cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp2-protection-completion">
|
||||
<ctl name="R DSP1 Protection cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp3-protection-completion">
|
||||
<ctl name="L2 DSP1 Protection cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp4-protection-completion">
|
||||
<ctl name="R2 DSP1 Protection cd CAL_SET_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp1-diagnostic-completion">
|
||||
<ctl name="DSP1 Diagnostic cd CAL_STATUS" />
|
||||
<ctl name="DSP1 Diagnostic cd DIAG_F0_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp2-diagnostic-completion">
|
||||
<ctl name="R DSP1 Diagnostic cd CAL_STATUS" />
|
||||
<ctl name="R DSP1 Diagnostic cd DIAG_F0_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp3-diagnostic-completion">
|
||||
<ctl name="L2 DSP1 Diagnostic cd CAL_STATUS" />
|
||||
<ctl name="L2 DSP1 Diagnostic cd DIAG_F0_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp4-diagnostic-completion">
|
||||
<ctl name="R2 DSP1 Diagnostic cd CAL_STATUS" />
|
||||
<ctl name="R2 DSP1 Diagnostic cd DIAG_F0_STATUS" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp1-enable-status">
|
||||
<ctl name="Main AMP Enable Switch" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp2-enable-status">
|
||||
<ctl name="R Main AMP Enable Switch" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp3-enable-status">
|
||||
<ctl name="L2 Main AMP Enable Switch" />
|
||||
</path>
|
||||
|
||||
<path name="cs35l41-dsp-amp4-enable-status">
|
||||
<ctl name="R2 Main AMP Enable Switch" />
|
||||
</path>
|
||||
</mixer>
|
||||
@@ -1,22 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 2021 The Android Open-Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
AUDIO_FACTORY_TABLE_FOLDER := tangorpro
|
||||
|
||||
# Mixer Path Configuration for Audio Factory
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/audio/$(AUDIO_FACTORY_TABLE_FOLDER)/config/mixer_paths_factory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_factory.xml
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
// Copyright (C) 2023 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
soong_namespace {
|
||||
}
|
||||
|
||||
package {
|
||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||
}
|
||||
|
||||
cc_prebuilt_library_shared {
|
||||
name: "libspeechenhancer",
|
||||
vendor: true,
|
||||
owner: "google",
|
||||
proprietary: true,
|
||||
allow_undefined_symbols: true,
|
||||
arch: {
|
||||
arm: {
|
||||
srcs: ["arm32/libspeechenhancer.so"],
|
||||
},
|
||||
arm64: {
|
||||
srcs: ["arm64/libspeechenhancer.so"],
|
||||
},
|
||||
},
|
||||
|
||||
shared_libs: [
|
||||
"libcutils",
|
||||
"libEGL",
|
||||
"libGLESv2",
|
||||
"liblog",
|
||||
"libz",
|
||||
"libnativewindow",
|
||||
],
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,252 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<template>
|
||||
<modules>
|
||||
<module id="2" name="Waves">
|
||||
<param id="0" max="3" name="opMode_" type="uint32"/>
|
||||
</module>
|
||||
<module id="3" name="Forte">
|
||||
<param id="0" max="3" name="opMode_" type="uint32"/>
|
||||
</module>
|
||||
<module id="5" name="Auto Gain Control">
|
||||
<param default="1" id="0" max="3" name="opMode_" type="uint32"/>
|
||||
<param default="48000" id="1" name="fs_" type="uint32"/>
|
||||
<param default="1" id="2" name="numCh_" type="uint32"/>
|
||||
<param default="1" id="3" name="chMask_" type="uint32"/>
|
||||
<param id="16" name="GainApplied" type="float"/>
|
||||
<param id="17" name="idealRMS" type="float"/>
|
||||
<param id="18" name="noiseGate" type="float"/>
|
||||
<param id="19" name="minGain" type="float"/>
|
||||
<param id="20" name="maxGain" type="float"/>
|
||||
<param id="21" name="longGainAtRt" type="uint32"/>
|
||||
<param id="22" name="GainAtRt" type="uint32"/>
|
||||
<param id="23" name="rmsTav" type="uint32"/>
|
||||
</module>
|
||||
<module id="6" name="Surround Record">
|
||||
<param default="1" id="0" max="3" name="opMode_" type="uint32"/>
|
||||
<param default="48000" id="1" name="fs_" type="uint32"/>
|
||||
<param default="3" id="2" name="numCh_" type="uint32"/>
|
||||
<param default="7" id="3" name="chMask_" type="uint32"/>
|
||||
<param id="16" max="1" min="0" name="alpha" type="float"/>
|
||||
<param complex="true" id="17" name="ch0_profileL" size="1024" type="float"/>
|
||||
<param complex="true" id="18" name="ch1_profileL" size="1024" type="float"/>
|
||||
<param complex="true" id="19" name="ch2_profileL" size="1024" type="float"/>
|
||||
<param complex="true" id="20" name="ch0_profileR" size="1024" type="float"/>
|
||||
<param complex="true" id="21" name="ch1_profileR" size="1024" type="float"/>
|
||||
<param complex="true" id="22" name="ch2_profileR" size="1024" type="float"/>
|
||||
<param complex="true" id="23" name="ch0_profileAZ" size="1024" type="float"/>
|
||||
<param complex="true" id="24" name="ch1_profileAZ" size="1024" type="float"/>
|
||||
<param complex="true" id="25" name="ch2_profileAZ" size="1024" type="float"/>
|
||||
<struct id="26">
|
||||
<param default="1" name="ch_gain" type="float"/>
|
||||
<param default="1" name="zoom_gain" type="float"/>
|
||||
</struct>
|
||||
<param default="0" id="27" name="ch0_assignFrom" type="int32"/>
|
||||
<param default="1" id="28" name="ch1_assignFrom" type="int32"/>
|
||||
<param default="2" id="29" name="ch2_assignFrom" type="int32"/>
|
||||
</module>
|
||||
<module id="7" name="Multi Channel IIR 2">
|
||||
<param default="1" id="0" max="3" name="opMode_" type="uint32"/>
|
||||
<param default="48000" id="1" name="fs_" type="uint32"/>
|
||||
<param default="3" id="2" name="numCh_" type="uint32"/>
|
||||
<param default="1" id="3" name="chMask_" type="uint32"/>
|
||||
<param default="3" id="16" max="3" min="1" name="numOfChannel" type="uint32"/>
|
||||
<param id="17" name="coeff" size="300" type="float"/>
|
||||
<struct id="18">
|
||||
<param max="18" min="-96" name="gain" size="60" type="float"/>
|
||||
<param max="24000" min="0" name="frequency" size="60" type="uint32"/>
|
||||
<param max="200" min="0" name="qfactor" size="60" type="float"/>
|
||||
<param default="4" name="type" size="60" type="int32"/>
|
||||
</struct>
|
||||
</module>
|
||||
<module id="8" name="Multi Band DRC">
|
||||
<param default="1" id="0" max="3" name="opMode_" type="uint32"/>
|
||||
<param default="48000" id="1" name="fs_" type="uint32"/>
|
||||
<param default="2" id="2" name="numCh_" type="uint32"/>
|
||||
<param default="3" id="3" name="chMask_" type="uint32"/>
|
||||
<struct id="16">
|
||||
<param default="1" max="3" min="1" name="numBand" type="uint32"/>
|
||||
<param name="IIR_LowPass1" size="5" type="float"/>
|
||||
<param name="IIR_HighPass1" size="5" type="float"/>
|
||||
<param name="IIR_LowPass2" size="5" type="float"/>
|
||||
<param name="IIR_HighPass2" size="5" type="float"/>
|
||||
</struct>
|
||||
<struct id="17">
|
||||
<param max="20" min="0" name="band0_delay_ms" type="float"/>
|
||||
<param default="5" max="20" min="0" minInclusive="false" name="band0_rms_ms" type="float"/>
|
||||
<param max="30" min="0" name="band0_gain_dB" type="float"/>
|
||||
<param max="30" min="-30" name="band0_Min_Gain_dB" type="float"/>
|
||||
<param default="1" max="3" min="1" name="band0_numOfKnee" type="uint32"/>
|
||||
<param name="band0_threadhold_dB" size="3" type="float"/>
|
||||
<param name="band0_compressRatio" size="4" type="float"/>
|
||||
<param name="band0_kneeWidth" size="3" type="float"/>
|
||||
<param name="band0_attackTime_ms" size="4" type="float"/>
|
||||
<param name="band0_releaseTime_ms" size="4" type="float"/>
|
||||
<param name="band0_hysteresis" size="4" type="float"/>
|
||||
<param max="20" min="0" name="band1_delay_ms" type="float"/>
|
||||
<param default="5" max="20" min="0" minInclusive="false" name="band1_rms_ms" type="float"/>
|
||||
<param max="30" min="0" name="band1_gain_dB" type="float"/>
|
||||
<param max="30" min="-30" name="band1_Min_Gain_dB" type="float"/>
|
||||
<param default="1" max="3" min="1" name="band1_numOfKnee" type="uint32"/>
|
||||
<param name="band1_threadhold_dB" size="3" type="float"/>
|
||||
<param name="band1_compressRatio" size="4" type="float"/>
|
||||
<param name="band1_kneeWidth" size="3" type="float"/>
|
||||
<param name="band1_attackTime_ms" size="4" type="float"/>
|
||||
<param name="band1_releaseTime_ms" size="4" type="float"/>
|
||||
<param name="band1_hysteresis" size="4" type="float"/>
|
||||
<param max="20" min="0" name="band2_delay_ms" type="float"/>
|
||||
<param default="5" max="20" min="0" minInclusive="false" name="band2_rms_ms" type="float"/>
|
||||
<param max="30" min="0" name="band2_gain_dB" type="float"/>
|
||||
<param max="30" min="-30" name="band2_Min_Gain_dB" type="float"/>
|
||||
<param default="1" max="3" min="1" name="band2_numOfKnee" type="uint32"/>
|
||||
<param name="band2_threadhold_dB" size="3" type="float"/>
|
||||
<param name="band2_compressRatio" size="4" type="float"/>
|
||||
<param name="band2_kneeWidth" size="3" type="float"/>
|
||||
<param name="band2_attackTime_ms" size="4" type="float"/>
|
||||
<param name="band2_releaseTime_ms" size="4" type="float"/>
|
||||
<param name="band2_hysteresis" size="4" type="float"/>
|
||||
</struct>
|
||||
<struct id="18">
|
||||
<param max="30" min="-30" name="limiter_gain_dB" type="float"/>
|
||||
<param max="0" min="-30" name="limiter_threadhold_dB" type="float"/>
|
||||
<param max="100" min="0" name="limiter_attackTime_ms" type="uint32"/>
|
||||
<param max="100" min="0" name="limiter_releaseTime_ms" type="uint32"/>
|
||||
</struct>
|
||||
<struct id="19">
|
||||
<param name="frequency0" type="uint32"/>
|
||||
<param name="frequency1" type="uint32"/>
|
||||
</struct>
|
||||
</module>
|
||||
<module id="11" name="Stationary Noise Suppression">
|
||||
<param default="1" id="0" max="3" name="opMode_" type="uint32"/>
|
||||
<param default="48000" id="1" name="fs_" type="uint32"/>
|
||||
<param default="2" id="2" name="numCh_" type="uint32"/>
|
||||
<param default="3" id="3" name="chMask_" type="uint32"/>
|
||||
<param default="1" id="16" name="strength level" type="uint32"/>
|
||||
<param id="17" name="POWER_TIME_SMOOTH" type="float"/>
|
||||
<param id="18" name="RMS_TIME_SMOOTH" type="float"/>
|
||||
<param id="19" name="LOWER_BAND_THRESHOLD" size="129" type="float"/>
|
||||
<param id="20" name="UPPER_BAND_THRESHOLD" size="3" type="float"/>
|
||||
<param id="21" name="ATTACK_TIME" type="float"/>
|
||||
<param id="22" name="RELEASE_TIME" type="float"/>
|
||||
</module>
|
||||
<module id="14" name="Linear Gain">
|
||||
<param default="1" id="0" max="3" name="opMode_" type="uint32"/>
|
||||
<param default="48000" id="1" name="fs_" type="uint32"/>
|
||||
<param default="1" id="2" name="numCh_" type="uint32"/>
|
||||
<param default="1" id="3" name="chMask_" type="uint32"/>
|
||||
<param id="16" name="Simple_gain" type="float"/>
|
||||
</module>
|
||||
<module id="17" name="Wind Noise Reduction">
|
||||
<param default="1" id="0" max="3" name="opMode_" type="uint32"/>
|
||||
<param default="48000" id="1" name="fs_" type="uint32"/>
|
||||
<param default="2" id="2" name="numCh_" type="uint32"/>
|
||||
<param default="3" id="3" name="chMask_" type="uint32"/>
|
||||
<param default="450" id="16" name="DECISION_SMOOTHING_FACTOR" type="int32"/>
|
||||
<param default="50" id="17" name="DECISION_ATTACK_SMOOTHING_FACTOR" type="int32"/>
|
||||
<param default="50" id="18" name="DECISION_RELEASE_HIGH_SMOOTHING_FACTOR" type="int32"/>
|
||||
<param default="50" id="19" name="DECISION_RELEASE_LOW_SMOOTHING_FACTOR" type="int32"/>
|
||||
<param default="700" id="20" name="DECISION_RELEASE_THRESHOLD" type="int32"/>
|
||||
<param default="0" id="21" name="DECISION_RANGE_OFFSET_FACTOR" type="int32"/>
|
||||
<param default="1000" id="22" name="DECISION_RANGE_SLOPE_FACTOR" type="int32"/>
|
||||
<param default="450" id="23" name="DECISION_GAIN_SMOOTHING_FACTOR" type="int32"/>
|
||||
<param default="27" id="24" name="DECISION_DB_RANGE" type="int32"/>
|
||||
<param default="1000" id="25" name="MASTER_REDUCTION_FACTOR" type="int32"/>
|
||||
<param default="15" id="26" name="KEEP_NUM_OF_PREV_DECISIONS" type="int32"/>
|
||||
<param default="1000" id="27" name="DEC_PRE_GAIN" type="int32"/>
|
||||
<param default="16000" id="28" name="SUP_PRE_GAIN" type="int32"/>
|
||||
<param default="2" id="29" name="COHERENCE_ENABLE" type="int32"/>
|
||||
<param default="1" id="30" name="COHERENCE_START_BIN" type="int32"/>
|
||||
<param default="10" id="31" name="COHERENCE_END_BIN" type="int32"/>
|
||||
<param default="300" id="32" name="COHERENCE_THRESHOLD" type="int32"/>
|
||||
<param default="990" id="33" name="COHERENCE_FORGETTING_FACTOR" type="int32"/>
|
||||
<param default="0" id="34" name="DB_SCALING_FACTOR" type="int32"/>
|
||||
<param default="9" id="35" name="SEP_LAYER" type="int32"/>
|
||||
<param default="1" id="36" name="SP_GAIN_ENABLE" type="int32"/>
|
||||
<param default="15" id="37" name="SP_GAIN_MAX_BIN" type="int32"/>
|
||||
<param default="500" id="38" name="SP_GAIN_MIN" type="int32"/>
|
||||
<param default="200" id="39" name="SP_GAIN_TH_MIN" type="int32"/>
|
||||
<param default="450" id="40" name="SP_GAIN_TH_MAX" type="int32"/>
|
||||
<param default="800" id="41" name="SP_GAIN_SMOOTH" type="int32"/>
|
||||
<param default="3" id="42" name="SP_GAIN_FREQ_SMOOTH" type="int32"/>
|
||||
<param default="300" id="43" name="MASTER_MAX_SUP_SMOOTHING_FACTOR" type="int32"/>
|
||||
<param default="1" id="44" name="GAIN_FREQ_SMOOTH" type="int32"/>
|
||||
<param default="2" id="45" name="GMIN_CURVE_TYPE" type="int32"/>
|
||||
<param default="55" id="46" name="GMIN_LINEAR_SPLIT_MID_POINT_BINR" type="int32"/>
|
||||
<param default="330" id="47" name="GMIN_LINEAR_SPLIT_MID_POINT_VAL" type="int32"/>
|
||||
<param default="1000" id="48" name="SP_OVERSUB_RATIO" type="int32"/>
|
||||
<param default="16" id="49" name="WIND_ENERGY_EST_COMPENSATION_GAIN" type="int32"/>
|
||||
<param default="2000" id="50" name="WIND_ENERGY_CURVE_SLOPE" type="int32"/>
|
||||
<param default="300" id="51" name="WIND_ENERGY_CURVE_OFFSET" type="int32"/>
|
||||
<param default="16000" id="52" name="WIND_ENERGY_CURVE_MIN" type="int32"/>
|
||||
<param default="16000" id="53" name="WIND_ENERGY_CURVE_MAX" type="int32"/>
|
||||
<param default="900" id="54" name="WIND_ENERGY_SMOOTHING" type="int32"/>
|
||||
<param default="144" id="55" name="WIND_ENERGY_NORM_DENOM" type="int32"/>
|
||||
<param default="600" id="56" name="WIND_ENERGY_CURVE_SCALED_TH_MIN" type="int32"/>
|
||||
<param default="900" id="57" name="WIND_ENERGY_CURVE_SCALED_TH_MAX" type="int32"/>
|
||||
<param default="1" id="58" name="ENABLE_ML_COMBI_WIND_ENERGY" type="int32"/>
|
||||
<param default="1" id="59" name="ENABLE_SP_COMBI_WIND_ENERGY" type="int32"/>
|
||||
<param default="1" id="60" name="ENALBE_SP_COMBI_OVERSUBTRACTION" type="int32"/>
|
||||
<param default="1" id="61" name="ENABLE_PRIORI_SNR" type="int32"/>
|
||||
<param default="1000" id="62" name="PRIORI_SNR_ML_TUNING" type="int32"/>
|
||||
<param default="15" id="63" name="DEC_PREV_NUM" type="int32"/>
|
||||
<param default="1" id="64" name="SSC_ENABLE" type="int32"/>
|
||||
<param default="930" id="65" name="SSC_SOFT_SMOOTHING_FACTOR" type="int32"/>
|
||||
<param default="1600" id="66" name="SSC_OVERDRIVE" type="int32"/>
|
||||
<param default="3" id="67" name="SSC_MIN_FREQ" type="int32"/>
|
||||
<param default="130" id="68" name="SSC_MAX_FREQ" type="int32"/>
|
||||
<param default="700" id="69" name="SSC_PSD_SMOOTHING_FACTOR" type="int32"/>
|
||||
<param default="12" id="70" name="SSC_SOFT_DECISION_MIN_FREQ" type="int32"/>
|
||||
<param default="450" id="71" name="SSC_SOFT_DECISION_MAX_FREQ" type="int32"/>
|
||||
<param default="5" id="72" name="SSC_KEEP_SAVED_PROB_SMOOTH_SIZE" type="int32"/>
|
||||
<param default="1000" id="73" name="GAIN_BOOSTING_COST" type="int32"/>
|
||||
</module>
|
||||
<module id="18" name="Multi Channel IIR 1">
|
||||
<param default="1" id="0" max="3" name="opMode_" type="uint32"/>
|
||||
<param default="48000" id="1" name="fs_" type="uint32"/>
|
||||
<param default="2" id="2" name="numCh_" type="uint32"/>
|
||||
<param default="3" id="3" name="chMask_" type="uint32"/>
|
||||
<param default="3" id="16" max="3" min="1" name="numOfChannel" type="uint32"/>
|
||||
<param id="17" name="coeff" size="300" type="float"/>
|
||||
<struct id="18">
|
||||
<param max="18" min="-96" name="gain" size="60" type="float"/>
|
||||
<param max="24000" min="0" name="frequency" size="60" type="uint32"/>
|
||||
<param max="200" min="0" name="qfactor" size="60" type="float"/>
|
||||
<param default="4" name="type" size="60" type="int32"/>
|
||||
</struct>
|
||||
</module>
|
||||
<module id="10000" name="Eraser">
|
||||
<param id="275" name="eraser_pre_gain" type="uint32"/>
|
||||
<param id="277" name="eraser_post_gain" type="uint32"/>
|
||||
<param id="279" name="non_eraser_gain" type="uint32"/>
|
||||
</module>
|
||||
<module id="10001" name="Cleaner">
|
||||
<param id="299" name="cleaner_post_gain" type="uint32"/>
|
||||
</module>
|
||||
<module id="10002" name="CHRE">
|
||||
<param id="297" name="chre_gain" type="uint32"/>
|
||||
</module>
|
||||
</modules>
|
||||
<signalflows>
|
||||
<signalflow id="1" name="Spatial Audio">
|
||||
<block id="128">
|
||||
<moduleRef id="18"/>
|
||||
<moduleRef id="17"/>
|
||||
</block>
|
||||
<block id="134">
|
||||
<moduleRef id="14"/>
|
||||
<moduleRef id="11"/>
|
||||
<moduleRef id="6"/>
|
||||
<moduleRef id="7"/>
|
||||
<moduleRef id="5"/>
|
||||
<moduleRef id="8"/>
|
||||
</block>
|
||||
</signalflow>
|
||||
<signalflow id="1000" name="Smart Feature">
|
||||
<block id="0">
|
||||
<moduleRef id="10000"/>
|
||||
<moduleRef id="10001"/>
|
||||
<moduleRef id="10002"/>
|
||||
</block>
|
||||
</signalflow>
|
||||
</signalflows>
|
||||
</template>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,58 +0,0 @@
|
||||
########################################################################################################
|
||||
# (Optional) The supported features list for platform vendors to query from.
|
||||
# Platform vendors should call maxxaudio_qdsp_is_feature_supported with a string to query from the list.
|
||||
# This config has no effect in the MaxxAudioQdspHalController. It's only meaningful for platform vendors.
|
||||
# Putting any value other than 1 would be equivalent to not supported.
|
||||
########################################################################################################
|
||||
[HAL_SUPPORTED_FEATURES]
|
||||
CUSTOM_ACTION_256=1
|
||||
|
||||
########################################################################################################
|
||||
# This defined the options of supported sample rates.
|
||||
# This can be configured by Waves or platform vendor.
|
||||
########################################################################################################
|
||||
[HAL_SUPPORTED_SAMPLE_RATES]
|
||||
SR_COMMON = 48000
|
||||
|
||||
########################################################################################################
|
||||
# (Optional) The subtypes that applies to different angles(0, 90, 180, 270). Can be empty if not applicable.
|
||||
# This can be configured by Waves or platform vendor.
|
||||
########################################################################################################
|
||||
[HAL_ORIENTATION_SUBTYPES]
|
||||
OST_SPEAKER = 0:12,90:13,180:12,270:0|13
|
||||
|
||||
########################################################################################################
|
||||
# This defines available preset configurations.
|
||||
# This should be configured by Waves only unless platform vendor is familiar with MPS structure.
|
||||
########################################################################################################
|
||||
[HAL_SUPPORTED_PRESETS]
|
||||
SPEAKER_MUSIC = OM:1,SM:2,OST:OST_SPEAKER
|
||||
SPEAKER_SAFE_MUSIC = OM:10,SM:2,OST:OST_SPEAKER
|
||||
SPEAKER_SAFE_CALL = OM:10,SM:2,OST:OST_SPEAKER
|
||||
HEADSET_MUSIC = OM:2,SM:2
|
||||
|
||||
########################################################################################################
|
||||
# This defines available CONTROL configurations. Only define the CONTROL if you need it.
|
||||
# The numbers could vary from device to device.
|
||||
# This can be configured by Waves or platform vendor.
|
||||
########################################################################################################
|
||||
[HAL_SUPPORTED_CONTROLS]
|
||||
SPEAKER_INSTANCE = INSTANCE:1,DEV:0,SR:SR_COMMON,PRESET:SPEAKER_MUSIC|SPEAKER_SAFE_MUSIC|SPEAKER_SAFE_CALL
|
||||
A2DP_INSTANCE = INSTANCE:2,DEV:0,SR:SR_COMMON,PRESET:HEADSET_MUSIC
|
||||
USB_HEADPHONE_INSTANCE = INSTANCE:4,DEV:0,SR:SR_COMMON,PRESET:HEADSET_MUSIC
|
||||
|
||||
[COEFS_CONVERTER_SETTING]
|
||||
AlgFxPath=/vendor/lib/libAlgFx_HiFi3z.so
|
||||
AlgFxPath64=/vendor/lib64/libAlgFx_HiFi3z.so
|
||||
# do not modify the following if not necessary
|
||||
#AudioFormatType=0
|
||||
#AudioFormatChannels=2
|
||||
#AudioFormatSampleRate=48000
|
||||
#AudioFormatBitsPerSample=32
|
||||
#AudioFormatSampleSize=4
|
||||
#AudioFormatIncrement=8
|
||||
|
||||
[CUSTOM_ACTION_256]
|
||||
CASE_1=PRIORITY:0,NUMBERS:2:0|1,PRESET:SPEAKER_MUSIC
|
||||
CASE_2=PRIORITY:1,NUMBERS:1|2|4194304:2|3|4,PRESET:SPEAKER_SAFE_CALL
|
||||
CASE_3=PRIORITY:2,NUMBERS:1|4194304:0|1,PRESET:SPEAKER_SAFE_MUSIC
|
||||
Binary file not shown.
@@ -16,13 +16,8 @@
|
||||
#
|
||||
|
||||
# Override BQR mask to enable LE Audio Choppy report
|
||||
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
persist.bluetooth.bqr.event_mask=262238
|
||||
else
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
persist.bluetooth.bqr.event_mask=94
|
||||
endif
|
||||
|
||||
# Not support LE Audio dual mic SWB call based on the current launch strategy
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
@@ -59,11 +54,6 @@ PRODUCT_PACKAGES += android.hardware.bluetooth@1.1-service.synabtlinux \
|
||||
android.hardware.bluetooth.prebuilt.xml \
|
||||
android.hardware.bluetooth_le.prebuilt.xml
|
||||
|
||||
# Bluetooth SAR test tools
|
||||
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
PRODUCT_PACKAGES_DEBUG += bt_sar_test
|
||||
endif
|
||||
|
||||
# Bluetooth Tx power caps
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/bluetooth/bluetooth_power_limits_tangorpro.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits.csv \
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Builds android.hardware.drm-service.castkey
|
||||
//
|
||||
package {
|
||||
// See: http://go/android-license-faq
|
||||
// A large-scale-change added 'default_applicable_licenses' to import
|
||||
// all of the 'license_kinds' from "device_google_tangorpro_license"
|
||||
// to get the below license kinds:
|
||||
// SPDX-license-identifier-Apache-2.0
|
||||
default_applicable_licenses: ["device_google_tangorpro_license"],
|
||||
}
|
||||
|
||||
cc_binary {
|
||||
name: "android.hardware.drm-service.castkey",
|
||||
defaults: ["castkey_service_defaults"],
|
||||
srcs: ["Service.cpp"],
|
||||
init_rc: ["android.hardware.drm-service.castkey.rc"],
|
||||
vintf_fragments: ["manifest_android.hardware.drm-service.castkey.xml"],
|
||||
}
|
||||
|
||||
cc_defaults {
|
||||
name: "castkey_service_defaults",
|
||||
vendor: true,
|
||||
proprietary: true,
|
||||
srcs: [
|
||||
"CreatePluginFactories.cpp",
|
||||
"DrmFactory.cpp",
|
||||
"DrmPlugin.cpp",
|
||||
"SessionLibrary.cpp",
|
||||
],
|
||||
|
||||
relative_install_path: "hw",
|
||||
|
||||
cflags: ["-Wall", "-Werror"],
|
||||
|
||||
include_dirs: [
|
||||
"device/google/tangorpro/cast_auth/mediadrm/include",
|
||||
],
|
||||
|
||||
shared_libs: [
|
||||
"android.hardware.drm-V1-ndk",
|
||||
"libbase",
|
||||
"libbinder_ndk",
|
||||
"liblog",
|
||||
"libutils",
|
||||
],
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
#include "CreatePluginFactories.h"
|
||||
|
||||
namespace aidl {
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace drm {
|
||||
namespace castkey {
|
||||
|
||||
std::shared_ptr<DrmFactory> createDrmFactory() {
|
||||
return ::ndk::SharedRefBase::make<DrmFactory>();
|
||||
}
|
||||
|
||||
} // namespace castkey
|
||||
} // namespace drm
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
} // namespace aidl
|
||||
@@ -1,82 +0,0 @@
|
||||
#define LOG_TAG "castkey-DrmFactory"
|
||||
|
||||
#include <utils/Log.h>
|
||||
|
||||
#include "DrmFactory.h"
|
||||
|
||||
#include "DrmPlugin.h"
|
||||
#include "Utils.h"
|
||||
|
||||
namespace aidl {
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace drm {
|
||||
namespace castkey {
|
||||
|
||||
namespace {
|
||||
|
||||
const std::array<uint8_t, 16> kCastKeyUUID{
|
||||
0xBC, 0xB4, 0x81, 0xCB, 0xA1, 0xD5, 0x42, 0xAF,
|
||||
0xB1, 0xE3, 0x7B, 0xFF, 0x14, 0x73, 0xEB, 0x85
|
||||
};
|
||||
|
||||
bool isCastKeyUUID(const uint8_t uuid[16]) {
|
||||
return !memcmp(uuid, kCastKeyUUID.data(), 16);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
using std::string;
|
||||
using std::vector;
|
||||
|
||||
using ::aidl::android::hardware::drm::Status;
|
||||
using ::aidl::android::hardware::drm::Uuid;
|
||||
using namespace castkeydrm;
|
||||
|
||||
::ndk::ScopedAStatus DrmFactory::createDrmPlugin(
|
||||
const Uuid& in_uuid, const string& in_appPackageName,
|
||||
std::shared_ptr<::aidl::android::hardware::drm::IDrmPlugin>* _aidl_return) {
|
||||
UNUSED(in_appPackageName);
|
||||
if (!isCastKeyUUID(in_uuid.uuid.data())) {
|
||||
ALOGE("Castkey Drm HAL: failed to create drm plugin, "
|
||||
"invalid crypto scheme");
|
||||
*_aidl_return = nullptr;
|
||||
return toNdkScopedAStatus(Status::BAD_VALUE);
|
||||
}
|
||||
std::shared_ptr<DrmPlugin> plugin =
|
||||
::ndk::SharedRefBase::make<DrmPlugin>();
|
||||
*_aidl_return = plugin;
|
||||
return toNdkScopedAStatus(Status::OK);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmFactory::createCryptoPlugin(
|
||||
const Uuid& in_uuid, const std::vector<uint8_t>& in_initData,
|
||||
std::shared_ptr<::aidl::android::hardware::drm::ICryptoPlugin>* _aidl_return) {
|
||||
UNUSED(in_uuid);
|
||||
UNUSED(in_initData);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmFactory::getSupportedCryptoSchemes(CryptoSchemes* _aidl_return) {
|
||||
CryptoSchemes schemes{};
|
||||
schemes.uuids.push_back({kCastKeyUUID});
|
||||
*_aidl_return = schemes;
|
||||
return toNdkScopedAStatus(Status::OK);
|
||||
}
|
||||
|
||||
binder_status_t DrmFactory::dump(int fd, const char** args, uint32_t numArgs) {
|
||||
UNUSED(args);
|
||||
UNUSED(numArgs);
|
||||
if (fd < 0) {
|
||||
ALOGE("%s: negative fd", __FUNCTION__);
|
||||
return STATUS_BAD_VALUE;
|
||||
}
|
||||
return STATUS_OK;
|
||||
}
|
||||
|
||||
} // namespace castkey
|
||||
} // namespace drm
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
} // namespace aidl
|
||||
@@ -1,419 +0,0 @@
|
||||
#define LOG_TAG "castkey-DrmPlugin"
|
||||
|
||||
#include <utils/Log.h>
|
||||
#include <dlfcn.h>
|
||||
#include <fstream>
|
||||
#include <vector>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "Utils.h"
|
||||
#include "DrmPlugin.h"
|
||||
#include "SessionLibrary.h"
|
||||
|
||||
namespace aidl {
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace drm {
|
||||
namespace castkey {
|
||||
|
||||
using namespace castkeydrm;
|
||||
|
||||
DrmPlugin::DrmPlugin() {};
|
||||
DrmPlugin::~DrmPlugin() {};
|
||||
|
||||
constexpr char CAST_CRT_FILE[] = "/mnt/vendor/persist/nest/cast_auth.crt";
|
||||
constexpr char CAST_ICA_FILE[] = "/vendor/etc/cert-chain.crt";
|
||||
constexpr unsigned char kSha1Prefix[] = {0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e,
|
||||
0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14};
|
||||
constexpr unsigned char kSha256Prefix[] = {0x30, 0x31, 0x30, 0x0d, 0x06, 0x09, 0x60,
|
||||
0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02,
|
||||
0x01, 0x05, 0x00, 0x04, 0x20};
|
||||
constexpr int kSHA1Length = 20;
|
||||
constexpr int kSHA256Length = 32;
|
||||
constexpr int DigestInfoPrefixesSize = 2;
|
||||
|
||||
struct DigestInfoPrefix {
|
||||
const unsigned char* bytes;
|
||||
size_t size;
|
||||
size_t hash_size;
|
||||
};
|
||||
|
||||
// Array of DigestInfoPrefixes that are currently supported (SHA1 and SHA256).
|
||||
const DigestInfoPrefix kDigestInfoPrefixes[] = {
|
||||
{kSha1Prefix, sizeof(kSha1Prefix), kSHA1Length},
|
||||
{kSha256Prefix, sizeof(kSha256Prefix), kSHA256Length},
|
||||
};
|
||||
|
||||
// If we find a raw hash, prepend the appropriate DER prefix.
|
||||
std::vector<uint8_t> adjustHash(const std::vector<uint8_t>& hash) {
|
||||
std::vector<uint8_t> adjusted_hash(hash);
|
||||
for (size_t i = 0; i < DigestInfoPrefixesSize; i++) {
|
||||
const DigestInfoPrefix& prefix = kDigestInfoPrefixes[i];
|
||||
if (hash.size() == prefix.hash_size) {
|
||||
adjusted_hash.insert(adjusted_hash.begin(), prefix.bytes,
|
||||
&prefix.bytes[prefix.size]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return adjusted_hash;
|
||||
}
|
||||
|
||||
std::vector<uint8_t> readBinaryFile(const std::string& file_path) {
|
||||
std::ifstream fin(file_path, std::ios::in | std::ios::binary);
|
||||
fin >> std::noskipws;
|
||||
std::vector<uint8_t> buffer((std::istream_iterator<uint8_t>(fin)),
|
||||
std::istream_iterator<uint8_t>());
|
||||
return buffer;
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::openSession(
|
||||
::aidl::android::hardware::drm::SecurityLevel in_securityLevel,
|
||||
std::vector<uint8_t>* _aidl_return) {
|
||||
UNUSED(in_securityLevel);
|
||||
std::vector<uint8_t> sessionId = SessionLibrary::get()->createSession();
|
||||
*_aidl_return = sessionId;
|
||||
return toNdkScopedAStatus(Status::OK);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::closeSession(const std::vector<uint8_t>& in_sessionId) {
|
||||
if (in_sessionId.size() == 0) {
|
||||
return toNdkScopedAStatus(Status::BAD_VALUE);
|
||||
}
|
||||
SessionLibrary::get()->closeSession(in_sessionId);
|
||||
return toNdkScopedAStatus(Status::OK);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getPropertyByteArray(const std::string& in_propertyName,
|
||||
std::vector<uint8_t>* _aidl_return) {
|
||||
Status status = Status::OK;
|
||||
std::string name(in_propertyName.c_str());
|
||||
std::vector<uint8_t> value;
|
||||
if (name == "castcert") {
|
||||
std::vector<uint8_t> device_cert = readBinaryFile(CAST_CRT_FILE);
|
||||
std::vector<uint8_t> ica = readBinaryFile(CAST_ICA_FILE);
|
||||
value = std::move(device_cert);
|
||||
value.insert(value.end(), ica.begin(), ica.end());
|
||||
} else {
|
||||
status = Status::ERROR_DRM_CANNOT_HANDLE;
|
||||
ALOGE("Unsupported Property: %s", in_propertyName.c_str());
|
||||
}
|
||||
*_aidl_return = value;
|
||||
return toNdkScopedAStatus(status);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::signRSA(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::string& in_algorithm,
|
||||
const std::vector<uint8_t>& in_message,
|
||||
const std::vector<uint8_t>& in_wrappedkey,
|
||||
std::vector<uint8_t>* _aidl_return) {
|
||||
if (in_sessionId.size() == 0 || in_message.size() == 0) {
|
||||
return toNdkScopedAStatus(Status::BAD_VALUE);
|
||||
}
|
||||
UNUSED(in_algorithm);
|
||||
UNUSED(in_wrappedkey);
|
||||
Status status = Status::ERROR_DRM_CANNOT_HANDLE;
|
||||
std::vector<uint8_t> signature;
|
||||
*_aidl_return = std::vector<uint8_t>();
|
||||
void* cast_auth_handle = ::dlopen("libcast_auth.so", RTLD_LAZY);
|
||||
if (!cast_auth_handle) {
|
||||
ALOGE("Fail to get TA for signing");
|
||||
return toNdkScopedAStatus(status);
|
||||
}
|
||||
typedef bool (*func_type)(const std::vector<uint8_t>&,
|
||||
std::vector<uint8_t>*);
|
||||
func_type sign_hash_func =
|
||||
reinterpret_cast<func_type>(::dlsym(cast_auth_handle, "SignHash"));
|
||||
if (!sign_hash_func) {
|
||||
ALOGE("Fail to apply signing method");
|
||||
dlclose(cast_auth_handle);
|
||||
return toNdkScopedAStatus(status);
|
||||
}
|
||||
const std::vector<uint8_t> msg = adjustHash(in_message);
|
||||
int res = sign_hash_func(msg, &signature);
|
||||
dlclose(cast_auth_handle);
|
||||
if (res == 0) {
|
||||
*_aidl_return = signature;
|
||||
return toNdkScopedAStatus(Status::OK);
|
||||
}
|
||||
ALOGE("Get empty result from TA");
|
||||
return toNdkScopedAStatus(status);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::decrypt(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::vector<uint8_t>& in_keyId,
|
||||
const std::vector<uint8_t>& in_input,
|
||||
const std::vector<uint8_t>& in_iv,
|
||||
std::vector<uint8_t>* _aidl_return) {
|
||||
UNUSED(in_sessionId);
|
||||
UNUSED(in_keyId);
|
||||
UNUSED(in_input);
|
||||
UNUSED(in_iv);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::encrypt(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::vector<uint8_t>& in_keyId,
|
||||
const std::vector<uint8_t>& in_input,
|
||||
const std::vector<uint8_t>& in_iv,
|
||||
std::vector<uint8_t>* _aidl_return) {
|
||||
UNUSED(in_sessionId);
|
||||
UNUSED(in_keyId);
|
||||
UNUSED(in_input);
|
||||
UNUSED(in_iv);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getHdcpLevels(
|
||||
::aidl::android::hardware::drm::HdcpLevels* _aidl_return) {
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getKeyRequest(
|
||||
const std::vector<uint8_t>& in_scope,
|
||||
const std::vector<uint8_t>& in_initData,
|
||||
const std::string& in_mimeType,
|
||||
::aidl::android::hardware::drm::KeyType in_keyType,
|
||||
const std::vector<::aidl::android::hardware::drm::KeyValue>& in_optionalParameters,
|
||||
::aidl::android::hardware::drm::KeyRequest* _aidl_return) {
|
||||
UNUSED(in_scope);
|
||||
UNUSED(in_initData);
|
||||
UNUSED(in_mimeType);
|
||||
UNUSED(in_keyType);
|
||||
UNUSED(in_optionalParameters);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getLogMessages(
|
||||
std::vector<::aidl::android::hardware::drm::LogMessage>* _aidl_return) {
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getMetrics(
|
||||
std::vector<::aidl::android::hardware::drm::DrmMetricGroup>* _aidl_return) {
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getNumberOfSessions(
|
||||
::aidl::android::hardware::drm::NumberOfSessions* _aidl_return) {
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getOfflineLicenseKeySetIds(
|
||||
std::vector<::aidl::android::hardware::drm::KeySetId>* _aidl_return) {
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getOfflineLicenseState(
|
||||
const ::aidl::android::hardware::drm::KeySetId& in_keySetId,
|
||||
::aidl::android::hardware::drm::OfflineLicenseState* _aidl_return) {
|
||||
UNUSED(in_keySetId);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getPropertyString(const std::string& in_propertyName,
|
||||
std::string* _aidl_return) {
|
||||
UNUSED(in_propertyName);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getProvisionRequest(
|
||||
const std::string& in_certificateType,
|
||||
const std::string& in_certificateAuthority,
|
||||
::aidl::android::hardware::drm::ProvisionRequest* _aidl_return) {
|
||||
UNUSED(in_certificateType);
|
||||
UNUSED(in_certificateAuthority);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getSecureStop(
|
||||
const ::aidl::android::hardware::drm::SecureStopId& in_secureStopId,
|
||||
::aidl::android::hardware::drm::SecureStop* _aidl_return) {
|
||||
UNUSED(in_secureStopId);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getSecureStopIds(
|
||||
std::vector<::aidl::android::hardware::drm::SecureStopId>* _aidl_return) {
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getSecureStops(
|
||||
std::vector<::aidl::android::hardware::drm::SecureStop>* _aidl_return) {
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::getSecurityLevel(
|
||||
const std::vector<uint8_t>& in_sessionId,
|
||||
::aidl::android::hardware::drm::SecurityLevel* _aidl_return) {
|
||||
UNUSED(in_sessionId);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::provideKeyResponse(
|
||||
const std::vector<uint8_t>& in_scope,
|
||||
const std::vector<uint8_t>& in_response,
|
||||
::aidl::android::hardware::drm::KeySetId* _aidl_return) {
|
||||
UNUSED(in_scope);
|
||||
UNUSED(in_response);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::provideProvisionResponse(
|
||||
const std::vector<uint8_t>& in_response,
|
||||
::aidl::android::hardware::drm::ProvideProvisionResponseResult* _aidl_return) {
|
||||
UNUSED(in_response);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::queryKeyStatus(
|
||||
const std::vector<uint8_t>& in_sessionId,
|
||||
std::vector<::aidl::android::hardware::drm::KeyValue>* _aidl_return) {
|
||||
UNUSED(in_sessionId);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::releaseAllSecureStops() {
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::releaseSecureStop(
|
||||
const ::aidl::android::hardware::drm::SecureStopId& in_secureStopId) {
|
||||
UNUSED(in_secureStopId);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::releaseSecureStops(
|
||||
const ::aidl::android::hardware::drm::OpaqueData& in_ssRelease) {
|
||||
UNUSED(in_ssRelease);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::removeAllSecureStops() {
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::removeKeys(const std::vector<uint8_t>& in_sessionId) {
|
||||
UNUSED(in_sessionId);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::removeOfflineLicense(
|
||||
const ::aidl::android::hardware::drm::KeySetId& in_keySetId) {
|
||||
UNUSED(in_keySetId);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::removeSecureStop(
|
||||
const ::aidl::android::hardware::drm::SecureStopId& in_secureStopId) {
|
||||
UNUSED(in_secureStopId);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::requiresSecureDecoder(
|
||||
const std::string& in_mime,
|
||||
::aidl::android::hardware::drm::SecurityLevel in_level,
|
||||
bool* _aidl_return) {
|
||||
UNUSED(in_mime);
|
||||
UNUSED(in_level);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::restoreKeys(
|
||||
const std::vector<uint8_t>& in_sessionId,
|
||||
const ::aidl::android::hardware::drm::KeySetId& in_keySetId) {
|
||||
UNUSED(in_sessionId);
|
||||
UNUSED(in_keySetId);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::setCipherAlgorithm(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::string& in_algorithm) {
|
||||
UNUSED(in_sessionId);
|
||||
UNUSED(in_algorithm);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::setListener(
|
||||
const std::shared_ptr<::aidl::android::hardware::drm::IDrmPluginListener>&
|
||||
in_listener) {
|
||||
UNUSED(in_listener);
|
||||
return toNdkScopedAStatus(Status::OK);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::setMacAlgorithm(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::string& in_algorithm) {
|
||||
UNUSED(in_sessionId);
|
||||
UNUSED(in_algorithm);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::setPlaybackId(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::string& in_playbackId) {
|
||||
UNUSED(in_sessionId);
|
||||
UNUSED(in_playbackId);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::setPropertyByteArray(const std::string& in_propertyName,
|
||||
const std::vector<uint8_t>& in_value) {
|
||||
UNUSED(in_propertyName);
|
||||
UNUSED(in_value);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::setPropertyString(const std::string& in_propertyName,
|
||||
const std::string& in_value) {
|
||||
UNUSED(in_propertyName);
|
||||
UNUSED(in_value);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::sign(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::vector<uint8_t>& in_keyId,
|
||||
const std::vector<uint8_t>& in_message,
|
||||
std::vector<uint8_t>* _aidl_return) {
|
||||
UNUSED(in_sessionId);
|
||||
UNUSED(in_keyId);
|
||||
UNUSED(in_message);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
::ndk::ScopedAStatus DrmPlugin::verify(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::vector<uint8_t>& in_keyId,
|
||||
const std::vector<uint8_t>& in_message,
|
||||
const std::vector<uint8_t>& in_signature,
|
||||
bool* _aidl_return) {
|
||||
UNUSED(in_sessionId);
|
||||
UNUSED(in_keyId);
|
||||
UNUSED(in_message);
|
||||
UNUSED(in_signature);
|
||||
UNUSED(_aidl_return);
|
||||
return toNdkScopedAStatus(Status::ERROR_DRM_CANNOT_HANDLE);
|
||||
}
|
||||
|
||||
|
||||
} // namespace castkey
|
||||
} // namespace drm
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
} // namespace aidl
|
||||
@@ -1,23 +0,0 @@
|
||||
#define LOG_TAG "castkey-main"
|
||||
|
||||
#include <android-base/logging.h>
|
||||
#include <android/binder_manager.h>
|
||||
#include <android/binder_process.h>
|
||||
#include "CreatePluginFactories.h"
|
||||
|
||||
using ::android::base::InitLogging;
|
||||
using ::android::base::LogdLogger;
|
||||
using ::aidl::android::hardware::drm::castkey::createDrmFactory;
|
||||
using ::aidl::android::hardware::drm::castkey::DrmFactory;
|
||||
|
||||
int main(int /*argc*/, char* argv[]) {
|
||||
InitLogging(argv, LogdLogger());
|
||||
ABinderProcess_setThreadPoolMaxThreadCount(8);
|
||||
std::shared_ptr<DrmFactory> drmFactory = createDrmFactory();
|
||||
const std::string drmInstance = std::string() + DrmFactory::descriptor + "/castkey";
|
||||
binder_status_t status =
|
||||
AServiceManager_addService(drmFactory->asBinder().get(), drmInstance.c_str());
|
||||
CHECK(status == STATUS_OK);
|
||||
ABinderProcess_joinThreadPool();
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
#include "SessionLibrary.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
|
||||
namespace castkeydrm {
|
||||
|
||||
std::mutex SessionLibrary::singleton_lock_;
|
||||
SessionLibrary* SessionLibrary::singleton_ = NULL;
|
||||
|
||||
SessionLibrary* SessionLibrary::get() {
|
||||
std::lock_guard<std::mutex> guard(singleton_lock_);
|
||||
|
||||
if (singleton_ == NULL) {
|
||||
singleton_ = new SessionLibrary();
|
||||
}
|
||||
|
||||
return singleton_;
|
||||
}
|
||||
|
||||
std::vector<uint8_t> SessionLibrary::createSession() {
|
||||
std::lock_guard<std::mutex> guard(session_lock_);
|
||||
|
||||
std::string session_string = std::to_string(next_session_id_);
|
||||
next_session_id_ += 1;
|
||||
sessions_.emplace_back(session_string.begin(), session_string.end());
|
||||
return sessions_.back();
|
||||
}
|
||||
|
||||
void SessionLibrary::closeSession(const std::vector<uint8_t>& session) {
|
||||
std::lock_guard<std::mutex> guard(session_lock_);
|
||||
sessions_.erase(std::remove_if(sessions_.begin(), sessions_.end(),
|
||||
[&session](const std::vector<uint8_t>& e) {
|
||||
return std::equal(e.begin(), e.end(), session.begin());
|
||||
}),
|
||||
sessions_.end());
|
||||
}
|
||||
|
||||
} // namespace castkeydrm
|
||||
@@ -1,6 +0,0 @@
|
||||
service vendor.drm-castkey-service /vendor/bin/hw/android.hardware.drm-service.castkey
|
||||
class hal
|
||||
user media
|
||||
group mediadrm drmrpc
|
||||
ioprio rt 4
|
||||
interface aidl android.hardware.drm.IDrmFactory/castkey
|
||||
@@ -1,48 +0,0 @@
|
||||
#ifndef CASTKEY_TYPES_H_
|
||||
#define CASTKEY_TYPES_H_
|
||||
|
||||
#include <cstdint>
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
namespace castkeydrm {
|
||||
|
||||
const uint8_t kBlockSize = 16; // AES_BLOCK_SIZE;
|
||||
typedef uint8_t KeyId[kBlockSize];
|
||||
typedef uint8_t Iv[kBlockSize];
|
||||
|
||||
typedef std::map<std::vector<uint8_t>, std::vector<uint8_t>> KeyMap;
|
||||
|
||||
#define CASTKEY_DISALLOW_COPY_AND_ASSIGN(TypeName) \
|
||||
TypeName(const TypeName&) = delete; \
|
||||
void operator=(const TypeName&) = delete;
|
||||
|
||||
#define CASTKEY_DISALLOW_COPY_AND_ASSIGN_AND_NEW(TypeName) \
|
||||
TypeName() = delete; \
|
||||
TypeName(const TypeName&) = delete; \
|
||||
void operator=(const TypeName&) = delete;
|
||||
|
||||
enum CdmResponseType : int32_t {
|
||||
OK = 0,
|
||||
ERROR_NO_LICENSE = 1,
|
||||
ERROR_SESSION_NOT_OPENED = 3,
|
||||
ERROR_CANNOT_HANDLE = 4,
|
||||
ERROR_INVALID_STATE = 5,
|
||||
BAD_VALUE = 6,
|
||||
ERROR_DECRYPT = 11,
|
||||
ERROR_UNKNOWN = 12,
|
||||
ERROR_INSUFFICIENT_SECURITY = 13,
|
||||
ERROR_FRAME_TOO_LARGE = 14,
|
||||
ERROR_SESSION_LOST_STATE = 15,
|
||||
ERROR_RESOURCE_CONTENTION = 16,
|
||||
};
|
||||
|
||||
enum CdmKeyType : int32_t {
|
||||
KEY_TYPE_OFFLINE = 0,
|
||||
KEY_TYPE_STREAMING = 1,
|
||||
KEY_TYPE_RELEASE = 2,
|
||||
};
|
||||
|
||||
} // namespace castkeydrm
|
||||
|
||||
#endif // CASTKEY_TYPES_H_
|
||||
@@ -1,20 +0,0 @@
|
||||
#ifndef CREATE_PLUGIN_FACTORIES_H_
|
||||
#define CREATE_PLUGIN_FACTORIES_H_
|
||||
|
||||
#include "DrmFactory.h"
|
||||
|
||||
namespace aidl {
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace drm {
|
||||
namespace castkey {
|
||||
|
||||
std::shared_ptr<DrmFactory> createDrmFactory();
|
||||
|
||||
} // namespace castkey
|
||||
} // namespace drm
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
} // namespace aidl
|
||||
|
||||
#endif // CREATE_PLUGIN_FACTORIES_H_
|
||||
@@ -1,50 +0,0 @@
|
||||
#ifndef DRM_FACTORY_H_
|
||||
#define DRM_FACTORY_H_
|
||||
|
||||
#include <aidl/android/hardware/drm/BnDrmFactory.h>
|
||||
#include <aidl/android/hardware/drm/IDrmFactory.h>
|
||||
#include <aidl/android/hardware/drm/IDrmPlugin.h>
|
||||
#include <aidl/android/hardware/drm/ICryptoPlugin.h>
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "CastKeyTypes.h"
|
||||
|
||||
namespace aidl {
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace drm {
|
||||
namespace castkey {
|
||||
|
||||
struct DrmFactory : public BnDrmFactory {
|
||||
DrmFactory() {};
|
||||
virtual ~DrmFactory() {};
|
||||
|
||||
::ndk::ScopedAStatus createDrmPlugin(
|
||||
const ::aidl::android::hardware::drm::Uuid& in_uuid,
|
||||
const std::string& in_appPackageName,
|
||||
std::shared_ptr<::aidl::android::hardware::drm::IDrmPlugin>* _aidl_return) override;
|
||||
|
||||
::ndk::ScopedAStatus createCryptoPlugin(
|
||||
const ::aidl::android::hardware::drm::Uuid& in_uuid,
|
||||
const std::vector<uint8_t>& in_initData,
|
||||
std::shared_ptr<::aidl::android::hardware::drm::ICryptoPlugin>* _aidl_return) override;
|
||||
|
||||
::ndk::ScopedAStatus getSupportedCryptoSchemes(
|
||||
::aidl::android::hardware::drm::CryptoSchemes* _aidl_return) override;
|
||||
|
||||
binder_status_t dump(int fd, const char** args, uint32_t numArgs) override;
|
||||
|
||||
|
||||
private:
|
||||
CASTKEY_DISALLOW_COPY_AND_ASSIGN(DrmFactory);
|
||||
};
|
||||
|
||||
} // namespace castkey
|
||||
} // namespace drm
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
} // namespace aidl
|
||||
|
||||
#endif // DRM_FACTORIES_H_
|
||||
@@ -1,143 +0,0 @@
|
||||
#ifndef DRM_PLUGIN_H_
|
||||
#define DRM_PLUGIN_H_
|
||||
|
||||
#include <aidl/android/hardware/drm/BnDrmPlugin.h>
|
||||
#include <aidl/android/hardware/drm/IDrmPluginListener.h>
|
||||
#include <aidl/android/hardware/drm/Status.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <map>
|
||||
|
||||
#include <utils/List.h>
|
||||
|
||||
namespace aidl {
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace drm {
|
||||
namespace castkey {
|
||||
|
||||
using namespace castkeydrm;
|
||||
using ::aidl::android::hardware::drm::KeyType;
|
||||
using ::aidl::android::hardware::drm::Status;
|
||||
|
||||
struct DrmPlugin : public BnDrmPlugin {
|
||||
public:
|
||||
explicit DrmPlugin();
|
||||
virtual ~DrmPlugin();
|
||||
|
||||
::ndk::ScopedAStatus closeSession(const std::vector<uint8_t>& in_sessionId) override;
|
||||
::ndk::ScopedAStatus decrypt(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::vector<uint8_t>& in_keyId,
|
||||
const std::vector<uint8_t>& in_input,
|
||||
const std::vector<uint8_t>& in_iv,
|
||||
std::vector<uint8_t>* _aidl_return) override;
|
||||
::ndk::ScopedAStatus encrypt(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::vector<uint8_t>& in_keyId,
|
||||
const std::vector<uint8_t>& in_input,
|
||||
const std::vector<uint8_t>& in_iv,
|
||||
std::vector<uint8_t>* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getHdcpLevels(
|
||||
::aidl::android::hardware::drm::HdcpLevels* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getKeyRequest(
|
||||
const std::vector<uint8_t>& in_scope,
|
||||
const std::vector<uint8_t>& in_initData,
|
||||
const std::string& in_mimeType,
|
||||
::aidl::android::hardware::drm::KeyType in_keyType,
|
||||
const std::vector<::aidl::android::hardware::drm::KeyValue>& in_optionalParameters,
|
||||
::aidl::android::hardware::drm::KeyRequest* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getLogMessages(
|
||||
std::vector<::aidl::android::hardware::drm::LogMessage>* _aidl_return) override;
|
||||
|
||||
::ndk::ScopedAStatus getMetrics(
|
||||
std::vector<::aidl::android::hardware::drm::DrmMetricGroup>* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getNumberOfSessions(
|
||||
::aidl::android::hardware::drm::NumberOfSessions* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getOfflineLicenseKeySetIds(
|
||||
std::vector<::aidl::android::hardware::drm::KeySetId>* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getOfflineLicenseState(
|
||||
const ::aidl::android::hardware::drm::KeySetId& in_keySetId,
|
||||
::aidl::android::hardware::drm::OfflineLicenseState* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getPropertyByteArray(const std::string& in_propertyName,
|
||||
std::vector<uint8_t>* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getPropertyString(const std::string& in_propertyName,
|
||||
std::string* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getProvisionRequest(
|
||||
const std::string& in_certificateType,
|
||||
const std::string& in_certificateAuthority,
|
||||
::aidl::android::hardware::drm::ProvisionRequest* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getSecureStop(
|
||||
const ::aidl::android::hardware::drm::SecureStopId& in_secureStopId,
|
||||
::aidl::android::hardware::drm::SecureStop* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getSecureStopIds(
|
||||
std::vector<::aidl::android::hardware::drm::SecureStopId>* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getSecureStops(
|
||||
std::vector<::aidl::android::hardware::drm::SecureStop>* _aidl_return) override;
|
||||
::ndk::ScopedAStatus getSecurityLevel(
|
||||
const std::vector<uint8_t>& in_sessionId,
|
||||
::aidl::android::hardware::drm::SecurityLevel* _aidl_return) override;
|
||||
::ndk::ScopedAStatus openSession(::aidl::android::hardware::drm::SecurityLevel in_securityLevel,
|
||||
std::vector<uint8_t>* _aidl_return) override;
|
||||
::ndk::ScopedAStatus provideKeyResponse(
|
||||
const std::vector<uint8_t>& in_scope,
|
||||
const std::vector<uint8_t>& in_response,
|
||||
::aidl::android::hardware::drm::KeySetId* _aidl_return) override;
|
||||
::ndk::ScopedAStatus provideProvisionResponse(
|
||||
const std::vector<uint8_t>& in_response,
|
||||
::aidl::android::hardware::drm::ProvideProvisionResponseResult* _aidl_return) override;
|
||||
::ndk::ScopedAStatus queryKeyStatus(
|
||||
const std::vector<uint8_t>& in_sessionId,
|
||||
std::vector<::aidl::android::hardware::drm::KeyValue>* _aidl_return) override;
|
||||
::ndk::ScopedAStatus releaseAllSecureStops() override;
|
||||
::ndk::ScopedAStatus releaseSecureStop(
|
||||
const ::aidl::android::hardware::drm::SecureStopId& in_secureStopId) override;
|
||||
::ndk::ScopedAStatus releaseSecureStops(
|
||||
const ::aidl::android::hardware::drm::OpaqueData& in_ssRelease) override;
|
||||
::ndk::ScopedAStatus removeAllSecureStops() override;
|
||||
::ndk::ScopedAStatus removeKeys(const std::vector<uint8_t>& in_sessionId) override;
|
||||
::ndk::ScopedAStatus removeOfflineLicense(
|
||||
const ::aidl::android::hardware::drm::KeySetId& in_keySetId) override;
|
||||
::ndk::ScopedAStatus removeSecureStop(
|
||||
const ::aidl::android::hardware::drm::SecureStopId& in_secureStopId) override;
|
||||
::ndk::ScopedAStatus requiresSecureDecoder(
|
||||
const std::string& in_mime,
|
||||
::aidl::android::hardware::drm::SecurityLevel in_level,
|
||||
bool* _aidl_return) override;
|
||||
::ndk::ScopedAStatus restoreKeys(
|
||||
const std::vector<uint8_t>& in_sessionId,
|
||||
const ::aidl::android::hardware::drm::KeySetId& in_keySetId) override;
|
||||
::ndk::ScopedAStatus setCipherAlgorithm(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::string& in_algorithm) override;
|
||||
::ndk::ScopedAStatus setListener(
|
||||
const std::shared_ptr<::aidl::android::hardware::drm::IDrmPluginListener>&
|
||||
in_listener) override;
|
||||
::ndk::ScopedAStatus setMacAlgorithm(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::string& in_algorithm) override;
|
||||
::ndk::ScopedAStatus setPlaybackId(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::string& in_playbackId) override;
|
||||
::ndk::ScopedAStatus setPropertyByteArray(const std::string& in_propertyName,
|
||||
const std::vector<uint8_t>& in_value) override;
|
||||
::ndk::ScopedAStatus setPropertyString(const std::string& in_propertyName,
|
||||
const std::string& in_value) override;
|
||||
::ndk::ScopedAStatus sign(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::vector<uint8_t>& in_keyId,
|
||||
const std::vector<uint8_t>& in_message,
|
||||
std::vector<uint8_t>* _aidl_return) override;
|
||||
::ndk::ScopedAStatus signRSA(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::string& in_algorithm,
|
||||
const std::vector<uint8_t>& in_message,
|
||||
const std::vector<uint8_t>& in_wrappedkey,
|
||||
std::vector<uint8_t>* _aidl_return) override;
|
||||
::ndk::ScopedAStatus verify(const std::vector<uint8_t>& in_sessionId,
|
||||
const std::vector<uint8_t>& in_keyId,
|
||||
const std::vector<uint8_t>& in_message,
|
||||
const std::vector<uint8_t>& in_signature,
|
||||
bool* _aidl_return) override;
|
||||
};
|
||||
|
||||
} // namespace castkey
|
||||
} // namespace drm
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
} // namespace aidl
|
||||
|
||||
#endif // DRM_PLUGIN_H_
|
||||
@@ -1,28 +0,0 @@
|
||||
#ifndef SESSION_LIBRARY_H_
|
||||
#define SESSION_LIBRARY_H_
|
||||
|
||||
#include <mutex>
|
||||
#include <vector>
|
||||
|
||||
namespace castkeydrm {
|
||||
|
||||
class SessionLibrary {
|
||||
public:
|
||||
static SessionLibrary* get();
|
||||
std::vector<uint8_t> createSession();
|
||||
void closeSession(const std::vector<uint8_t>& session);
|
||||
|
||||
private:
|
||||
SessionLibrary() : next_session_id_(1) {}
|
||||
|
||||
static std::mutex singleton_lock_;
|
||||
static SessionLibrary* singleton_;
|
||||
|
||||
std::mutex session_lock_;
|
||||
uint32_t next_session_id_;
|
||||
std::vector<std::vector<uint8_t>> sessions_;
|
||||
};
|
||||
|
||||
} // namespace castkeydrm
|
||||
|
||||
#endif // SESSION_LIBRARY_H_
|
||||
@@ -1,44 +0,0 @@
|
||||
#ifndef UTILS_H_
|
||||
#define UTILS_H_
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "SessionLibrary.h"
|
||||
|
||||
#include <android/binder_auto_utils.h>
|
||||
#include "aidl/android/hardware/drm/Status.h"
|
||||
#include "CastKeyTypes.h"
|
||||
|
||||
namespace aidl {
|
||||
namespace android {
|
||||
namespace hardware {
|
||||
namespace drm {
|
||||
namespace castkey {
|
||||
|
||||
inline ::ndk::ScopedAStatus toNdkScopedAStatus(::aidl::android::hardware::drm::Status status,
|
||||
const char* msg = nullptr) {
|
||||
if (Status::OK == status) {
|
||||
return ::ndk::ScopedAStatus::ok();
|
||||
} else {
|
||||
auto err = static_cast<int32_t>(status);
|
||||
if (msg) {
|
||||
return ::ndk::ScopedAStatus::fromServiceSpecificErrorWithMessage(err, msg);
|
||||
} else {
|
||||
return ::ndk::ScopedAStatus::fromServiceSpecificError(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline ::ndk::ScopedAStatus toNdkScopedAStatus(castkeydrm::CdmResponseType res) {
|
||||
return toNdkScopedAStatus(static_cast<::aidl::android::hardware::drm::Status>(res));
|
||||
}
|
||||
|
||||
#define UNUSED(x) (void)(x);
|
||||
|
||||
} // namespace castkey
|
||||
} // namespace drm
|
||||
} // namespace hardware
|
||||
} // namespace android
|
||||
} // namespace aidl
|
||||
|
||||
#endif // UTILS_H_
|
||||
@@ -1,7 +0,0 @@
|
||||
<manifest version="1.0" type="device">
|
||||
<hal format="aidl">
|
||||
<name>android.hardware.drm</name>
|
||||
<version>1</version>
|
||||
<fqname>IDrmFactory/castkey</fqname>
|
||||
</hal>
|
||||
</manifest>
|
||||
@@ -20,7 +20,7 @@ on early-boot
|
||||
wait_for_prop vendor.common.modules.ready 1
|
||||
start insmod_sh_tangorpro
|
||||
|
||||
service insmod_sh_tangorpro /vendor/bin/insmod.sh /vendor/etc/init.insmod.tangorpro.cfg
|
||||
service insmod_sh_tangorpro /vendor/bin/insmod.sh /vendor_dlkm/etc/init.insmod.tangorpro.cfg
|
||||
class main
|
||||
user root
|
||||
group root system
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#
|
||||
# Copyright (C) 2024 The Evolution X Project
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2024 The Evolution X Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Overlays
|
||||
DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay-evolution
|
||||
DEVICE_PACKAGE_OVERLAYS += $(DEVICE_PATH)/overlay-evolution
|
||||
|
||||
@@ -1,40 +1,18 @@
|
||||
#
|
||||
# Copyright (C) 2023 The LineageOS Project
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 The LineageOS Project
|
||||
# SPDX-FileCopyrightText: 2021-2024 The Calyx Institute
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Overlays
|
||||
DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay-lineage
|
||||
DEVICE_PACKAGE_OVERLAYS += $(DEVICE_PATH)/overlay-lineage
|
||||
|
||||
# ANGLE - Almost Native Graphics Layer Engine
|
||||
PRODUCT_PACKAGES += \
|
||||
ANGLE
|
||||
|
||||
# Kernel
|
||||
TARGET_PREBUILT_KERNEL := device/google/tangorpro-kernel/Image.lz4
|
||||
|
||||
# Build necessary packages for vendor
|
||||
|
||||
# Codec2
|
||||
PRODUCT_PACKAGES += \
|
||||
libacryl \
|
||||
libacryl_hdr_plugin \
|
||||
libexynosv4l2
|
||||
|
||||
# GMS
|
||||
WITH_GMS_COMMS_SUITE := false
|
||||
|
||||
# Graphics
|
||||
PRODUCT_PACKAGES += \
|
||||
libEGL_angle \
|
||||
libGLESv1_CM_angle \
|
||||
libGLESv2_angle
|
||||
|
||||
# Identity credential
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.identity_credential.xml
|
||||
|
||||
# RRO
|
||||
PRODUCT_PACKAGES += \
|
||||
GrilRadioCustomizableNoRadio \
|
||||
@@ -44,9 +22,18 @@ PRODUCT_PACKAGES += \
|
||||
TitanSettingsProviderOverlay \
|
||||
TitanSysuiConfigOverlay
|
||||
|
||||
# Build necessary packages for vendor
|
||||
|
||||
# Dumpstate
|
||||
PRODUCT_PACKAGES += \
|
||||
dump_gsc.sh
|
||||
|
||||
# Graphics
|
||||
PRODUCT_PACKAGES += \
|
||||
libEGL_angle \
|
||||
libGLESv1_CM_angle \
|
||||
libGLESv2_angle
|
||||
|
||||
# Sensors
|
||||
PRODUCT_PACKAGES += \
|
||||
sensors.dynamic_sensor_hal
|
||||
|
||||
# Properties
|
||||
TARGET_VENDOR_PROP := $(LOCAL_PATH)/vendor.prop
|
||||
|
||||
@@ -14,28 +14,15 @@
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
TARGET_KERNEL_DIR ?= device/google/tangorpro-kernel
|
||||
TARGET_BOARD_KERNEL_HEADERS := device/google/tangorpro-kernel/kernel-headers
|
||||
TARGET_RECOVERY_DEFAULT_ROTATION := ROTATION_LEFT
|
||||
TARGET_RECOVERY_DEFAULT_TOUCH_ROTATION := $(TARGET_RECOVERY_DEFAULT_ROTATION)
|
||||
|
||||
ifdef RELEASE_GOOGLE_TANGORPRO_KERNEL_VERSION
|
||||
TARGET_LINUX_KERNEL_VERSION := $(RELEASE_GOOGLE_TANGORPRO_KERNEL_VERSION)
|
||||
endif
|
||||
|
||||
ifdef RELEASE_GOOGLE_TANGORPRO_KERNEL_DIR
|
||||
TARGET_KERNEL_DIR := $(RELEASE_GOOGLE_TANGORPRO_KERNEL_DIR)
|
||||
TARGET_BOARD_KERNEL_HEADERS := $(RELEASE_GOOGLE_TANGORPRO_KERNEL_DIR)/kernel-headers
|
||||
endif
|
||||
TARGET_LINUX_KERNEL_VERSION := $(RELEASE_KERNEL_TANGORPRO_VERSION)
|
||||
TARGET_KERNEL_DIR := device/google/tangorpro-kernels/evolution
|
||||
TARGET_BOARD_KERNEL_HEADERS := $(TARGET_KERNEL_DIR)/kernel-headers
|
||||
|
||||
BOARD_WITHOUT_RADIO := true
|
||||
|
||||
$(call inherit-product-if-exists, vendor/google_devices/tangorpro/prebuilts/device-vendor-tangorpro.mk)
|
||||
$(call inherit-product-if-exists, vendor/google_devices/gs201/prebuilts/device-vendor.mk)
|
||||
$(call inherit-product-if-exists, vendor/google_devices/gs201/proprietary/device-vendor.mk)
|
||||
$(call inherit-product-if-exists, vendor/google_devices/tangorpro/proprietary/tangorpro/device-vendor-tangorpro.mk)
|
||||
$(call inherit-product-if-exists, vendor/google_devices/tangorpro/proprietary/WallpapersTangorpro.mk)
|
||||
$(call inherit-product-if-exists, vendor/google_devices/tangorpro/proprietary/device-vendor.mk)
|
||||
|
||||
$(call inherit-product, device/google/tangorpro/uwb/uwb_calibration_country.mk)
|
||||
|
||||
DEVICE_PACKAGE_OVERLAYS += device/google/tangorpro/tangorpro/overlay
|
||||
@@ -62,7 +49,7 @@ DISABLE_TELEPHONY_EUICC := true
|
||||
|
||||
include device/google/tangorpro/audio/tangorpro/audio-tables.mk
|
||||
include device/google/gs201/device-shipping-common.mk
|
||||
include device/google/gs-common/touch/gti/gti.mk
|
||||
include device/google/gs-common/touch/gti/predump_gti.mk
|
||||
include device/google/gs-common/touch/nvt/nvt.mk
|
||||
include device/google/gs-common/led/led.mk
|
||||
include device/google/gs-common/wlan/dump.mk
|
||||
@@ -72,17 +59,13 @@ $(call soong_config_set,lyric,camera_hardware,tangorpro)
|
||||
$(call soong_config_set,lyric,tuning_product,tangorpro)
|
||||
$(call soong_config_set,google3a_config,target_device,tangorpro)
|
||||
|
||||
ifeq ($(filter factory_tangorpro, $(TARGET_PRODUCT)),)
|
||||
include device/google/tangorpro/uwb/uwb_calibration.mk
|
||||
endif
|
||||
|
||||
# Preopt SystemUI
|
||||
PRODUCT_DEXPREOPT_SPEED_APPS += SystemUITitan # For tablet
|
||||
|
||||
# Touch files
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/NVTCapacitiveTouchScreen.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/NVTCapacitiveTouchScreen.idc \
|
||||
device/google/tangorpro/NVTCapacitivePen.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/NVTCapacitivePen.idc
|
||||
device/google/tangorpro/NVTCapacitivePen.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/NVTCapacitivePen.idc \
|
||||
device/google/tangorpro/USI_Stylus.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/USI_Stylus.idc
|
||||
|
||||
# Init files
|
||||
PRODUCT_COPY_FILES += \
|
||||
@@ -92,10 +75,6 @@ PRODUCT_COPY_FILES += \
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.tangorpro.rc
|
||||
|
||||
# insmod files
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/init.insmod.tangorpro.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/init.insmod.tangorpro.cfg
|
||||
|
||||
# Camera
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/media_profiles_tangorpro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml
|
||||
@@ -132,6 +111,10 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
persist.bluetooth.opus.enabled=true
|
||||
|
||||
# Enable Bluetooth AutoOn feature
|
||||
PRODUCT_PRODUCT_PROPERTIES += \
|
||||
bluetooth.server.automatic_turn_on=true
|
||||
|
||||
# Keymaster HAL
|
||||
#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service
|
||||
|
||||
@@ -163,22 +146,14 @@ PRODUCT_PRODUCT_PROPERTIES += \
|
||||
# ro.hardware.gatekeeper=software
|
||||
|
||||
# Fingerprint
|
||||
include device/google/gs101/fingerprint/fpc1540/sw42/fpc1540.mk
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.hardware.fingerprint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.fingerprint.xml
|
||||
|
||||
FPC_MODULE_TYPE=1542_S
|
||||
$(call soong_config_set,fp_hal_feature,pixel_product, product_b)
|
||||
# Fingerprint config
|
||||
include device/google/tangorpro/fingerprint_config.mk
|
||||
|
||||
# Trusty liboemcrypto.so
|
||||
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/tangorpro/prebuilts
|
||||
ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
|
||||
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/tangorpro/prebuilts/trusty/24Q1
|
||||
else ifneq (,$(filter AP2% AP3%,$(RELEASE_PLATFORM_VERSION)))
|
||||
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/tangorpro/prebuilts/trusty/24Q2
|
||||
else
|
||||
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/tangorpro/prebuilts/trusty/trunk
|
||||
endif
|
||||
|
||||
# Wifi SAP Interface Name
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.vendor.wifi.sap.interface=wlan1
|
||||
@@ -208,10 +183,6 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
|
||||
PRODUCT_COPY_FILES += \
|
||||
frameworks/native/data/etc/android.software.telecom.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.telecom.xml
|
||||
|
||||
# Trusty libbinder_trusty_paidl.so and libcast_auth.so
|
||||
PRODUCT_SOONG_NAMESPACES += \
|
||||
vendor/google/trusty/common
|
||||
|
||||
# Cast auth
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/cast_auth/tangor_ica.crt:$(TARGET_COPY_OUT_VENDOR)/etc/cert-chain.crt
|
||||
@@ -219,15 +190,6 @@ PRODUCT_COPY_FILES += \
|
||||
PRODUCT_PACKAGES += \
|
||||
libcast_auth
|
||||
|
||||
ifneq (,$(filter eng, $(TARGET_BUILD_VARIANT)))
|
||||
PRODUCT_PACKAGES_DEBUG += \
|
||||
test_cast_auth
|
||||
|
||||
# USI stylus test tool
|
||||
PRODUCT_PACKAGES_DEBUG += \
|
||||
usi_test
|
||||
endif
|
||||
|
||||
# Lights HAL
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.lights-service.tangorpro
|
||||
@@ -264,14 +226,6 @@ PRODUCT_VENDOR_PROPERTIES += \
|
||||
persist.vendor.camera.increase_thread_priority_nodes_stop=true \
|
||||
persist.vendor.camera.debug.bypass_csi_link_crc_error=true
|
||||
|
||||
# Trusty libbinder_trusty_paidl.so and libcast_auth.so
|
||||
PRODUCT_SOONG_NAMESPACES += \
|
||||
vendor/lib64
|
||||
|
||||
# CastKey Drm plugin modules
|
||||
PRODUCT_PACKAGES += \
|
||||
android.hardware.drm-service.castkey
|
||||
|
||||
# MIPI Coex Configs
|
||||
PRODUCT_COPY_FILES += \
|
||||
device/google/tangorpro/radio/tangor_camera_front_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/camera_front_mipi_coex_table.csv \
|
||||
@@ -285,12 +239,32 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||
persist.vendor.camera.adjust_backend_min_freq_for_1p_front_video_1080p_30fps=1 \
|
||||
persist.vendor.camera.bypass_sensor_binning_resolution_condition=1 \
|
||||
persist.vendor.camera.extended_launch_boost=1 \
|
||||
persist.vendor.camera.raise_buf_allocation_priority=1
|
||||
persist.vendor.camera.raise_buf_allocation_priority=1 \
|
||||
camera.enable_landscape_to_portrait=true
|
||||
|
||||
# Enable camera exif model/make reporting
|
||||
PRODUCT_VENDOR_PROPERTIES += \
|
||||
persist.vendor.camera.exif_reveal_make_model=true
|
||||
|
||||
# Set device family property for SMR
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.build.device_family=T6P
|
||||
|
||||
# Set build properties for SMR builds
|
||||
ifeq ($(RELEASE_IS_SMR), true)
|
||||
ifneq (,$(RELEASE_BASE_OS_TANGORPRO))
|
||||
PRODUCT_BASE_OS := $(RELEASE_BASE_OS_TANGORPRO)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Set build properties for EMR builds
|
||||
ifeq ($(RELEASE_IS_EMR), true)
|
||||
ifneq (,$(RELEASE_BASE_OS_TANGORPRO))
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.build.version.emergency_base_os=$(RELEASE_BASE_OS_TANGORPRO)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Audio
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.audio.multi_usb_mode=true
|
||||
@@ -299,14 +273,11 @@ PRODUCT_PROPERTY_OVERRIDES += \
|
||||
PRODUCT_PACKAGES += \
|
||||
audio_apmg3_aoc
|
||||
|
||||
PRODUCT_SOONG_NAMESPACES += device/google/tangorpro/audio/tangorpro/prebuilt/libspeechenhancer
|
||||
|
||||
#Audio
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
persist.vendor.audio.speech_enhancement.enable=1
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
libspeechenhancer \
|
||||
audio_speech_enhancer_aoc
|
||||
|
||||
# SKU specific RROs
|
||||
|
||||
@@ -4,8 +4,13 @@
|
||||
"target_path": "device/google/gs201"
|
||||
},
|
||||
{
|
||||
"repository": "device/google/tangorpro-kernel",
|
||||
"target_path": "device/google/tangorpro-kernel",
|
||||
"remote": "aosp-tangorpro"
|
||||
"remote": "evo-tensor",
|
||||
"repository": "device_google_tangorpro-kernels_evolution",
|
||||
"target_path": "device/google/tangorpro-kernels/evolution"
|
||||
},
|
||||
{
|
||||
"remote": "evo-tensor",
|
||||
"repository": "vendor_google_tangorpro",
|
||||
"target_path": "vendor/google/tangorpro"
|
||||
}
|
||||
]
|
||||
|
||||
13
extract-files.py
Executable file
13
extract-files.py
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2024 The LineageOS Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
MY_DIR="$(cd "$(dirname "${0}")"; pwd -P)"
|
||||
|
||||
pushd "${MY_DIR}/tangorpro"
|
||||
./extract-files.py $@
|
||||
popd
|
||||
120
extract-files.sh
120
extract-files.sh
@@ -1,120 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2016 The CyanogenMod Project
|
||||
# SPDX-FileCopyrightText: 2017-2024 The LineageOS Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
DEVICE=tangorpro
|
||||
VENDOR=google
|
||||
|
||||
# Load extract_utils and do some sanity checks
|
||||
MY_DIR="${BASH_SOURCE%/*}"
|
||||
if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
|
||||
|
||||
ANDROID_ROOT="${MY_DIR}/../../.."
|
||||
|
||||
export TARGET_ENABLE_CHECKELF=true
|
||||
|
||||
# If XML files don't have comments before the XML header, use this flag
|
||||
# Can still be used with broken XML files by using blob_fixup
|
||||
export TARGET_DISABLE_XML_FIXING=true
|
||||
|
||||
HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
|
||||
if [ ! -f "${HELPER}" ]; then
|
||||
echo "Unable to find helper script at ${HELPER}"
|
||||
exit 1
|
||||
fi
|
||||
source "${HELPER}"
|
||||
|
||||
# Default to sanitizing the vendor folder before extraction
|
||||
CLEAN_VENDOR=true
|
||||
|
||||
ONLY_FIRMWARE=
|
||||
KANG=
|
||||
SECTION=
|
||||
VENDOR_SKIP_FILES=()
|
||||
|
||||
while [ "${#}" -gt 0 ]; do
|
||||
case "${1}" in
|
||||
--only-firmware)
|
||||
ONLY_FIRMWARE=true
|
||||
;;
|
||||
-n | --no-cleanup)
|
||||
CLEAN_VENDOR=false
|
||||
;;
|
||||
-k | --kang)
|
||||
KANG="--kang"
|
||||
;;
|
||||
-s | --section)
|
||||
SECTION="${2}"
|
||||
shift
|
||||
CLEAN_VENDOR=false
|
||||
;;
|
||||
*)
|
||||
SRC="${1}"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if [ -z "${SRC}" ]; then
|
||||
SRC="adb"
|
||||
fi
|
||||
|
||||
function prepare_firmware() {
|
||||
if [ "${SRC}" != "adb" ]; then
|
||||
bash "${ANDROID_ROOT}"/lineage/scripts/pixel/prepare-firmware.sh "${DEVICE}" "${SRC}"
|
||||
fi
|
||||
}
|
||||
|
||||
# Initialize the helper
|
||||
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}"
|
||||
|
||||
if [ -z "${ONLY_FIRMWARE}" ]; then
|
||||
extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}"
|
||||
|
||||
readarray -t VENDOR_SKIP_FILES < <(cat "${MY_DIR}/skip-files-vendor.txt" | sed -E "/^[[:blank:]]*(#|$)/d")
|
||||
VENDOR_TXT="${MY_DIR}/proprietary-files-vendor.txt"
|
||||
generate_prop_list_from_image "vendor.img" "${VENDOR_TXT}" VENDOR_SKIP_FILES
|
||||
|
||||
# libExynosC2*Dec & libExynosC2*Enc depend on libacryl & libexynosv4l2, which are gnu makefile targets
|
||||
set_disable_checkelf "vendor/lib/libExynosC2H263Dec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib/libExynosC2H263Enc.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib/libExynosC2H264Dec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib/libExynosC2H264Enc.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib/libExynosC2HevcDec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib/libExynosC2HevcEnc.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib/libExynosC2Mpeg4Dec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib/libExynosC2Mpeg4Enc.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib/libExynosC2Vp8Dec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib/libExynosC2Vp8Enc.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib/libExynosC2Vp9Dec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib/libExynosC2Vp9Enc.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2H263Dec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2H263Enc.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2H264Dec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2H264Enc.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2HevcDec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2HevcEnc.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2Mpeg4Dec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2Mpeg4Enc.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2Vp8Dec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2Vp8Enc.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2Vp9Dec.so" "${VENDOR_TXT}"
|
||||
set_disable_checkelf "vendor/lib64/libExynosC2Vp9Enc.so" "${VENDOR_TXT}"
|
||||
|
||||
set_module_suffix "vendor/lib/com.google.edgetpu_app_service-V3-ndk.so" "-vendor" "${VENDOR_TXT}"
|
||||
set_module_suffix "vendor/lib64/com.google.edgetpu_app_service-V3-ndk.so" "-vendor" "${VENDOR_TXT}"
|
||||
set_module_suffix "vendor/lib64/com.google.edgetpu_vendor_service-V2-ndk.so" "-vendor" "${VENDOR_TXT}"
|
||||
|
||||
extract "${MY_DIR}/proprietary-files-vendor.txt" "${SRC}" "${KANG}" --section "${SECTION}"
|
||||
fi
|
||||
|
||||
if [ -z "${SECTION}" ]; then
|
||||
extract_firmware "${MY_DIR}/proprietary-firmware.txt" "${SRC}"
|
||||
fi
|
||||
|
||||
"${MY_DIR}/setup-makefiles.sh"
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Copyright 2023 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
source ../../../common/clear-factory-images-variables.sh
|
||||
BUILD=9452078
|
||||
DEVICE=tangorpro
|
||||
PRODUCT=tangorpro
|
||||
VERSION=td2a.230104.001
|
||||
SRCPREFIX=signed-
|
||||
BOOTLOADER=tangorpro-1.0-9434949
|
||||
source ../../../common/generate-factory-images-common.sh
|
||||
@@ -1,44 +0,0 @@
|
||||
#
|
||||
# Copyright 2021 The Android Open-Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
TARGET_LINUX_KERNEL_VERSION := 5.10
|
||||
|
||||
$(call inherit-product, device/google/gs201/factory_common.mk)
|
||||
$(call inherit-product, device/google/tangorpro/device-tangorpro.mk)
|
||||
include device/google/tangorpro/audio/tangorpro/factory-audio-tables.mk
|
||||
|
||||
PRODUCT_NAME := factory_tangorpro
|
||||
PRODUCT_DEVICE := tangorpro
|
||||
PRODUCT_MODEL := Factory build on Tangorpro
|
||||
PRODUCT_BRAND := Android
|
||||
PRODUCT_MANUFACTURER := Google
|
||||
|
||||
# default BDADDR for EVB only
|
||||
PRODUCT_PROPERTY_OVERRIDES += \
|
||||
ro.vendor.bluetooth.evb_bdaddr="22:22:22:33:44:55"
|
||||
|
||||
# Factory binaries of camera
|
||||
PRODUCT_PACKAGES += fatp_imx787_hat_tool
|
||||
|
||||
# Factory binaries of wifi
|
||||
PRODUCT_PACKAGES += myftm
|
||||
|
||||
# Tool for installing Cast keybox
|
||||
PRODUCT_PACKAGES_DEBUG += \
|
||||
CastInstallKeybox
|
||||
|
||||
# Display CABC for factory setting
|
||||
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.cabc.supported=0
|
||||
@@ -1,10 +1,4 @@
|
||||
# Factory build, use HIDL hal & extension so that we can use Test tool
|
||||
ifneq ( ,$(findstring factory, $(TARGET_PRODUCT)))
|
||||
GOOGLE_CONFIG_FP_STATUS=1
|
||||
FPC_CONFIG_TRUSTY_CLEAN_TA=1
|
||||
else
|
||||
# Non factory build, use fingerprint AIDL version
|
||||
GOOGLE_CONFIG_POWER_NODE=/dev/input/event1
|
||||
GOOGLE_CONFIG_FP_STATUS=1
|
||||
GOOGLE_CONFIG_TOUCH_TO_UNLOCK_ANYTIME=1
|
||||
endif
|
||||
|
||||
86
gps.xml.l10
86
gps.xml.l10
@@ -1,86 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<glgps xmlns="http://www.glpals.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.glpals.com/ glconfig.xsd" >
|
||||
<hal
|
||||
PortName="/dev/ttyBCM"
|
||||
BaudRate="921600"
|
||||
GpioNStdbyPath="/sys/devices/platform/10940000.spi/spi_master/spi5/spi5.0/nstandby"
|
||||
CustGpioDelayMs="250"
|
||||
LogEnabled="true"
|
||||
Log="JAVA"
|
||||
SecondaryConfigPath="/data/vendor/gps/overlay/gps_overlay.xml"
|
||||
LogDirectory="/sdcard/gps/broadcom/storage/"
|
||||
CtrlPipe="/data/vendor/gps/glgpsctrl"
|
||||
NmeaOutName="/data/vendor/gps/nmea_out"
|
||||
|
||||
acSuplServer="supl.google.com"
|
||||
SuplPort="7275"
|
||||
SuplLogEnable="true"
|
||||
SuplLogFullName="/data/vendor/gps/suplflow.txt"
|
||||
tlsEnable="true"
|
||||
|
||||
SuplSslMethod="SSLv23_NO_TLSv1_2"
|
||||
SuplEnable="true"
|
||||
SuplUseApn="true"
|
||||
SuplTlsCertDirPath="/etc/security/cacerts"
|
||||
SuplTlsCertPath="/vendor/etc/gnss/gps.cer"
|
||||
SuplUT1Seconds="20"
|
||||
SuplUT2Seconds="20"
|
||||
SuplUT3Seconds="20"
|
||||
TcpConnectionTimeout="20"
|
||||
SuplLppCapable="true"
|
||||
SuplEcidCapable="true"
|
||||
SuplVersion="2"
|
||||
SuplMinorVersion="0"
|
||||
SuplOtdoaCapable="true"
|
||||
SuplGlonassCapable = "true"
|
||||
SuplGalileoCapable = "true"
|
||||
SuplBdsCapable = "true"
|
||||
SuplMgpsCapable = "true"
|
||||
|
||||
RtoEnable="true"
|
||||
RtiEnable="true"
|
||||
HttpSyncLto="true"
|
||||
LtoFileName="lto2.dat"
|
||||
LtoDir="/data/vendor/gps/"
|
||||
LtoSyncThresholdDays="1"
|
||||
|
||||
GnssYearOfHardware="2020"
|
||||
CpGuardTimeSec="1"
|
||||
CpLppGuardTimeSec="1"
|
||||
IgnoreInjectedSystemTime="true"
|
||||
|
||||
AttributionAppPkgName="com.google.android.carrierlocation"
|
||||
|
||||
AssertEnabled="true"
|
||||
CpLppeCancelDbhOnAgnssProvideLoc="true"
|
||||
CpLppeUseAgnssLocForEmptyDbh="true"
|
||||
/>
|
||||
|
||||
<gll
|
||||
LogPriMask="LOG_INFO"
|
||||
LogFacMask="LOG_NMEA | LOG_GLLIOS | LOG_GLLAPI"
|
||||
FrqPlan="FRQ_PLAN_26MHZ_2PPM_49_152MHZ_300PPB"
|
||||
MultiCarrRFMode="GL_MULTI_CARR_RF_MODE_L1"
|
||||
MultiCarrLnaMask="L1_EXT_ON"
|
||||
RfType="GL_RF_4776_BRCM"
|
||||
EnableFilteringForLTEB13="true"
|
||||
|
||||
WarmStandbyTimeout1Seconds="10"
|
||||
WarmStandbyTimeout2Seconds="15"
|
||||
|
||||
EnableGnssPropagateInStandby="true"
|
||||
|
||||
RfPathLossDb_Ap="4"
|
||||
RfPathLossDb_Cp="4"
|
||||
OnChipGpsCarrierType="3,2,3,3,2,3,2,3,3,3,1,2,1,3,2,1,2,3,1,1,1,1,3,3,3,3,3,1,2,3,2,3"
|
||||
|
||||
EnableOnChipStopNotification="2"
|
||||
PowerMode="3"
|
||||
/>
|
||||
|
||||
<gll_features
|
||||
EnableNicAutoSwitch="true"
|
||||
/>
|
||||
|
||||
</glgps>
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<glgps xmlns="http://www.glpals.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.glpals.com/ glconfig.xsd" >
|
||||
<hal
|
||||
PortName="/dev/ttyBCM"
|
||||
BaudRate="921600"
|
||||
GpioNStdbyPath="/sys/devices/platform/10940000.spi/spi_master/spi5/spi5.0/nstandby"
|
||||
CustGpioDelayMs="250"
|
||||
LogEnabled="false"
|
||||
Log="JAVA"
|
||||
LogDirectory="/sdcard/gps/broadcom/storage/"
|
||||
CtrlPipe="/data/vendor/gps/glgpsctrl"
|
||||
NmeaOutName="/data/vendor/gps/nmea_out"
|
||||
|
||||
acSuplServer="supl.google.com"
|
||||
SuplPort="7275"
|
||||
SuplLogEnable="false"
|
||||
SuplLogFullName="/data/vendor/gps/suplflow.txt"
|
||||
tlsEnable="true"
|
||||
|
||||
SuplSslMethod="SSLv23_NO_TLSv1_2"
|
||||
SuplEnable="true"
|
||||
SuplUseApn="true"
|
||||
SuplTlsCertDirPath="/etc/security/cacerts"
|
||||
SuplTlsCertPath="/vendor/etc/gnss/gps.cer"
|
||||
SuplUT1Seconds="20"
|
||||
SuplUT2Seconds="20"
|
||||
SuplUT3Seconds="20"
|
||||
TcpConnectionTimeout="20"
|
||||
SuplLppCapable="true"
|
||||
SuplEcidCapable="true"
|
||||
SuplVersion="2"
|
||||
SuplMinorVersion="0"
|
||||
SuplOtdoaCapable="true"
|
||||
SuplGlonassCapable = "true"
|
||||
SuplGalileoCapable = "true"
|
||||
SuplBdsCapable = "true"
|
||||
SuplMgpsCapable = "true"
|
||||
|
||||
RtoEnable="true"
|
||||
RtiEnable="true"
|
||||
HttpSyncLto="true"
|
||||
LtoFileName="lto2.dat"
|
||||
LtoDir="/data/vendor/gps/"
|
||||
LtoSyncThresholdDays="1"
|
||||
|
||||
GnssYearOfHardware="2020"
|
||||
CpGuardTimeSec="1"
|
||||
CpLppGuardTimeSec="1"
|
||||
IgnoreInjectedSystemTime="true"
|
||||
|
||||
AttributionAppPkgName="com.google.android.carrierlocation"
|
||||
|
||||
AssertEnabled="false"
|
||||
CpLppeCancelDbhOnAgnssProvideLoc="true"
|
||||
CpLppeUseAgnssLocForEmptyDbh="true"
|
||||
/>
|
||||
|
||||
<gll
|
||||
LogPriMask="LOG_INFO"
|
||||
LogFacMask="LOG_NMEA | LOG_GLLIOS | LOG_GLLAPI"
|
||||
FrqPlan="FRQ_PLAN_26MHZ_2PPM_49_152MHZ_300PPB"
|
||||
MultiCarrRFMode="GL_MULTI_CARR_RF_MODE_L1"
|
||||
MultiCarrLnaMask="L1_EXT_ON"
|
||||
RfType="GL_RF_4776_BRCM"
|
||||
EnableFilteringForLTEB13="true"
|
||||
|
||||
WarmStandbyTimeout1Seconds="10"
|
||||
WarmStandbyTimeout2Seconds="15"
|
||||
|
||||
EnableGnssPropagateInStandby="true"
|
||||
|
||||
RfPathLossDb_Ap="4"
|
||||
RfPathLossDb_Cp="4"
|
||||
OnChipGpsCarrierType="3,2,3,3,2,3,2,3,3,3,1,2,1,3,2,1,2,3,1,1,1,1,3,3,3,3,3,1,2,3,2,3"
|
||||
|
||||
EnableOnChipStopNotification="false"
|
||||
PowerMode="3"
|
||||
/>
|
||||
|
||||
<gll_features
|
||||
EnableNicAutoSwitch="true"
|
||||
/>
|
||||
|
||||
</glgps>
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
##########################################################
|
||||
# init.insmod.tangorpro.cfg #
|
||||
# This file contains tangorpro specific kernel modules #
|
||||
# to load at init time by init.insmod.sh script #
|
||||
##########################################################
|
||||
|
||||
# Load device specific kernel modules
|
||||
# Modules here will be loaded *after* all common modules
|
||||
modprobe|synadhd.ko
|
||||
modprobe|snd-soc-cs35l41-spi.ko
|
||||
modprobe|nvt_touch.ko
|
||||
|
||||
# All device specific modules loaded
|
||||
setprop|vendor.device.modules.ready
|
||||
setprop|vendor.all.modules.ready
|
||||
setprop|vendor.all.devices.ready
|
||||
@@ -1,33 +1,35 @@
|
||||
#
|
||||
# Copyright (C) 2023 The LineageOS Project
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 The LineageOS Project
|
||||
# SPDX-FileCopyrightText: 2021-2024 The Calyx Institute
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Inherit some common Evolution X stuff.
|
||||
# Inherit some common Evolution X stuff
|
||||
TARGET_DISABLE_EPPE := true
|
||||
$(call inherit-product, vendor/lineage/config/common_full_tablet_wifionly.mk)
|
||||
|
||||
# Inherit device configuration
|
||||
$(call inherit-product, device/google/tangorpro/aosp_tangorpro.mk)
|
||||
DEVICE_CODENAME := tangorpro
|
||||
DEVICE_PATH := device/google/tangorpro
|
||||
VENDOR_PATH := vendor/google/tangorpro
|
||||
$(call inherit-product, $(DEVICE_PATH)/aosp_$(DEVICE_CODENAME).mk)
|
||||
$(call inherit-product, device/google/gs201/lineage_common.mk)
|
||||
$(call inherit-product, device/google/gs201/evolution_common.mk)
|
||||
$(call inherit-product, device/google/tangorpro/device-lineage.mk)
|
||||
$(call inherit-product, device/google/tangorpro/device-evolution.mk)
|
||||
$(call inherit-product, $(DEVICE_PATH)/$(DEVICE_CODENAME)/device-lineage.mk)
|
||||
$(call inherit-product, $(DEVICE_PATH)/$(DEVICE_CODENAME)/device-evolution.mk)
|
||||
|
||||
# Device identifier. This must come after all inclusions
|
||||
PRODUCT_BRAND := google
|
||||
PRODUCT_MODEL := Pixel Tablet
|
||||
PRODUCT_NAME := lineage_tangorpro
|
||||
PRODUCT_NAME := lineage_$(DEVICE_CODENAME)
|
||||
|
||||
# Boot animation
|
||||
TARGET_SCREEN_HEIGHT := 1600
|
||||
TARGET_SCREEN_WIDTH := 2560
|
||||
|
||||
PRODUCT_BUILD_PROP_OVERRIDES += \
|
||||
TARGET_PRODUCT=tangorpro \
|
||||
PRIVATE_BUILD_DESC="tangorpro-user 14 AP2A.240905.003 12231197 release-keys"
|
||||
BuildDesc="tangorpro-user 16 BP2A.250805.005 13691446 release-keys" \
|
||||
BuildFingerprint=google/tangorpro/tangorpro:16/BP2A.250805.005/13691446:user/release-keys \
|
||||
DeviceProduct=$(DEVICE_CODENAME)
|
||||
|
||||
BUILD_FINGERPRINT := google/tangorpro/tangorpro:14/AP2A.240905.003/12231197:user/release-keys
|
||||
|
||||
$(call inherit-product, vendor/google/tangorpro/tangorpro-vendor.mk)
|
||||
$(call inherit-product, $(VENDOR_PATH)/$(DEVICE_CODENAME)-vendor.mk)
|
||||
|
||||
134
manifest.xml
134
manifest.xml
@@ -1,134 +0,0 @@
|
||||
<manifest version="1.0" type="device" target-level="5">
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.audio</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>7.0</version>
|
||||
<interface>
|
||||
<name>IDevicesFactory</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.audio.effect</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>7.0</version>
|
||||
<interface>
|
||||
<name>IEffectsFactory</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.soundtrigger</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.3</version>
|
||||
<interface>
|
||||
<name>ISoundTriggerHw</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.media.omx</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>IOmx</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
<interface>
|
||||
<name>IOmxStore</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.allocator</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>4.0</version>
|
||||
<interface>
|
||||
<name>IAllocator</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.mapper</name>
|
||||
<transport arch="32+64">passthrough</transport>
|
||||
<version>4.0</version>
|
||||
<interface>
|
||||
<name>IMapper</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.graphics.composer</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.4</version>
|
||||
<interface>
|
||||
<name>IComposer</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.renderscript</name>
|
||||
<transport arch="32+64">passthrough</transport>
|
||||
<version>1.0</version>
|
||||
<interface>
|
||||
<name>IDevice</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format = "hidl">
|
||||
<name>android.hardware.dumpstate</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.1</version>
|
||||
<interface>
|
||||
<name>IDumpstateDevice</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.bluetooth.audio</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.1</version>
|
||||
<interface>
|
||||
<name>IBluetoothAudioProvidersFactory</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.boot</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.2::IBootControl/default</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.neuralnetworks</name>
|
||||
<transport>hwbinder</transport>
|
||||
<fqname>@1.3::IDevice/google-edgetpu</fqname>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>android.hardware.health</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.1</version>
|
||||
<interface>
|
||||
<name>IHealth</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>hardware.google.bluetooth.sar</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>1.1</version>
|
||||
<interface>
|
||||
<name>IBluetoothSar</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<hal format="hidl">
|
||||
<name>vendor.google.whitechapel.audio.audioext</name>
|
||||
<transport>hwbinder</transport>
|
||||
<version>2.0</version>
|
||||
<interface>
|
||||
<name>IAudioExt</name>
|
||||
<instance>default</instance>
|
||||
</interface>
|
||||
</hal>
|
||||
<kernel target-level="6"/>
|
||||
</manifest>
|
||||
2
modules.blocklist.vendor_kernel_boot
Normal file
2
modules.blocklist.vendor_kernel_boot
Normal file
@@ -0,0 +1,2 @@
|
||||
blocklist goog_touch_interface.ko
|
||||
blocklist nvt_touch.ko
|
||||
2
modules.load.vendor_kernel_boot
Normal file
2
modules.load.vendor_kernel_boot
Normal file
@@ -0,0 +1,2 @@
|
||||
extra/goog_touch_interface.ko
|
||||
extra/nvt_touch.ko
|
||||
@@ -18,6 +18,12 @@
|
||||
-->
|
||||
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<!-- Whether per-app fullscreen override option is allowed in user aspect ratio settings -->
|
||||
<bool name="config_appCompatUserAppAspectRatioFullscreenIsEnabled">true</bool>
|
||||
|
||||
<!-- Whether per-app user aspect ratio override settings is enabled -->
|
||||
<bool name="config_appCompatUserAppAspectRatioSettingsIsEnabled">true</bool>
|
||||
|
||||
<!-- Control whether being in the desk dock should enable accelerometer
|
||||
based screen orientation. This defaults to true because it is
|
||||
common for desk docks to be sold in a variety of form factors
|
||||
|
||||
300
powerhint.json
300
powerhint.json
@@ -212,6 +212,55 @@
|
||||
],
|
||||
"ResetOnInit": true
|
||||
},
|
||||
|
||||
{
|
||||
"Name": "TAUclampMinOnNiceEnable",
|
||||
"Path": "/proc/vendor_sched/groups/ta/uclamp_min_on_nice_enable",
|
||||
"Values": [
|
||||
"1",
|
||||
"0"
|
||||
],
|
||||
"ResetOnInit": true
|
||||
},
|
||||
{
|
||||
"Name": "TAUclampMinOnNiceHighValue",
|
||||
"Path": "/proc/vendor_sched/groups/ta/uclamp_min_on_nice_high_value",
|
||||
"Values": [
|
||||
"765",
|
||||
"0"
|
||||
],
|
||||
"ResetOnInit": true
|
||||
},
|
||||
{
|
||||
"Name": "TAUclampMinOnNiceMidValue",
|
||||
"Path": "/proc/vendor_sched/groups/ta/uclamp_min_on_nice_mid_value",
|
||||
"Values": [
|
||||
"600",
|
||||
"590",
|
||||
"0"
|
||||
],
|
||||
"ResetOnInit": true
|
||||
},
|
||||
{
|
||||
"Name": "TAUclampMinOnNiceHighPrio",
|
||||
"Path": "/proc/vendor_sched/groups/ta/uclamp_min_on_nice_high_prio",
|
||||
"Values": [
|
||||
"110",
|
||||
"119",
|
||||
"120"
|
||||
],
|
||||
"ResetOnInit": true
|
||||
},
|
||||
{
|
||||
"Name": "TAUclampMinOnNiceMidPrio",
|
||||
"Path": "/proc/vendor_sched/groups/ta/uclamp_min_on_nice_mid_prio",
|
||||
"Values": [
|
||||
"128",
|
||||
"139",
|
||||
"130"
|
||||
],
|
||||
"ResetOnInit": true
|
||||
},
|
||||
{
|
||||
"Name": "FGUClampBoost",
|
||||
"Path": "/proc/vendor_sched/groups/fg/uclamp_min",
|
||||
@@ -304,6 +353,35 @@
|
||||
],
|
||||
"ResetOnInit": true
|
||||
},
|
||||
{
|
||||
"Name": "TAAutoPreferFit",
|
||||
"Path": "/proc/vendor_sched/groups/ta/auto_prefer_fit",
|
||||
"Values": [
|
||||
"1",
|
||||
"0"
|
||||
],
|
||||
"ResetOnInit": true
|
||||
},
|
||||
{
|
||||
"Name": "TAPreferredIdleMaskMid",
|
||||
"Path": "/proc/vendor_sched/groups/ta/preferred_idle_mask_mid",
|
||||
"Values": [
|
||||
"0x3f",
|
||||
"0xf0",
|
||||
"0xff"
|
||||
],
|
||||
"ResetOnInit": true
|
||||
},
|
||||
{
|
||||
"Name": "TAPreferredIdleMaskLow",
|
||||
"Path": "/proc/vendor_sched/groups/ta/preferred_idle_mask_low",
|
||||
"Values": [
|
||||
"0x3f",
|
||||
"0xf0",
|
||||
"0xff"
|
||||
],
|
||||
"ResetOnInit": true
|
||||
},
|
||||
{
|
||||
"Name": "FGPreferIdle",
|
||||
"Path": "/proc/vendor_sched/groups/fg/prefer_idle",
|
||||
@@ -332,14 +410,6 @@
|
||||
],
|
||||
"ResetOnInit": true
|
||||
},
|
||||
{
|
||||
"Name": "NewlyIdleBalancer",
|
||||
"Path": "/proc/vendor_sched/idle_balancer",
|
||||
"Values": [
|
||||
"0",
|
||||
"1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"Name": "DisplayWakeup",
|
||||
"Path": "/sys/devices/platform/1c240000.drmdecon/early_wakeup",
|
||||
@@ -652,6 +722,16 @@
|
||||
],
|
||||
"DefaultIndex": 0,
|
||||
"ResetOnInit": true
|
||||
},
|
||||
{
|
||||
"Name": "SYSTEM_UI_ADPF_PROFILES",
|
||||
"Path": "<AdpfConfig>:SYSTEM_UI",
|
||||
"Values": [
|
||||
"SYSTEM_UI_PROFILE"
|
||||
],
|
||||
"DefaultIndex": 0,
|
||||
"ResetOnInit": true,
|
||||
"Type": "Event"
|
||||
}
|
||||
],
|
||||
"Actions": [
|
||||
@@ -763,6 +843,54 @@
|
||||
"Duration": 5000,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH",
|
||||
"Node": "TAAutoPreferFit",
|
||||
"Duration": 5000,
|
||||
"Value": "1"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH",
|
||||
"Node": "TAPreferredIdleMaskMid",
|
||||
"Duration": 5000,
|
||||
"Value": "0x3f"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH",
|
||||
"Node": "TAPreferredIdleMaskLow",
|
||||
"Duration": 5000,
|
||||
"Value": "0x3f"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH",
|
||||
"Node": "TAUclampMinOnNiceEnable",
|
||||
"Duration": 5000,
|
||||
"Value": "1"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH",
|
||||
"Node": "TAUclampMinOnNiceHighValue",
|
||||
"Duration": 5000,
|
||||
"Value": "765"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH",
|
||||
"Node": "TAUclampMinOnNiceHighPrio",
|
||||
"Duration": 5000,
|
||||
"Value": "110"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH",
|
||||
"Node": "TAUclampMinOnNiceMidValue",
|
||||
"Duration": 5000,
|
||||
"Value": "590"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH",
|
||||
"Node": "TAUclampMinOnNiceMidPrio",
|
||||
"Duration": 5000,
|
||||
"Value": "139"
|
||||
},
|
||||
{
|
||||
"PowerHint": "LAUNCH",
|
||||
"Type": "DoHint",
|
||||
@@ -863,6 +991,12 @@
|
||||
"Duration": 33,
|
||||
"Value": "1014000"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CPU_LOAD_RESET",
|
||||
"Node": "TAPreferHighCap",
|
||||
"Duration": 33,
|
||||
"Value": "1"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_LAUNCH",
|
||||
"Node": "MemFreq",
|
||||
@@ -1169,12 +1303,6 @@
|
||||
"Duration": 0,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_STREAMING_EXTREME",
|
||||
"Node": "NewlyIdleBalancer",
|
||||
"Duration": 0,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_STREAMING_HIGH",
|
||||
"Node": "PowerHALCameraRunning",
|
||||
@@ -1247,12 +1375,6 @@
|
||||
"Duration": 0,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_STREAMING_HIGH",
|
||||
"Node": "NewlyIdleBalancer",
|
||||
"Duration": 0,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_STREAMING_STANDARD",
|
||||
"Node": "PowerHALCameraRunning",
|
||||
@@ -1349,12 +1471,6 @@
|
||||
"Duration": 0,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_STREAMING_STANDARD",
|
||||
"Node": "NewlyIdleBalancer",
|
||||
"Duration": 0,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_STREAMING_LOW",
|
||||
"Node": "PowerHALCameraRunning",
|
||||
@@ -1415,12 +1531,6 @@
|
||||
"Duration": 0,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_STREAMING_LOW",
|
||||
"Node": "NewlyIdleBalancer",
|
||||
"Duration": 0,
|
||||
"Value": "0"
|
||||
},
|
||||
{
|
||||
"PowerHint": "CAMERA_VIDEO_RECORDING",
|
||||
"Type": "MaskHint",
|
||||
@@ -1632,18 +1742,6 @@
|
||||
"Duration": 50,
|
||||
"Value": "1"
|
||||
},
|
||||
{
|
||||
"PowerHint": "THERMAL_FLASH_LED_REDUCE_CRITICAL",
|
||||
"Node": "LimitFlashCurrent",
|
||||
"Duration": 0,
|
||||
"Value": "100"
|
||||
},
|
||||
{
|
||||
"PowerHint": "THERMAL_FLASH_LED_REDUCE_NONE",
|
||||
"Node": "LimitFlashCurrent",
|
||||
"Duration": 0,
|
||||
"Value": "1500"
|
||||
},
|
||||
{
|
||||
"PowerHint": "EXPENSIVE_RENDERING",
|
||||
"Node": "PowerHALRenderingState",
|
||||
@@ -1881,88 +1979,64 @@
|
||||
"PID_Du": 0.0,
|
||||
"UclampMin_On": true,
|
||||
"UclampMin_Init": 182,
|
||||
"UclampMin_LoadUp": 514,
|
||||
"UclampMin_LoadReset": 514,
|
||||
"UclampMin_High": 514,
|
||||
"UclampMin_Low": 2,
|
||||
"UclampMax_EfficientBase": 500,
|
||||
"UclampMax_EfficientOffset": 200,
|
||||
"SamplingWindow_P": 1,
|
||||
"SamplingWindow_I": 0,
|
||||
"SamplingWindow_D": 1,
|
||||
"ReportingRateLimitNs": 166666660,
|
||||
"EarlyBoost_On": false,
|
||||
"EarlyBoost_TimeFactor": 0.0,
|
||||
"TargetTimeFactor": 1.0,
|
||||
"StaleTimeFactor": 15.0
|
||||
"StaleTimeFactor": 15.0,
|
||||
"HeuristicBoost_On": true,
|
||||
"HBoostModerateJankThreshold": 2,
|
||||
"HBoostOffMaxAvgDurRatio": 4.0,
|
||||
"HBoostSevereJankPidPu": 0.5,
|
||||
"HBoostSevereJankThreshold": 8,
|
||||
"HBoostUclampMinCeilingRange": [480, 722],
|
||||
"HBoostUclampMinFloorRange": [230, 410],
|
||||
"JankCheckTimeFactor": 1.2,
|
||||
"LowFrameRateThreshold": 25,
|
||||
"MaxRecordsNum": 300
|
||||
},
|
||||
{
|
||||
"Name": "UiHighBoostWithoutPid",
|
||||
"PID_On": false,
|
||||
"PID_Po": 0,
|
||||
"PID_Pu": 0,
|
||||
"PID_I": 0,
|
||||
"PID_I_Init": 0,
|
||||
"PID_I_High": 0,
|
||||
"PID_I_Low": 0,
|
||||
"PID_Do": 0,
|
||||
"PID_Du": 0,
|
||||
"SamplingWindow_P": 1,
|
||||
"SamplingWindow_I": 1,
|
||||
"SamplingWindow_D": 1,
|
||||
"Name": "SYSTEM_UI_PROFILE",
|
||||
"PID_On": true,
|
||||
"PID_Po": 2.0,
|
||||
"PID_Pu": 1.0,
|
||||
"PID_I": 0.0,
|
||||
"PID_I_Init": 200,
|
||||
"PID_I_High": 512,
|
||||
"PID_I_Low": -30,
|
||||
"PID_Do": 500.0,
|
||||
"PID_Du": 0.0,
|
||||
"UclampMin_On": true,
|
||||
"UclampMin_Init": 250,
|
||||
"UclampMin_High": 197,
|
||||
"UclampMin_Low": 197,
|
||||
"ReportingRateLimitNs": 1,
|
||||
"EarlyBoost_On": false,
|
||||
"EarlyBoost_TimeFactor": 0.0,
|
||||
"TargetTimeFactor": 1.0,
|
||||
"StaleTimeFactor": 5.0
|
||||
},
|
||||
{
|
||||
"Name": "UiLowBoostWithoutPid",
|
||||
"PID_On": false,
|
||||
"PID_Po": 0,
|
||||
"PID_Pu": 0,
|
||||
"PID_I": 0,
|
||||
"PID_I_Init": 0,
|
||||
"PID_I_High": 0,
|
||||
"PID_I_Low": 0,
|
||||
"PID_Do": 0,
|
||||
"PID_Du": 0,
|
||||
"UclampMin_Init": 182,
|
||||
"UclampMin_LoadUp": 730,
|
||||
"UclampMin_LoadReset": 730,
|
||||
"UclampMin_High": 514,
|
||||
"UclampMin_Low": 2,
|
||||
"UclampMax_EfficientBase": 500,
|
||||
"UclampMax_EfficientOffset": 200,
|
||||
"SamplingWindow_P": 1,
|
||||
"SamplingWindow_I": 1,
|
||||
"SamplingWindow_I": 0,
|
||||
"SamplingWindow_D": 1,
|
||||
"UclampMin_On": true,
|
||||
"UclampMin_Init": 250,
|
||||
"UclampMin_High": 53,
|
||||
"UclampMin_Low": 53,
|
||||
"ReportingRateLimitNs": 1,
|
||||
"EarlyBoost_On": false,
|
||||
"EarlyBoost_TimeFactor": 0.0,
|
||||
"ReportingRateLimitNs": 166666660,
|
||||
"TargetTimeFactor": 1.0,
|
||||
"StaleTimeFactor": 5.0
|
||||
},
|
||||
{
|
||||
"Name": "UiLowNoneBoost",
|
||||
"PID_On": false,
|
||||
"PID_Po": 0,
|
||||
"PID_Pu": 0,
|
||||
"PID_I": 0,
|
||||
"PID_I_Init": 0,
|
||||
"PID_I_High": 0,
|
||||
"PID_I_Low": 0,
|
||||
"PID_Do": 0,
|
||||
"PID_Du": 0,
|
||||
"SamplingWindow_P": 1,
|
||||
"SamplingWindow_I": 1,
|
||||
"SamplingWindow_D": 1,
|
||||
"UclampMin_On": true,
|
||||
"UclampMin_Init": 250,
|
||||
"UclampMin_High": 0,
|
||||
"UclampMin_Low": 0,
|
||||
"ReportingRateLimitNs": 1,
|
||||
"EarlyBoost_On": false,
|
||||
"EarlyBoost_TimeFactor": 0.0,
|
||||
"TargetTimeFactor": 1.0,
|
||||
"StaleTimeFactor": 5.0
|
||||
"StaleTimeFactor": 15.0,
|
||||
"HeuristicBoost_On": true,
|
||||
"HBoostModerateJankThreshold": 2,
|
||||
"HBoostOffMaxAvgDurRatio": 4.0,
|
||||
"HBoostSevereJankPidPu": 0.5,
|
||||
"HBoostSevereJankThreshold": 8,
|
||||
"HBoostUclampMinCeilingRange": [480, 722],
|
||||
"HBoostUclampMinFloorRange": [230, 410],
|
||||
"JankCheckTimeFactor": 1.2,
|
||||
"LowFrameRateThreshold": 25,
|
||||
"MaxRecordsNum": 300
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
# People who can approve changes for submission
|
||||
include platform/packages/modules/Uwb:/OWNERS
|
||||
victorliu@google.com
|
||||
@@ -63,4 +63,10 @@
|
||||
This works best with an FOV primer setting below 90 degrees to ensure that predictions are being
|
||||
used across the 90-degree threshold. -->
|
||||
<bool name="enable_azimuth_mirroring">false</bool>
|
||||
|
||||
<!-- Whether to use a persistent cache in the algorithm to determine country code or not.
|
||||
If enabled, will fallback to the cache to determine device location for
|
||||
UWB regulatory purposes when other sources (telephony, wifi, location, etc) is not available.
|
||||
-->
|
||||
<bool name = "persistent_cache_use_for_country_code_enabled">true</bool>
|
||||
</resources>
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
# People who can approve changes for submission
|
||||
kumachang@google.com
|
||||
wangroger@google.com
|
||||
hsuvictor@google.com
|
||||
@@ -1,3 +0,0 @@
|
||||
third_party {
|
||||
license_type: NOTICE
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
#
|
||||
# Usage is subject to the enclosed license agreement
|
||||
|
||||
echo
|
||||
echo The license for this software will now be displayed.
|
||||
echo You must agree to this license before using this software.
|
||||
echo
|
||||
echo -n Press Enter to view the license
|
||||
read dummy
|
||||
echo
|
||||
|
||||
more << __EOF__
|
||||
@@ -1,22 +0,0 @@
|
||||
__EOF__
|
||||
|
||||
if test $? != 0
|
||||
then
|
||||
echo ERROR: Couldn\'t display license file 1>&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
echo -n Type \"I ACCEPT\" if you agree to the terms of the license:\
|
||||
read typed
|
||||
|
||||
if test "$typed" != I\ ACCEPT
|
||||
then
|
||||
echo
|
||||
echo You didn\'t accept the license. Extraction aborted.
|
||||
exit 2
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
|
||||
if test $? != 0
|
||||
then
|
||||
echo
|
||||
echo ERROR: Couldn\'t extract files. 1>&2
|
||||
exit 3
|
||||
else
|
||||
echo
|
||||
echo Files extracted successfully.
|
||||
fi
|
||||
exit 0
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
@@ -1,11 +0,0 @@
|
||||
google_devices)
|
||||
TO_EXTRACT="\
|
||||
IMAGES/vbmeta_vendor.img \
|
||||
IMAGES/vendor.img \
|
||||
IMAGES/vendor_dlkm.img \
|
||||
RADIO/bootloader.img \
|
||||
system_ext/etc/permissions/privapp-permissions-qorvo.xml \
|
||||
system_ext/priv-app/UwbVendorService/UwbVendorService.apk \
|
||||
"
|
||||
;;
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
# (C) Google Inc.
|
||||
@@ -1,264 +0,0 @@
|
||||
THIS DEVELOPER SOFTWARE LICENSE AGREEMENT (THE "AGREEMENT") IS A LEGALLY
|
||||
BINDING AGREEMENT BETWEEN Google Inc. ("LICENSOR") AND
|
||||
YOU OR THE LEGAL ENTITY YOU REPRESENT ("You" or its possessive, "Your"). BY
|
||||
TYPING "I ACCEPT" WHERE INDICATED YOU ACKNOWLEDGE THAT YOU HAVE READ THIS
|
||||
AGREEMENT, UNDERSTAND IT AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.
|
||||
IF YOU DO NOT AGREE TO THESE TERMS YOU MUST DISCONTINUE THE INSTALLATION
|
||||
PROCESS AND YOU SHALL NOT USE THE SOFTWARE OR RETAIN ANY COPIES OF THE
|
||||
SOFTWARE OR DOCUMENTATION. ANY USE OR POSSESSION OF THE SOFTWARE BY YOU IS
|
||||
SUBJECT TO THE TERMS AND CONDITIONS SET FORTH IN THIS AGREEMENT. IF THE
|
||||
SOFTWARE IS INSTALLED ON A COMPUTER OWNED BY A CORPORATION OR OTHER LEGAL
|
||||
ENTITY, THEN YOU REPRESENT AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND
|
||||
SUCH ENTITY TO THE TERMS AND CONDITIONS OF THIS AGREEMENT.
|
||||
|
||||
1. Special Definitions
|
||||
|
||||
a. The term "Android" means the open source mobile platform, software
|
||||
stack, operating system, middleware, application programming
|
||||
interfaces and mobile applications under the trade-name "Android"
|
||||
distributed at Android.com.
|
||||
|
||||
b. The term "Android Applications" means a software application or
|
||||
open-source contribution developed by You, designed to operate with
|
||||
Android that does not contain or incorporate any of the Software.
|
||||
|
||||
c. The term "Authorized Android Enabled Device" means only the device
|
||||
identified on the site from which You downloaded the Software.
|
||||
The term "Software" means the Licensor's proprietary software and
|
||||
libraries in object code form, designed for use on the Authorized
|
||||
Android Enabled Device.
|
||||
|
||||
d. The term "Authorized Android Enabled Device Software" means a
|
||||
packaged build for Authorized Android Enabled Devices, consisting
|
||||
of files suitable for installation on an Authorized Android Enabled
|
||||
Device using a mechanism such as fastboot mode or recovery mode.
|
||||
|
||||
2. License Grant
|
||||
|
||||
a. Subject to the terms of this Agreement, Licensor hereby grants to
|
||||
You, free of charge, a non-exclusive, non-sublicensable,
|
||||
non-transferable, limited copyright license, during the term of
|
||||
this Agreement, to download, install and use the Software
|
||||
internally in machine-readable (i.e., object code) form and the
|
||||
Documentation for non-commercial use on an Authorized Android
|
||||
Enabled Device and non-commercial redistribution for academic
|
||||
purposes only of a reasonable number of copies of the Authorized
|
||||
Android Enabled Device Software (the "Limited Purpose"). You may
|
||||
grant your end users the right to use the Software for
|
||||
non-commercial purposes on an Authorized Android Enabled Device.
|
||||
The license to the Software granted to You hereunder is solely for
|
||||
the Limited Purpose set forth in this section, and the Software
|
||||
shall not be used for any other purpose.
|
||||
|
||||
3. Restrictions
|
||||
|
||||
a. Retention of Rights. The entire right, title and interest in the
|
||||
Software shall remain with Licensor and, unless specified in
|
||||
writing hereunder, no rights are granted to any of the Software.
|
||||
Except for the right to use the Software for the Limited Purpose,
|
||||
the delivery of the Software to You does not convey to You any
|
||||
intellectual property rights in the Software, including, but not
|
||||
limited to any rights under any patent, trademark, copyright, or
|
||||
trade secret. Neither the delivery of the Software to You nor any
|
||||
terms set forth herein shall be construed to grant to You, either
|
||||
expressly, by implication or by way of estoppel, any license under
|
||||
any patents or other intellectual property rights covering or
|
||||
relating to any other product or invention or any combination of
|
||||
the Software with any other product. Any rights not expressly
|
||||
granted to You herein are reserved by Licensor.
|
||||
|
||||
b. No Commercialization or Distribution of the Software and
|
||||
Documentation. Except as expressly provided in Section 2 of this
|
||||
Agreement, You shall have no right to (i) copy, disclose,
|
||||
distribute, publically perform, publically display, transfer,
|
||||
alter, modify, translate, disassemble, decompile, reverse engineer,
|
||||
or adapt the Software and Documentation, or any portion thereof, or
|
||||
create any derivative works based thereon; (ii) rent, lease,
|
||||
assign, sublicense, resell, disclose or otherwise transfer the
|
||||
Software and Documentation in whole or in part to any third party
|
||||
(iii) use the Software and Documentation except for the Limited
|
||||
Purpose, (iv) remove or alter any of the copyright or proprietary
|
||||
notices contained in any of the Software and Documentation. For the
|
||||
purposes of clarity, nothing in this Agreement prohibits You from
|
||||
making and distributing Android Applications under commercial or
|
||||
non-commercial terms, provided that You shall not contain,
|
||||
incorporate, and/or compile the Software or any of its derivative
|
||||
works, in whole or in part, into Your Android Applications and/or
|
||||
any software/devices created by You or by third parties acting on
|
||||
Your behalf. You and any such third party shall comply with all of
|
||||
the terms and conditions of this Agreement.
|
||||
|
||||
c. No Reverse Engineering. Except for any portions of the Software
|
||||
provided to You in source code format and except for any third
|
||||
party code distributed with the Software that is licensed under
|
||||
contrary terms, You will not reverse engineer, disassemble,
|
||||
decompile, or translate the Software, or otherwise attempt to
|
||||
derive the source code version of the Software, except if and to
|
||||
the extent expressly permitted under any applicable law.
|
||||
|
||||
d. Third Party Software. You agree that Android may contain third
|
||||
party software. You agree that you may not distribute such third
|
||||
party software for any purpose without appropriate licenses from
|
||||
the applicable third party or parties.
|
||||
|
||||
e. No Transfer or Assignment. You shall not assign any of its rights
|
||||
or obligations under this Agreement. Any attempted assignment in
|
||||
contravention of this Section shall be void.
|
||||
|
||||
f. Licensor shall retain all title, ownership and Intellectual
|
||||
Property Rights in and to the Software and any derivative thereof.
|
||||
"Intellectual Property Rights" shall mean all patent, copyright,
|
||||
trade secret, trademark and other proprietary and intellectual
|
||||
property rights, including moral rights.
|
||||
|
||||
g. Neither this Agreement, nor any act by Licensor or its Affiliates
|
||||
persuant to this Agreement or relating to the Software (including,
|
||||
without limitation, the provision by Licensor or its Affiliates of
|
||||
the Software) shall provide to You any license or any other rights
|
||||
whatsoever under any patents, trademarks, trade secrets, copyrights
|
||||
or any other intellectual property rights of Licensor or its
|
||||
Affiliates, except for the copyrights expressly set forth in this
|
||||
Agreement. You understand and agree that:
|
||||
|
||||
h. Neither this Agreement, nor delivery of the Software alone or in
|
||||
combination with any Licensor ASIC grants you any right to
|
||||
practice, or any other right at all with respect to, any patent of
|
||||
Licensor or its Affiliates, and
|
||||
|
||||
i. A separating license agreement from Motorola Incorporated is needed
|
||||
to use or practice any patent of Licensor or its Affiliates.
|
||||
|
||||
j. You agree not to contend in any context that, as a result of the
|
||||
provision or use of this software, either Licensor or Affiliate has
|
||||
any obligation to extend, or Licensor or any other party has
|
||||
obtained any right to, any license, whether express or implied,
|
||||
with respect to any patent of Licensor or its Affiliates for any
|
||||
purpose. For the purposes of this agreement, "Affiliate" means
|
||||
(i) any corporation or any other legal entity that owns, directly
|
||||
or indirectly, more than fifty percent (50%) of the shares, equity
|
||||
interest or other securities of any entity entitled to vote for
|
||||
election of directors (or other managing authority), or (ii) any
|
||||
corporation or any other legal entity fifty percent (50%) or more
|
||||
of whose shares, equity interest, or other securities entitled to
|
||||
vote for election of directors (or other managing authority) is
|
||||
owned or controlled by an entity, either directly or indirectly.
|
||||
|
||||
4. Indemnity
|
||||
|
||||
a. You agree to indemnify and hold harmless Licensor, Google, and
|
||||
their officers, directors, customers, employees and successors and
|
||||
assigns (each an "Indemnified Party") against any and all claims,
|
||||
demands, causes of action, losses, liabilities, damages, costs and
|
||||
expenses, incurred by the Indemnified Party (including but not
|
||||
limited to costs of defense, investigation and reasonable
|
||||
attorney's fees) arising out of, resulting from or related to
|
||||
(i) any software, products, documentation, content, materials or
|
||||
derivative works created or developed by You using the Software
|
||||
which causes an infringement of any patent, copyright, trademark,
|
||||
trade secret, or other property, publicity or privacy rights of any
|
||||
third parties arising in any jurisdiction anywhere in the world,
|
||||
(ii) the download, distribution, installation, storage, execution,
|
||||
use or transfer of such software, products, documentation, content,
|
||||
materials or derivative works by any person or entity, and/or
|
||||
(iii) any breach of this Agreement by You. If requested by an
|
||||
Indemnified Party, You agree to defend such Indemnified Party in
|
||||
connection with any third party claims, demands, or causes of
|
||||
action resulting from, arising out of or in connection with any of
|
||||
the foregoing.
|
||||
|
||||
5. Limitation of Liability
|
||||
|
||||
a. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAWS, UNDER NO
|
||||
CIRCUMSTANCES, INCLUDING WITHOUT LIMITATION NEGLIGENCE, SHALL
|
||||
LICENSOR, GOOGLE, THEIR AFFILIATES AND/OR ITS DIRECTORS, OFFICERS,
|
||||
EMPLOYEES OR AGENTS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
|
||||
SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
|
||||
LIMITED TO DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
|
||||
INTERRUPTION, LOSS OF BUSINESS INFORMATION AND THE LIKE) ARISING
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ANY DOWNLOAD,
|
||||
INSTALLATION OR USE OF, OR INABILITY TO USE, THE SOFTWARE, EVEN IF
|
||||
LICENSOR OR GOOGLE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
|
||||
EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
|
||||
THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
|
||||
IN NO EVENT SHALL LICENSOR'S OR GOOGLE'S TOTAL AGGREGATE LIABILITY
|
||||
TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
|
||||
ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
|
||||
INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
|
||||
(US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
|
||||
DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
|
||||
AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
|
||||
PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
|
||||
PARTIES.
|
||||
|
||||
6. No Warranty
|
||||
|
||||
a. LICENSOR AND GOOGLE MAKE NO WARRANTIES, EXPRESS OR IMPLIED, WITH
|
||||
RESPECT TO THE SOFTWARE AND DOCUMENTATION PROVIDED UNDER THIS
|
||||
AGREEMENT, INCLUDING BUT NOT LIMITED TO ANY WARRANTY OF
|
||||
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR AGAINST
|
||||
INFRINGEMENT, OR ANY EXPRESS OR IMPLIED WARRANTY ARISING OUT OF
|
||||
TRADE USAGE OR OUT OF A COURSE OF DEALING OR COURSE OF PERFORMANCE.
|
||||
NOTHING CONTAINED IN THIS AGREEMENT SHALL BE CONSTRUED AS A
|
||||
WARRANTY OR REPRESENTATION BY LICENSOR (I) AS TO THE VALIDITY OR
|
||||
SCOPE OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT
|
||||
AND (II) THAT ANY MANUFACTURE OR USE WILL BE FREE FROM INFRINGEMENT
|
||||
OF PATENTS, COPYRIGHTS OR OTHER INTELLECTUAL PROPERTY RIGHTS OF
|
||||
OTHERS, AND IT SHALL BE THE SOLE RESPONSIBILITY OF YOU TO MAKE SUCH
|
||||
DETERMINATION AS IS NECESSARY WITH RESPECT TO THE ACQUISITION OF
|
||||
LICENSES UNDER PATENTS AND OTHER INTELLECTUAL PROPERTY OF THIRD
|
||||
PARTIES. LICENSOR AND GOOGLE SHALL NOT HAVE ANY OBLIGATION TO
|
||||
PROVIDE ANY TECHNICAL SUPPORT OF THE SOFTWARE UNDER THIS AGREEMENT.
|
||||
|
||||
7. Term and Termination
|
||||
|
||||
a. This Agreement shall be effective on the date You accept this
|
||||
Agreement and shall remain in effect until terminated as provided
|
||||
herein. You may terminate the Agreement at any time by deleting and
|
||||
destroying all copies of the Software and all related information
|
||||
in Your possession or control. This Agreement terminates
|
||||
immediately and automatically, with or without notice, if You fail
|
||||
to comply with any provision hereof. Additionally, Licensor may at
|
||||
any time terminate this Agreement, without cause, upon notice to
|
||||
You. Upon termination You must delete or destroy all copies of the
|
||||
Software in Your possession, and the license granted to You in this
|
||||
Agreement shall terminate. Sections 3, 4, 5, 6 and 8 shall survive
|
||||
the termination of this Agreement.
|
||||
|
||||
8. Miscellaneous
|
||||
|
||||
a. Governing Law. This Agreement is governed and interpreted in
|
||||
accordance with the laws of the State of California without giving
|
||||
effect to its conflict of laws provisions. The United Nations
|
||||
Convention on Contracts for the International Sale of Goods is
|
||||
expressly disclaimed and shall not apply. Any claim arising out of
|
||||
or related to this Agreement must be brought exclusively in a
|
||||
federal or state court located in Santa Clara County, California
|
||||
and You consent to the jurisdiction and venue of such courts.
|
||||
|
||||
b. Waiver and Severability. The failure of either party to require
|
||||
performance by the other party of any provision of this Agreement
|
||||
shall not affect the full right to require such performance at any
|
||||
time thereafter; nor shall the waiver by either party of a breach
|
||||
of any provision of this Agreement be taken or held to be a waiver
|
||||
of the provision itself. Severability. If any provision of this
|
||||
Agreement is unenforceable or invalid under any applicable law or
|
||||
is so held by applicable court decision, such unenforceability or
|
||||
invalidity shall not render this Agreement unenforceable or invalid
|
||||
as a whole, and such provision shall be changed and interpreted so
|
||||
as to best accomplish the objectives of such unenforceable or
|
||||
invalid provision within the limits of applicable law or
|
||||
applicable court decisions.
|
||||
|
||||
c. Amendment and Modification. This Agreement and any of its terms and
|
||||
provisions may only be amended, modified, supplemented or waived in
|
||||
a writing signed by both parties hereto.
|
||||
|
||||
d. Compliance with Laws. You shall comply with all applicable laws,
|
||||
rules, and regulations in connection with its activities under this
|
||||
Agreement.
|
||||
|
||||
e. Entire Agreement. This Agreement completely and exclusively states
|
||||
the agreement between You and Licensor regarding this subject
|
||||
matter.
|
||||
@@ -1,17 +0,0 @@
|
||||
// Copyright (C) 2023 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
soong_namespace {
|
||||
}
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
#
|
||||
# Copyright (C) 2023 The Android Open-Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
ifneq ($(filter tangorpro,$(TARGET_DEVICE)),)
|
||||
$(call add-radio-file,bootloader.img)
|
||||
endif
|
||||
|
||||
ifneq ($(filter tangorpro,$(TARGET_DEVICE)),)
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
|
||||
LOCAL_MODULE := UwbVendorService
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
LOCAL_BUILT_MODULE_STEM := package.apk
|
||||
LOCAL_SYSTEM_EXT_MODULE := true
|
||||
LOCAL_PRIVILEGED_MODULE := true
|
||||
LOCAL_MODULE_OWNER := qorvo
|
||||
LOCAL_MODULE_CLASS := APPS
|
||||
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
|
||||
LOCAL_CERTIFICATE := PRESIGNED
|
||||
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
|
||||
LOCAL_LICENSE_CONDITIONS := notice
|
||||
LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../COPYRIGHT $(LOCAL_PATH)/../LICENSE
|
||||
include $(BUILD_PREBUILT)
|
||||
|
||||
endif
|
||||
@@ -1,37 +0,0 @@
|
||||
# Copyright 2023 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
BOARD_PREBUILT_VENDORIMAGE := vendor/google_devices/tangorpro/proprietary/vendor.img
|
||||
|
||||
BOARD_PREBUILT_VENDOR_DLKMIMAGE := vendor/google_devices/tangorpro/proprietary/vendor_dlkm.img
|
||||
|
||||
TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
|
||||
|
||||
BOARD_AVB_VBMETA_VENDOR := vendor
|
||||
BOARD_AVB_VBMETA_VENDOR_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
|
||||
BOARD_AVB_VBMETA_VENDOR_ALGORITHM := SHA256_RSA2048
|
||||
BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
|
||||
BOARD_AVB_VBMETA_VENDOR_ROLLBACK_INDEX_LOCATION := 3
|
||||
|
||||
AB_OTA_PARTITIONS += \
|
||||
vbmeta_vendor \
|
||||
vendor \
|
||||
vendor_dlkm \
|
||||
|
||||
-include vendor/google/tools/android-info.mk
|
||||
ifdef USE_ANDROID_INFO
|
||||
TARGET_BOARD_INFO_FILE := vendor/google_devices/tangorpro/android-info.txt
|
||||
endif
|
||||
|
||||
VENDOR_BLOBS_LICENSE := vendor/google_devices/tangorpro/LICENSE
|
||||
@@ -1,25 +0,0 @@
|
||||
# Copyright 2023 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
PRODUCT_SOONG_NAMESPACES += \
|
||||
vendor/google_devices/tangorpro/proprietary \
|
||||
|
||||
# AOSP packages required by the blobs
|
||||
PRODUCT_PACKAGES := \
|
||||
UwbVendorService \
|
||||
|
||||
# blob(s) necessary for tangorpro hardware
|
||||
PRODUCT_COPY_FILES := \
|
||||
vendor/google_devices/tangorpro/proprietary/privapp-permissions-qorvo.xml:system_ext/etc/permissions/privapp-permissions-qorvo.xml:qorvo \
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
require board=tangorpro
|
||||
require partition-exists=vendor_kernel_boot
|
||||
|
||||
require version-bootloader=tangorpro-1.0-9282924
|
||||
@@ -1,15 +0,0 @@
|
||||
# Copyright 2023 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
-include vendor/google_devices/tangorpro/BoardConfigPartial.mk
|
||||
@@ -1,15 +0,0 @@
|
||||
# Copyright 2023 The Android Open Source Project
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
$(call inherit-product-if-exists, vendor/google_devices/tangorpro/device-partial.mk)
|
||||
1
sepolicy/castkey/file.te
Normal file
1
sepolicy/castkey/file.te
Normal file
@@ -0,0 +1 @@
|
||||
type device_cert_file, file_type, vendor_persist_type;
|
||||
4
sepolicy/castkey/file_contexts
Normal file
4
sepolicy/castkey/file_contexts
Normal file
@@ -0,0 +1,4 @@
|
||||
/vendor/bin/hw/android\.hardware\.drm-service\.castkey u:object_r:hal_drm_cast_exec:s0
|
||||
|
||||
# Cert
|
||||
/mnt/vendor/persist/nest/cast_auth\.crt u:object_r:device_cert_file:s0
|
||||
@@ -1,9 +1,10 @@
|
||||
type hal_drm_cast, domain;
|
||||
type hal_drm_cast_exec, exec_type, vendor_file_type, file_type;
|
||||
|
||||
type hal_drm_cast_exec, vendor_file_type, exec_type, file_type;
|
||||
init_daemon_domain(hal_drm_cast)
|
||||
|
||||
hal_server_domain(hal_drm_cast, hal_drm)
|
||||
|
||||
# Cert
|
||||
allow hal_drm_cast mnt_vendor_file:dir search;
|
||||
allow hal_drm_cast persist_file:dir search;
|
||||
allow hal_drm_cast device_cert_file:file r_file_perms;
|
||||
@@ -1,2 +1 @@
|
||||
# Cast Factory Credentials
|
||||
android.hardware.drm.IDrmFactory/castkey u:object_r:hal_drm_service:s0
|
||||
@@ -2,13 +2,11 @@
|
||||
BOARD_SEPOLICY_DIRS += device/google/tangorpro/sepolicy/vendor
|
||||
BOARD_SEPOLICY_DIRS += device/google/tangorpro/sepolicy/tracking_denials
|
||||
|
||||
# castkey
|
||||
BOARD_SEPOLICY_DIRS += device/google/tangorpro/sepolicy/castkey
|
||||
|
||||
# fingerprint
|
||||
BOARD_SEPOLICY_DIRS += device/google/tangorpro/sepolicy/fingerprint_capacitance
|
||||
|
||||
# for mediashell
|
||||
PRODUCT_PUBLIC_SEPOLICY_DIRS += device/google/atv/audio_proxy/sepolicy/public
|
||||
BOARD_VENDOR_SEPOLICY_DIRS += device/google/atv/audio_proxy/sepolicy/vendor
|
||||
PRODUCT_PRIVATE_SEPOLICY_DIRS += vendor/google/gms/src/sepolicy/tv
|
||||
|
||||
# system_ext
|
||||
SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += device/google/tangorpro/sepolicy/system_ext/private
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
|
||||
audioserver vendor_file file b/312069156
|
||||
platform_app system_data_file dir b/289358324
|
||||
shell sysfs_touch dir b/264823366
|
||||
system_app proc_pagetypeinfo file b/312375728
|
||||
|
||||
3
sepolicy/vendor/file.te
vendored
3
sepolicy/vendor/file.te
vendored
@@ -1,8 +1,5 @@
|
||||
#Pogo USB control & status
|
||||
type sysfs_pogo_usb, sysfs_type, fs_type;
|
||||
|
||||
# Cast device certificate
|
||||
type device_cert_file, file_type, vendor_persist_type;
|
||||
|
||||
# Avoid GPS se failed
|
||||
type sysfs_gps, sysfs_type, fs_type;
|
||||
|
||||
4
sepolicy/vendor/file_contexts
vendored
4
sepolicy/vendor/file_contexts
vendored
@@ -9,7 +9,3 @@
|
||||
|
||||
# Privacy LED
|
||||
/vendor/bin/hw/android\.hardware\.lights-service\.tangorpro u:object_r:hal_light_default_exec:s0
|
||||
|
||||
# Cast Factory Credentials
|
||||
/vendor/bin/hw/android\.hardware\.drm-service\.castkey u:object_r:hal_drm_cast_exec:s0
|
||||
/mnt/vendor/persist/nest/cast_auth\.crt u:object_r:device_cert_file:s0
|
||||
|
||||
1
sepolicy/vendor/genfs_contexts
vendored
1
sepolicy/vendor/genfs_contexts
vendored
@@ -7,6 +7,7 @@ genfscon sysfs /devices/platform/10d10000.spi/spi_master/spi0/spi0.0 u:object_
|
||||
# system suspend wakeup files
|
||||
genfscon sysfs /devices/platform/google,dock/power_supply/dock/wakeup u:object_r:sysfs_wakeup:s0
|
||||
genfscon sysfs /devices/platform/10d10000.spi/spi_master/spi0/spi0.0/power_supply/nvt-pen-battery/wakeup u:object_r:sysfs_wakeup:s0
|
||||
genfscon sysfs /devices/platform/10d10000.spi/spi_master/spi0/spi0.0/power_supply/USI_Stylus_Battery/wakeup u:object_r:sysfs_wakeup:s0
|
||||
genfscon sysfs /devices/platform/10d10000.spi/spi_master/spi0/spi0.0/input/input2/wakeup u:object_r:sysfs_wakeup:s0
|
||||
genfscon sysfs /devices/platform/10d10000.spi/spi_master/spi0/spi0.0/wakeup u:object_r:sysfs_wakeup:s0
|
||||
|
||||
|
||||
1
sepolicy/vendor/hal_health_default.te
vendored
Normal file
1
sepolicy/vendor/hal_health_default.te
vendored
Normal file
@@ -0,0 +1 @@
|
||||
dontaudit hal_health_default sysfs_touch:dir *;
|
||||
13
setup-makefiles.py
Executable file
13
setup-makefiles.py
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2024 The LineageOS Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
MY_DIR="$(cd "$(dirname "${0}")"; pwd -P)"
|
||||
|
||||
pushd "${MY_DIR}/tangorpro"
|
||||
./setup-makefiles.py
|
||||
popd
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2016 The CyanogenMod Project
|
||||
# SPDX-FileCopyrightText: 2017-2024 The LineageOS Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
DEVICE=tangorpro
|
||||
VENDOR=google
|
||||
|
||||
# Load extract_utils and do some sanity checks
|
||||
MY_DIR="${BASH_SOURCE%/*}"
|
||||
if [[ ! -d "${MY_DIR}" ]]; then MY_DIR="${PWD}"; fi
|
||||
|
||||
ANDROID_ROOT="${MY_DIR}/../../.."
|
||||
|
||||
export TARGET_ENABLE_CHECKELF=true
|
||||
|
||||
HELPER="${ANDROID_ROOT}/tools/extract-utils/extract_utils.sh"
|
||||
if [ ! -f "${HELPER}" ]; then
|
||||
echo "Unable to find helper script at ${HELPER}"
|
||||
exit 1
|
||||
fi
|
||||
source "${HELPER}"
|
||||
|
||||
function vendor_imports() {
|
||||
cat <<EOF >>"$1"
|
||||
"device/google/tangorpro",
|
||||
"hardware/google/av",
|
||||
"hardware/google/gchips",
|
||||
"hardware/google/graphics/common",
|
||||
"hardware/google/interfaces",
|
||||
"hardware/google/pixel",
|
||||
EOF
|
||||
}
|
||||
|
||||
function lib_to_package_fixup_vendor_variants() {
|
||||
if [ "$2" != "vendor" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
com.google.edgetpu_app_service-V3-ndk | \
|
||||
com.google.edgetpu_vendor_service-V2-ndk)
|
||||
echo "$1-vendor"
|
||||
;;
|
||||
libprotobuf-cpp-full-21.12)
|
||||
echo "libprotobuf-cpp-full"
|
||||
;;
|
||||
libprotobuf-cpp-lite-21.12)
|
||||
echo "libprotobuf-cpp-lite"
|
||||
;;
|
||||
libacryl | \
|
||||
libexynosv4l2) ;;
|
||||
*)
|
||||
return 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function lib_to_package_fixup() {
|
||||
lib_to_package_fixup_clang_rt_ubsan_standalone "$1" ||
|
||||
lib_to_package_fixup_proto_3_9_1 "$1" ||
|
||||
lib_to_package_fixup_vendor_variants "$@"
|
||||
}
|
||||
|
||||
# Initialize the helper
|
||||
setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}"
|
||||
|
||||
# Warning headers and guards
|
||||
write_headers
|
||||
|
||||
write_makefiles "${MY_DIR}/proprietary-files.txt"
|
||||
write_makefiles "${MY_DIR}/proprietary-files-vendor.txt"
|
||||
|
||||
append_firmware_calls_to_makefiles "${MY_DIR}/proprietary-firmware.txt"
|
||||
|
||||
# Finish
|
||||
write_footers
|
||||
11
tangorpro/Android.bp
Normal file
11
tangorpro/Android.bp
Normal file
@@ -0,0 +1,11 @@
|
||||
//
|
||||
// SPDX-FileCopyrightText: 2024 The LineageOS Project
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
//
|
||||
|
||||
prebuilt_etc {
|
||||
name: "init.recovery.tangorpro.touch.rc",
|
||||
src: "init.recovery.touch.rc",
|
||||
sub_dir: "init",
|
||||
recovery: true,
|
||||
}
|
||||
@@ -15,34 +15,30 @@
|
||||
#
|
||||
TARGET_BOARD_INFO_FILE := device/google/tangorpro/board-info.txt
|
||||
TARGET_BOOTLOADER_BOARD_NAME := tangorpro
|
||||
ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
|
||||
RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q1
|
||||
else ifneq (,$(filter AP2% AP3%,$(RELEASE_PLATFORM_VERSION)))
|
||||
RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q2
|
||||
else
|
||||
RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/trunk
|
||||
endif
|
||||
RELEASE_GOOGLE_BOOTLOADER_TANGORPRO_DIR ?= pdk # Keep this for pdk TODO: b/327119000
|
||||
RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/$(RELEASE_GOOGLE_BOOTLOADER_TANGORPRO_DIR)
|
||||
$(call soong_config_set,tangorpro_bootloader,prebuilt_dir,$(RELEASE_GOOGLE_BOOTLOADER_TANGORPRO_DIR))
|
||||
|
||||
# Enable load module in parallel
|
||||
BOARD_BOOTCONFIG += androidboot.load_modules_parallel=true
|
||||
|
||||
# The modules which need to be loaded in sequential
|
||||
BOARD_KERNEL_CMDLINE += fips140.load_sequential=1
|
||||
BOARD_KERNEL_CMDLINE += exynos_drm.load_sequential=1
|
||||
|
||||
ifdef PHONE_CAR_BOARD_PRODUCT
|
||||
include device/google_car/$(PHONE_CAR_BOARD_PRODUCT)/BoardConfig.mk
|
||||
else
|
||||
TARGET_SCREEN_DENSITY := 320
|
||||
endif
|
||||
|
||||
TARGET_SCREEN_DENSITY := 320
|
||||
BOARD_USES_GENERIC_AUDIO := true
|
||||
USES_DEVICE_GOOGLE_TANGORPRO := true
|
||||
BOARD_KERNEL_CMDLINE += swiotlb=noforce
|
||||
|
||||
include device/google/gs201/BoardConfig-common.mk
|
||||
-include vendor/google_devices/gs201/prebuilts/BoardConfigVendor.mk
|
||||
-include vendor/google_devices/tangorpro/proprietary/BoardConfigVendor.mk
|
||||
include device/google/gs-common/check_current_prebuilt/check_current_prebuilt.mk
|
||||
include device/google/tangorpro/sepolicy/tangorpro-sepolicy.mk
|
||||
include device/google/tangorpro/wifi/BoardConfig-wifi.mk
|
||||
|
||||
include device/google/tangorpro/tangorpro/BoardConfigLineage.mk
|
||||
ifdef PHONE_CAR_BOARD_PRODUCT
|
||||
include device/google_car/$(PHONE_CAR_BOARD_PRODUCT)/BoardConfig.mk
|
||||
endif
|
||||
|
||||
DEVICE_PATH := device/google/tangorpro
|
||||
VENDOR_PATH := vendor/google/tangorpro
|
||||
include $(DEVICE_PATH)/$(TARGET_BOOTLOADER_BOARD_NAME)/BoardConfigLineage.mk
|
||||
|
||||
6
tangorpro/BoardConfigEvolution.mk
Normal file
6
tangorpro/BoardConfigEvolution.mk
Normal file
@@ -0,0 +1,6 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2024 The Evolution X Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
include $(DEVICE_PATH)/BoardConfigEvolution.mk
|
||||
@@ -1,9 +1,9 @@
|
||||
#
|
||||
# Copyright (C) 2023 The LineageOS Project
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 The LineageOS Project
|
||||
# SPDX-FileCopyrightText: 2021-2024 The Calyx Institute
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
include device/google/tangorpro/BoardConfigLineage.mk
|
||||
include $(DEVICE_PATH)/BoardConfigLineage.mk
|
||||
|
||||
include vendor/google/tangorpro/BoardConfigVendor.mk
|
||||
include $(VENDOR_PATH)/BoardConfigVendor.mk
|
||||
|
||||
8
tangorpro/device-evolution.mk
Normal file
8
tangorpro/device-evolution.mk
Normal file
@@ -0,0 +1,8 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2024 The Evolution X Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
$(call inherit-product, $(DEVICE_PATH)/device-evolution.mk)
|
||||
|
||||
DEVICE_PACKAGE_OVERLAYS += $(DEVICE_PATH)/$(DEVICE_CODENAME)/overlay-evolution
|
||||
13
tangorpro/device-lineage.mk
Normal file
13
tangorpro/device-lineage.mk
Normal file
@@ -0,0 +1,13 @@
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 The LineageOS Project
|
||||
# SPDX-FileCopyrightText: 2021-2024 The Calyx Institute
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
$(call inherit-product, $(DEVICE_PATH)/device-lineage.mk)
|
||||
|
||||
DEVICE_PACKAGE_OVERLAYS += $(DEVICE_PATH)/$(DEVICE_CODENAME)/overlay-lineage
|
||||
|
||||
# Init
|
||||
PRODUCT_PACKAGES += \
|
||||
init.recovery.tangorpro.touch.rc
|
||||
98
tangorpro/extract-files.py
Executable file
98
tangorpro/extract-files.py
Executable file
@@ -0,0 +1,98 @@
|
||||
#!/usr/bin/env -S PYTHONPATH=../../../../tools/extract-utils python3
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2024 The LineageOS Project
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
from extract_utils.extract import extract_fns_user_type
|
||||
from extract_utils.extract_pixel import (
|
||||
extract_pixel_factory_image,
|
||||
extract_pixel_firmware,
|
||||
pixel_factory_image_regex,
|
||||
pixel_firmware_regex,
|
||||
)
|
||||
from extract_utils.file import FileArgs, FileList
|
||||
from extract_utils.fixups_blob import (
|
||||
blob_fixup,
|
||||
blob_fixups_user_type,
|
||||
)
|
||||
from extract_utils.fixups_lib import (
|
||||
lib_fixups,
|
||||
lib_fixups_user_type,
|
||||
)
|
||||
from extract_utils.main import (
|
||||
ExtractUtils,
|
||||
ExtractUtilsModule,
|
||||
)
|
||||
|
||||
namespace_imports = [
|
||||
'device/google/tangorpro',
|
||||
'hardware/google/av',
|
||||
'hardware/google/interfaces',
|
||||
'hardware/google/pixel',
|
||||
]
|
||||
|
||||
|
||||
def lib_fixup_vendor_suffix(lib: str, partition: str, *args, **kwargs):
|
||||
return f'{lib}_{partition}' if partition == 'vendor' else None
|
||||
|
||||
|
||||
lib_fixups: lib_fixups_user_type = {
|
||||
**lib_fixups,
|
||||
(
|
||||
'com.google.edgetpu_app_service-V3-ndk',
|
||||
'com.google.edgetpu_vendor_service-V2-ndk',
|
||||
): lib_fixup_vendor_suffix,
|
||||
}
|
||||
|
||||
blob_fixups: blob_fixups_user_type = {
|
||||
'product/etc/felica/common.cfg': blob_fixup()
|
||||
.patch_file('osaifu-keitai.patch'),
|
||||
'vendor/etc/init/init.modem_logging_control.rc': blob_fixup()
|
||||
.regex_replace(' && property:ro.debuggable=0', ''),
|
||||
('vendor/lib/libspeechenhancer.so', 'vendor/lib64/libspeechenhancer.so'): blob_fixup()
|
||||
.clear_symbol_version('AHardwareBuffer_allocate')
|
||||
.clear_symbol_version('AHardwareBuffer_describe')
|
||||
.clear_symbol_version('AHardwareBuffer_lock')
|
||||
.clear_symbol_version('AHardwareBuffer_release')
|
||||
.clear_symbol_version('AHardwareBuffer_unlock'),
|
||||
} # fmt: skip
|
||||
|
||||
extract_fns: extract_fns_user_type = {
|
||||
pixel_factory_image_regex: extract_pixel_factory_image,
|
||||
pixel_firmware_regex: extract_pixel_firmware,
|
||||
}
|
||||
|
||||
module = ExtractUtilsModule(
|
||||
'tangorpro',
|
||||
'google',
|
||||
device_rel_path='device/google/tangorpro/tangorpro',
|
||||
blob_fixups=blob_fixups,
|
||||
lib_fixups=lib_fixups,
|
||||
namespace_imports=namespace_imports,
|
||||
add_firmware_proprietary_file=True,
|
||||
extract_fns=extract_fns,
|
||||
)
|
||||
|
||||
|
||||
def fix_vendor_file_list(file_list: FileList):
|
||||
module_suffix_file_paths = [
|
||||
'vendor/lib/com.google.edgetpu_app_service-V3-ndk.so',
|
||||
'vendor/lib64/com.google.edgetpu_app_service-V3-ndk.so',
|
||||
'vendor/lib64/com.google.edgetpu_vendor_service-V2-ndk.so',
|
||||
]
|
||||
|
||||
for file_path in module_suffix_file_paths:
|
||||
file_list.get_file(file_path).set_arg(FileArgs.MODULE_SUFFIX, '_vendor')
|
||||
|
||||
|
||||
module.add_generated_proprietary_file(
|
||||
'proprietary-files-vendor.txt',
|
||||
partition='vendor',
|
||||
skip_file_list_name='skip-files-vendor.txt',
|
||||
fix_file_list=fix_vendor_file_list,
|
||||
)
|
||||
|
||||
if __name__ == '__main__':
|
||||
utils = ExtractUtils.device(module)
|
||||
utils.run()
|
||||
3
tangorpro/init.recovery.touch.rc
Normal file
3
tangorpro/init.recovery.touch.rc
Normal file
@@ -0,0 +1,3 @@
|
||||
on init
|
||||
insmod /lib/modules/goog_touch_interface.ko
|
||||
insmod /lib/modules/nvt_touch.ko
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user