summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2024-01-17 23:27:07 -0800
committerXin Li <delphij@google.com>2024-01-17 23:27:07 -0800
commitbe112f4aec3231fdc65159a5395a763d8b04ddd0 (patch)
tree077d8b7b644896d6088b6cabd7ca99edf8fda883
parente988185191b606ff12d3150a5dd27a079b9c86b4 (diff)
parent835cadfadc86c3779738e41109ab3b4fd9f045c2 (diff)
downloadshusky-be112f4aec3231fdc65159a5395a763d8b04ddd0.tar.gz
Merge Android 24Q1 Release (ab/11220357)temp_319669529
Bug: 319669529 Merged-In: I78ffa902088929a4422bab1a5dbea6534c18b99d Change-Id: I6bf80dc609b0ab9e06e1db8a9711896957a0c137
-rw-r--r--AndroidProducts.mk2
-rw-r--r--OWNERS2
-rw-r--r--PREUPLOAD.cfg2
-rw-r--r--aosp_husky_61_pgagnostic.mk22
-rw-r--r--aosp_shiba_61_pgagnostic.mk22
-rw-r--r--audio/husky/aidl_config/Android.bp63
-rw-r--r--audio/husky/aidl_config/audio_platform_configuration.xml18
-rw-r--r--audio/husky/aidl_config/mixer_paths_aidl.xml92
-rw-r--r--audio/husky/audio-tables.mk11
-rw-r--r--audio/husky/config/audio_policy_configuration.xml3
-rw-r--r--audio/husky/config/audio_policy_configuration_a2dp_offload_disabled.xml3
-rw-r--r--audio/husky/config/audio_policy_configuration_le_offload_disabled.xml3
-rw-r--r--audio/husky/tuning/bluenote/smartfeature.gstfbin236 -> 236 bytes
-rw-r--r--audio/husky/tuning/fortemedia/BLUETOOTH.datbin279682 -> 279682 bytes
-rw-r--r--audio/husky/tuning/fortemedia/BLUETOOTH.mods6
-rw-r--r--audio/husky/tuning/fortemedia/HANDSET.datbin258170 -> 258170 bytes
-rw-r--r--audio/husky/tuning/fortemedia/HANDSET.mods70
-rw-r--r--audio/husky/tuning/fortemedia/HANDSFREE.datbin118342 -> 118342 bytes
-rw-r--r--audio/husky/tuning/fortemedia/HANDSFREE.mods6
-rw-r--r--audio/husky/tuning/fortemedia/HEADSET.datbin430266 -> 430266 bytes
-rw-r--r--audio/husky/tuning/fortemedia/HEADSET.mods10
-rw-r--r--audio/shiba/aidl_config/Android.bp63
-rw-r--r--audio/shiba/aidl_config/audio_platform_configuration.xml18
-rw-r--r--audio/shiba/aidl_config/mixer_paths_aidl.xml92
-rw-r--r--audio/shiba/audio-tables.mk11
-rw-r--r--audio/shiba/config/audio_policy_configuration.xml3
-rw-r--r--audio/shiba/config/audio_policy_configuration_a2dp_offload_disabled.xml3
-rw-r--r--audio/shiba/config/audio_policy_configuration_le_offload_disabled.xml3
-rw-r--r--audio/shiba/tuning/bluenote/smartfeature.gstfbin236 -> 236 bytes
-rw-r--r--audio/shiba/tuning/fortemedia/BLUETOOTH.datbin279682 -> 279682 bytes
-rw-r--r--audio/shiba/tuning/fortemedia/BLUETOOTH.mods48
-rw-r--r--audio/shiba/tuning/fortemedia/HANDSET.datbin258170 -> 258170 bytes
-rw-r--r--audio/shiba/tuning/fortemedia/HANDSET.mods70
-rw-r--r--audio/shiba/tuning/fortemedia/HANDSFREE.datbin118342 -> 118342 bytes
-rw-r--r--audio/shiba/tuning/fortemedia/HANDSFREE.mods6
-rw-r--r--audio/shiba/tuning/fortemedia/HEADSET.datbin430266 -> 430266 bytes
-rw-r--r--audio/shiba/tuning/fortemedia/HEADSET.mods10
-rw-r--r--avf/Android.bp22
-rw-r--r--avf/assignable_devices.xml22
-rw-r--r--bluetooth/bt_vendor_overlay.conf6
-rw-r--r--bluetooth/bt_vendor_overlay_ripcurrent.conf3
-rw-r--r--bluetooth/le_audio_codec_capabilities.xml9
-rw-r--r--camera/camera.mk24
-rw-r--r--conf/init.husky.rc71
-rw-r--r--conf/init.ripcurrent.rc80
-rw-r--r--conf/init.shiba.rc71
-rw-r--r--device-husky.mk80
-rw-r--r--device-ripcurrent.mk44
-rw-r--r--device-shiba.mk63
-rw-r--r--husky/BoardConfig.mk28
-rw-r--r--husky/overlay/frameworks/base/core/res/res/values/config.xml3
-rw-r--r--husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_g1mnw_cn.pngbin417331 -> 154638 bytes
-rw-r--r--husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_g1mnw_vn.pngbin414072 -> 152997 bytes
-rw-r--r--husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_gc3ve_cn.pngbin600060 -> 227460 bytes
-rw-r--r--husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_gc3ve_vn.pngbin520906 -> 195257 bytes
-rw-r--r--husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_ge9dp_cn.pngbin701493 -> 277198 bytes
-rw-r--r--husky/rro_overlays/NfcOverlay/Android.bp9
-rw-r--r--husky/rro_overlays/NfcOverlay/AndroidManifest.xml27
-rw-r--r--husky/rro_overlays/NfcOverlay/OWNERS2
-rw-r--r--husky/rro_overlays/NfcOverlay/res/values/config.xml35
-rw-r--r--husky/rro_overlays/UwbOverlay/res/values/config.xml13
-rw-r--r--location/gps.xml2
-rw-r--r--location/gps.xml.hk32
-rw-r--r--location/gps.xml.sb32
-rw-r--r--location/gps_user.xml2
-rw-r--r--location/gps_user.xml.hk32
-rw-r--r--location/gps_user.xml.sb32
-rw-r--r--media_profiles_husky.xml1808
-rw-r--r--media_profiles_ripcurrent.xml1808
-rw-r--r--media_profiles_shiba.xml1440
-rw-r--r--perf/powerhint-husky.json150
-rw-r--r--perf/powerhint-ripcurrent.json150
-rw-r--r--perf/powerhint-shiba.json150
-rw-r--r--ripcurrent/BoardConfig.mk8
-rw-r--r--rro_overlays/WifiOverlay/res/values/config.xml5
-rw-r--r--self-extractors_husky/google_devices/staging/Android.mk2
-rw-r--r--self-extractors_shiba/google_devices/staging/Android.mk2
-rw-r--r--shiba/BoardConfig.mk18
-rw-r--r--shiba/overlay/frameworks/base/core/res/res/values/config.xml3
-rw-r--r--shiba/overlay/frameworks/base/packages/SystemUI/res-keyguard/values/dimens.xml (renamed from husky/overlay/frameworks/base/packages/SystemUI/res/values/flags.xml)7
-rw-r--r--shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_g9bqd_cn.pngbin150615 -> 58780 bytes
-rw-r--r--shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_g9bqd_vn.pngbin149463 -> 58148 bytes
-rw-r--r--shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gkws6_cn.pngbin309748 -> 108218 bytes
-rw-r--r--shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gkws6_vn.pngbin309952 -> 108617 bytes
-rw-r--r--shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gpj41_cn.pngbin647079 -> 246008 bytes
-rw-r--r--shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gpj41_vn.pngbin567947 -> 212534 bytes
-rw-r--r--shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gzpf0_cn.pngbin699202 -> 278060 bytes
-rw-r--r--shiba/rro_overlays/NfcOverlay/Android.bp9
-rw-r--r--shiba/rro_overlays/NfcOverlay/AndroidManifest.xml27
-rw-r--r--shiba/rro_overlays/NfcOverlay/OWNERS2
-rw-r--r--shiba/rro_overlays/NfcOverlay/res/values/config.xml35
-rw-r--r--thermal/Android.bp61
-rw-r--r--thermal/thermal_config_test.cpp55
-rw-r--r--thermal/thermal_info_config_charge_husky.json60
-rw-r--r--thermal/thermal_info_config_charge_ripcurrent.json14
-rw-r--r--thermal/thermal_info_config_charge_shiba.json60
-rw-r--r--thermal/thermal_info_config_husky.json280
-rw-r--r--thermal/thermal_info_config_ripcurrent.json284
-rw-r--r--thermal/thermal_info_config_shiba.json267
-rw-r--r--thermal/thermal_info_config_test.h58
-rw-r--r--uwb/Android.bp70
-rw-r--r--uwb/UWB-calibration.conf142
-rw-r--r--uwb/calibration-CE.conf151
-rw-r--r--uwb/calibration-FCC.conf151
-rw-r--r--uwb/calibration-JP.conf101
-rw-r--r--uwb/calibration-RESTRICTED.conf3
-rw-r--r--uwb/calibration-TW.conf151
-rw-r--r--uwb/calibration-default.conf151
-rw-r--r--uwb/calibration.conf39
-rw-r--r--uwb/configuration.conf122
-rw-r--r--uwb/uwb_calibration.mk14
111 files changed, 3081 insertions, 6063 deletions
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
index b343f20..fb1ae52 100644
--- a/AndroidProducts.mk
+++ b/AndroidProducts.mk
@@ -19,10 +19,12 @@ PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/aosp_ripcurrent_fullmte.mk \
$(LOCAL_DIR)/factory_ripcurrent.mk \
$(LOCAL_DIR)/aosp_husky.mk \
+ $(LOCAL_DIR)/aosp_husky_61_pgagnostic.mk \
$(LOCAL_DIR)/aosp_husky_fullmte.mk \
$(LOCAL_DIR)/aosp_husky_pgagnostic.mk \
$(LOCAL_DIR)/factory_husky.mk \
$(LOCAL_DIR)/aosp_shiba.mk \
+ $(LOCAL_DIR)/aosp_shiba_61_pgagnostic.mk \
$(LOCAL_DIR)/aosp_shiba_fullmte.mk \
$(LOCAL_DIR)/aosp_shiba_pgagnostic.mk \
$(LOCAL_DIR)/factory_shiba.mk
diff --git a/OWNERS b/OWNERS
index 492973e..0914422 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,4 +1,4 @@
per-file perf/*,thermal/*= 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:master:/OWNERS
+per-file *.mk,*/BoardConfig.mk=file:device/google/gs-common:main:/OWNERS
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
new file mode 100644
index 0000000..37ebb5e
--- /dev/null
+++ b/PREUPLOAD.cfg
@@ -0,0 +1,2 @@
+[Builtin Hooks]
+jsonlint = true
diff --git a/aosp_husky_61_pgagnostic.mk b/aosp_husky_61_pgagnostic.mk
new file mode 100644
index 0000000..5687be9
--- /dev/null
+++ b/aosp_husky_61_pgagnostic.mk
@@ -0,0 +1,22 @@
+#
+# 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/pixel_61/aosp_husky_61.mk)
+
+PRODUCT_NAME := aosp_husky_61_pgagnostic
+PRODUCT_MODEL := AOSP page-size agnostic Husky 64K ELF
+
+PRODUCT_PAGE_SIZE_AGNOSTIC := true
+PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 65536
diff --git a/aosp_shiba_61_pgagnostic.mk b/aosp_shiba_61_pgagnostic.mk
new file mode 100644
index 0000000..adf61d0
--- /dev/null
+++ b/aosp_shiba_61_pgagnostic.mk
@@ -0,0 +1,22 @@
+#
+# 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/pixel_61/aosp_shiba_61.mk)
+
+PRODUCT_NAME := aosp_shiba_61_pgagnostic
+PRODUCT_MODEL := AOSP page-size agnostic Shiba 64K ELF
+
+PRODUCT_PAGE_SIZE_AGNOSTIC := true
+PRODUCT_MAX_PAGE_SIZE_SUPPORTED := 65536
diff --git a/audio/husky/aidl_config/Android.bp b/audio/husky/aidl_config/Android.bp
new file mode 100644
index 0000000..223b678
--- /dev/null
+++ b/audio/husky/aidl_config/Android.bp
@@ -0,0 +1,63 @@
+// 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 {
+ imports: [
+ "frameworks/av/services/audiopolicy/config",
+ ]
+}
+
+package {
+ default_applicable_licenses: [
+ "Android-Apache-2.0",
+ ],
+}
+
+prebuilt_etc {
+ name: "audio_policy_volumes.xml",
+ src: "audio_policy_volumes.xml",
+ soc_specific: true,
+}
+
+prebuilt_etc {
+ name: "imported_default_volume_tables.xml",
+ src: "//frameworks/av/services/audiopolicy/config:default_volume_tables.xml",
+ soc_specific: true,
+ filename_from_src: true,
+}
+
+prebuilt_etc {
+ name: "audio_platform_configuration.xml",
+ src: "audio_platform_configuration.xml",
+ soc_specific: true,
+ required: [
+ "audio_policy_volumes.xml",
+ "imported_default_volume_tables.xml",
+ ],
+}
+
+prebuilt_etc {
+ name: "mixer_paths_aidl.xml",
+ src: "mixer_paths_aidl.xml",
+ soc_specific: true,
+}
+
+phony {
+ name: "audio_aidl_configs",
+ soc_specific: true,
+ required: [
+ "audio_platform_configuration.xml",
+ "mixer_paths_aidl.xml"
+ ],
+}
diff --git a/audio/husky/aidl_config/audio_platform_configuration.xml b/audio/husky/aidl_config/audio_platform_configuration.xml
index 8707d44..1e775b2 100644
--- a/audio/husky/aidl_config/audio_platform_configuration.xml
+++ b/audio/husky/aidl_config/audio_platform_configuration.xml
@@ -15,10 +15,6 @@
-->
<audioPlatformConfiguration xmlns:xi="http://www.w3.org/2001/XInclude">
<features>
- <feature name="ThermalThrottle">
- <argument name="Type" value="SKIN" />
- <argument name="Name" value="VIRTUAL-SKIN" />
- </feature>
<feature name="BatteryThrottle">
<argument name="Type" value="BCL_VOLTAGE" />
<argument name="Name" value="BCL_AUDIO_BAACL" />
@@ -26,7 +22,7 @@
</feature>
<feature name="PlaybackThermalThrottle">
<argument name="PollWaitMs" value="20000" />
- <argument name="ThermistorName" value="VIRTUAL-SKIN" />
+ <argument name="ThermistorName" value="VIRTUAL-SKIN-SPEAKER" />
<argument name="ThermistorType" value="SKIN" />
<argument name="ThrottlingSeverity" value="MODERATE" />
</feature>
@@ -47,15 +43,7 @@
<devices>
<device name="bluetooth" />
- <device name="usb">
- <argument name="MaxSamplingRate" value="192000" />
- <argument name="UnsupportedFormat" value="S24_LE" />
- <argument name="MaxCapPacketInterval" value="125" />
- <argument name="MaxCapSampleRate" value="192000" />
- <argument name="MaxCapBitWidth" value="32" />
- <argument name="MaxCapChannel" value="2" />
- <argument name="EnableHifi192kMultichannel" value="0" />
- </device>
+ <device name="usb" />
<device name="speaker" codec="cs35l41">
<argument name="SpeakerNum" value="2" />
<argument name="Rotation" />
@@ -66,7 +54,7 @@
<tuners>
<tuner type="playback" name="waves">
<argument name="Sink" value="SPK" />
- <argument name="ThermistorsName" value="VIRTUAL-SKIN" />
+ <argument name="ThermistorsName" value="VIRTUAL-SKIN-SPEAKER" />
</tuner>
<tuner type="telephony" name="fortemedia">
<argument name="VoIP_DLCHs" value="SPK:2,USB:2" />
diff --git a/audio/husky/aidl_config/mixer_paths_aidl.xml b/audio/husky/aidl_config/mixer_paths_aidl.xml
index 48016b4..d22b97c 100644
--- a/audio/husky/aidl_config/mixer_paths_aidl.xml
+++ b/audio/husky/aidl_config/mixer_paths_aidl.xml
@@ -405,6 +405,14 @@
<path name="primary-playback -> bt" />
</path>
+ <path name="primary-playback-0 -> bluetooth-low-energy-headset">
+ <path name="primary-playback -> bt" />
+ </path>
+
+ <path name="primary-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="primary-playback -> bt" />
+ </path>
+
<path name="primary-playback-0 -> usb">
<ctl name="USB_RX Mixer EP2" value="1" />
</path>
@@ -465,6 +473,14 @@
<path name="raw-playback -> bt" />
</path>
+ <path name="raw-playback-0 -> bluetooth-low-energy-headset">
+ <path name="raw-playback -> bt" />
+ </path>
+
+ <path name="raw-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="raw-playback -> bt" />
+ </path>
+
<path name="raw-playback-0 -> usb">
<ctl name="USB_RX Mixer RAW" value="1" />
</path>
@@ -525,6 +541,14 @@
<path name="deep-buffer-playback -> bt" />
</path>
+ <path name="deep-buffer-playback-0 -> bluetooth-low-energy-headset">
+ <path name="deep-buffer-playback -> bt" />
+ </path>
+
+ <path name="deep-buffer-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="deep-buffer-playback -> bt" />
+ </path>
+
<path name="deep-buffer-playback-0 -> usb">
<ctl name="USB_RX Mixer EP6" value="1" />
</path>
@@ -590,6 +614,14 @@
<path name="compress-offload-playback -> bt" />
</path>
+ <path name="compress-offload-playback-0 -> bluetooth-low-energy-headset">
+ <path name="compress-offload-playback -> bt" />
+ </path>
+
+ <path name="compress-offload-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="compress-offload-playback -> bt" />
+ </path>
+
<path name="compress-offload-playback-0 -> usb">
<ctl name="USB_RX Mixer EP7" value="1" />
</path>
@@ -650,6 +682,14 @@
<path name="mmap-playback -> bt" />
</path>
+ <path name="mmap-playback-0 -> bluetooth-low-energy-headset">
+ <path name="mmap-playback -> bt" />
+ </path>
+
+ <path name="mmap-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="mmap-playback -> bt" />
+ </path>
+
<path name="mmap-playback-0 -> usb">
<ctl name="USB_RX Mixer EP1" value="1" />
</path>
@@ -722,6 +762,14 @@
<path name="voip-playback -> bt" />
</path>
+ <path name="voip-playback-0 -> bluetooth-low-energy-headset">
+ <path name="voip-playback -> bt" />
+ </path>
+
+ <path name="voip-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="voip-playback -> bt" />
+ </path>
+
<path name="voip-playback-0 -> usb">
<ctl name="USB_RX Mixer VOIP" value="1" />
</path>
@@ -832,6 +880,14 @@
<path name="haptic-playback -> bt" />
</path>
+ <path name="haptic-playback-0 -> bluetooth-low-energy-headset">
+ <path name="haptic-playback -> bt" />
+ </path>
+
+ <path name="haptic-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="haptic-playback -> bt" />
+ </path>
+
<path name="haptic-playback-0 -> usb">
<ctl name="USB_RX Mixer EP3" value="1" />
<ctl name="TDM_0_RX Mixer EP8" value="1" />
@@ -866,6 +922,14 @@
<path name="usb-microphones -> primary-capture-0" />
</path>
+ <path name="bluetooth-sco-headset-microphones -> primary-capture-0">
+ <ctl name="EP1 TX Mixer BT_TX" value="1" />
+ </path>
+
+ <path name="bluetooth-low-energy-headset-microphones -> primary-capture-0">
+ <ctl name="EP1 TX Mixer BT_TX" value="1" />
+ </path>
+
<path name="microphones -> voip-capture-0">
<ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="1" />
</path>
@@ -890,6 +954,10 @@
<ctl name="VOIP TX Mixer BT_TX" value="1" />
</path>
+ <path name="bluetooth-low-energy-headset-microphones -> voip-capture-0">
+ <ctl name="VOIP TX Mixer BT_TX" value="1" />
+ </path>
+
<path name="microphones -> fast-capture-0">
<ctl name="EP3 TX Mixer INTERNAL_MIC_TX" value="1" />
</path>
@@ -914,6 +982,10 @@
<ctl name="EP3 TX Mixer BT_TX" value="1" />
</path>
+ <path name="bluetooth-low-energy-headset-microphones -> fast-capture-0">
+ <ctl name="EP3 TX Mixer BT_TX" value="1" />
+ </path>
+
<path name="microphones -> sound-trigger-capture-0">
</path>
@@ -948,6 +1020,14 @@
<path name="voice-call-downlink-0 -> bt" />
</path>
+ <path name="voice-call-downlink-0 -> bluetooth-low-energy-headset">
+ <path name="voice-call-downlink-0 -> bt" />
+ </path>
+
+ <path name="voice-call-downlink-0 -> bluetooth-low-energy-speaker">
+ <path name="voice-call-downlink-0 -> bt" />
+ </path>
+
<path name="voice-call-downlink-0 -> usb">
<ctl name="USB_RX Mixer EP5" value="1" />
</path>
@@ -988,6 +1068,10 @@
<ctl name="EP4 TX Mixer BT_TX" value="1" />
</path>
+ <path name="bluetooth-low-energy-headset-microphones -> voice-call-uplink-0">
+ <ctl name="EP4 TX Mixer BT_TX" value="1" />
+ </path>
+
<path name="null-source -> voice-call-uplink-0">
<ctl name="EP4 TX Mixer INCALL_TX" value="1" />
</path>
@@ -1052,6 +1136,10 @@
<ctl name="EP2 TX Mixer BT_TX" value="1" />
</path>
+ <path name="bluetooth-low-energy-headset-microphones -> mmap-capture-0">
+ <ctl name="EP2 TX Mixer BT_TX" value="1" />
+ </path>
+
<!-- codec setting -->
<!-- Rx device -->
<path name="speaker-earpiece">
@@ -1222,6 +1310,10 @@
<ctl name="MIC Record Soft Gain (dB)" value="0" />
</path>
+ <path name="bluetooth-low-energy-headset-microphones">
+ <path name="bluetooth-sco-headset-microphones" />
+ </path>
+
<path name="usb-headset-microphones">
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="0" value="0" />
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="1" value="3" />
diff --git a/audio/husky/audio-tables.mk b/audio/husky/audio-tables.mk
index 8aae616..e1b429a 100644
--- a/audio/husky/audio-tables.mk
+++ b/audio/husky/audio-tables.mk
@@ -16,14 +16,11 @@
AUDIO_TABLE_FOLDER := husky
-# Enable this to build AIDL
-# BUILD_AUDIO_AIDL_VERSION := true
+# Choose AIDL config by build flag.
+ifeq ($(RELEASE_PIXEL_AIDL_AUDIO_HAL),true)
+PRODUCT_SOONG_NAMESPACES += device/google/shusky/audio/$(AUDIO_TABLE_FOLDER)/aidl_config
+PRODUCT_PACKAGES += audio_aidl_configs
-ifeq ($(BUILD_AUDIO_AIDL_VERSION),true)
-PRODUCT_COPY_FILES += \
- device/google/shusky/audio/$(AUDIO_TABLE_FOLDER)/aidl_config/audio_platform_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_configuration.xml \
- device/google/shusky/audio/$(AUDIO_TABLE_FOLDER)/aidl_config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
- device/google/shusky/audio/$(AUDIO_TABLE_FOLDER)/aidl_config/mixer_paths_aidl.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_aidl.xml
else
# Platform Configuration for AudioHAL / SoundTriggerHAL
PRODUCT_COPY_FILES += \
diff --git a/audio/husky/config/audio_policy_configuration.xml b/audio/husky/config/audio_policy_configuration.xml
index 524f102..a9120dd 100644
--- a/audio/husky/config/audio_policy_configuration.xml
+++ b/audio/husky/config/audio_policy_configuration.xml
@@ -50,6 +50,9 @@
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000 16000 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
+ <profile name="" format="AUDIO_FORMAT_OPUS"
+ samplingRates="8000 16000 24000 32000 44100 48000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="haptic" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/audio/husky/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/husky/config/audio_policy_configuration_a2dp_offload_disabled.xml
index 4878bc5..d0dbd1e 100644
--- a/audio/husky/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/husky/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -50,6 +50,9 @@
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000 16000 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
+ <profile name="" format="AUDIO_FORMAT_OPUS"
+ samplingRates="8000 16000 24000 32000 44100 48000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="haptic" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/audio/husky/config/audio_policy_configuration_le_offload_disabled.xml b/audio/husky/config/audio_policy_configuration_le_offload_disabled.xml
index 25bac3d..82b3017 100644
--- a/audio/husky/config/audio_policy_configuration_le_offload_disabled.xml
+++ b/audio/husky/config/audio_policy_configuration_le_offload_disabled.xml
@@ -50,6 +50,9 @@
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000 16000 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
+ <profile name="" format="AUDIO_FORMAT_OPUS"
+ samplingRates="8000 16000 24000 32000 44100 48000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="haptic" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/audio/husky/tuning/bluenote/smartfeature.gstf b/audio/husky/tuning/bluenote/smartfeature.gstf
index f669a07..d174ae3 100644
--- a/audio/husky/tuning/bluenote/smartfeature.gstf
+++ b/audio/husky/tuning/bluenote/smartfeature.gstf
Binary files differ
diff --git a/audio/husky/tuning/fortemedia/BLUETOOTH.dat b/audio/husky/tuning/fortemedia/BLUETOOTH.dat
index b70e534..765b2e7 100644
--- a/audio/husky/tuning/fortemedia/BLUETOOTH.dat
+++ b/audio/husky/tuning/fortemedia/BLUETOOTH.dat
Binary files differ
diff --git a/audio/husky/tuning/fortemedia/BLUETOOTH.mods b/audio/husky/tuning/fortemedia/BLUETOOTH.mods
index f93e51a..ad7d9ee 100644
--- a/audio/husky/tuning/fortemedia/BLUETOOTH.mods
+++ b/audio/husky/tuning/fortemedia/BLUETOOTH.mods
@@ -3,7 +3,7 @@
#EXPORT_FLAG BLUETOOTH
#PARAM_MODE FULL
#SAVE_MODE 3
-#SAVE_TIME 2023-09-14 20:13:28
+#SAVE_TIME 2023-12-11 17:35:22
#CASE_NAME BLUETOOTH-BT_HAC-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
@@ -3228,8 +3228,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
diff --git a/audio/husky/tuning/fortemedia/HANDSET.dat b/audio/husky/tuning/fortemedia/HANDSET.dat
index 7762398..49c8696 100644
--- a/audio/husky/tuning/fortemedia/HANDSET.dat
+++ b/audio/husky/tuning/fortemedia/HANDSET.dat
Binary files differ
diff --git a/audio/husky/tuning/fortemedia/HANDSET.mods b/audio/husky/tuning/fortemedia/HANDSET.mods
index b7fb237..b9b4d9a 100644
--- a/audio/husky/tuning/fortemedia/HANDSET.mods
+++ b/audio/husky/tuning/fortemedia/HANDSET.mods
@@ -3,7 +3,7 @@
#EXPORT_FLAG HANDSET
#PARAM_MODE FULL
#SAVE_MODE 3
-#SAVE_TIME 2023-09-14 20:10:18
+#SAVE_TIME 2023-12-11 17:49:37
#CASE_NAME HANDSET-HANDSET-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
@@ -533,8 +533,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x6000 //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -3228,8 +3228,8 @@
521 0x0000 //TX_GSC_RTOL_TH
522 0x0000 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -5923,8 +5923,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -11313,8 +11313,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x6000 //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -14008,8 +14008,8 @@
521 0x0000 //TX_GSC_RTOL_TH
522 0x0000 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -16703,8 +16703,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -22093,8 +22093,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -27483,8 +27483,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -32873,8 +32873,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -38263,8 +38263,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -40958,8 +40958,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x6000 //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -43653,8 +43653,8 @@
521 0x0000 //TX_GSC_RTOL_TH
522 0x0000 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -46348,8 +46348,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -51738,8 +51738,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x6000 //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -54433,8 +54433,8 @@
521 0x0000 //TX_GSC_RTOL_TH
522 0x0000 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -57128,8 +57128,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -62518,8 +62518,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
diff --git a/audio/husky/tuning/fortemedia/HANDSFREE.dat b/audio/husky/tuning/fortemedia/HANDSFREE.dat
index 72a9f6c..01c0e4c 100644
--- a/audio/husky/tuning/fortemedia/HANDSFREE.dat
+++ b/audio/husky/tuning/fortemedia/HANDSFREE.dat
Binary files differ
diff --git a/audio/husky/tuning/fortemedia/HANDSFREE.mods b/audio/husky/tuning/fortemedia/HANDSFREE.mods
index d1f4462..671700d 100644
--- a/audio/husky/tuning/fortemedia/HANDSFREE.mods
+++ b/audio/husky/tuning/fortemedia/HANDSFREE.mods
@@ -3,7 +3,7 @@
#EXPORT_FLAG HANDSFREE
#PARAM_MODE FULL
#SAVE_MODE 3
-#SAVE_TIME 2023-09-14 20:13:51
+#SAVE_TIME 2023-12-11 17:35:21
#CASE_NAME HANDSFREE-HANDSFREE-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
@@ -3228,8 +3228,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
diff --git a/audio/husky/tuning/fortemedia/HEADSET.dat b/audio/husky/tuning/fortemedia/HEADSET.dat
index f41d674..e41c175 100644
--- a/audio/husky/tuning/fortemedia/HEADSET.dat
+++ b/audio/husky/tuning/fortemedia/HEADSET.dat
Binary files differ
diff --git a/audio/husky/tuning/fortemedia/HEADSET.mods b/audio/husky/tuning/fortemedia/HEADSET.mods
index 1dd2d98..c531e74 100644
--- a/audio/husky/tuning/fortemedia/HEADSET.mods
+++ b/audio/husky/tuning/fortemedia/HEADSET.mods
@@ -3,7 +3,7 @@
#EXPORT_FLAG HEADSET
#PARAM_MODE FULL
#SAVE_MODE 3
-#SAVE_TIME 2023-09-14 20:13:07
+#SAVE_TIME 2023-12-11 17:35:18
#CASE_NAME HEADSET-USB_BLACKBIRD-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
@@ -30178,8 +30178,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -70603,8 +70603,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
diff --git a/audio/shiba/aidl_config/Android.bp b/audio/shiba/aidl_config/Android.bp
new file mode 100644
index 0000000..223b678
--- /dev/null
+++ b/audio/shiba/aidl_config/Android.bp
@@ -0,0 +1,63 @@
+// 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 {
+ imports: [
+ "frameworks/av/services/audiopolicy/config",
+ ]
+}
+
+package {
+ default_applicable_licenses: [
+ "Android-Apache-2.0",
+ ],
+}
+
+prebuilt_etc {
+ name: "audio_policy_volumes.xml",
+ src: "audio_policy_volumes.xml",
+ soc_specific: true,
+}
+
+prebuilt_etc {
+ name: "imported_default_volume_tables.xml",
+ src: "//frameworks/av/services/audiopolicy/config:default_volume_tables.xml",
+ soc_specific: true,
+ filename_from_src: true,
+}
+
+prebuilt_etc {
+ name: "audio_platform_configuration.xml",
+ src: "audio_platform_configuration.xml",
+ soc_specific: true,
+ required: [
+ "audio_policy_volumes.xml",
+ "imported_default_volume_tables.xml",
+ ],
+}
+
+prebuilt_etc {
+ name: "mixer_paths_aidl.xml",
+ src: "mixer_paths_aidl.xml",
+ soc_specific: true,
+}
+
+phony {
+ name: "audio_aidl_configs",
+ soc_specific: true,
+ required: [
+ "audio_platform_configuration.xml",
+ "mixer_paths_aidl.xml"
+ ],
+}
diff --git a/audio/shiba/aidl_config/audio_platform_configuration.xml b/audio/shiba/aidl_config/audio_platform_configuration.xml
index 8707d44..1e775b2 100644
--- a/audio/shiba/aidl_config/audio_platform_configuration.xml
+++ b/audio/shiba/aidl_config/audio_platform_configuration.xml
@@ -15,10 +15,6 @@
-->
<audioPlatformConfiguration xmlns:xi="http://www.w3.org/2001/XInclude">
<features>
- <feature name="ThermalThrottle">
- <argument name="Type" value="SKIN" />
- <argument name="Name" value="VIRTUAL-SKIN" />
- </feature>
<feature name="BatteryThrottle">
<argument name="Type" value="BCL_VOLTAGE" />
<argument name="Name" value="BCL_AUDIO_BAACL" />
@@ -26,7 +22,7 @@
</feature>
<feature name="PlaybackThermalThrottle">
<argument name="PollWaitMs" value="20000" />
- <argument name="ThermistorName" value="VIRTUAL-SKIN" />
+ <argument name="ThermistorName" value="VIRTUAL-SKIN-SPEAKER" />
<argument name="ThermistorType" value="SKIN" />
<argument name="ThrottlingSeverity" value="MODERATE" />
</feature>
@@ -47,15 +43,7 @@
<devices>
<device name="bluetooth" />
- <device name="usb">
- <argument name="MaxSamplingRate" value="192000" />
- <argument name="UnsupportedFormat" value="S24_LE" />
- <argument name="MaxCapPacketInterval" value="125" />
- <argument name="MaxCapSampleRate" value="192000" />
- <argument name="MaxCapBitWidth" value="32" />
- <argument name="MaxCapChannel" value="2" />
- <argument name="EnableHifi192kMultichannel" value="0" />
- </device>
+ <device name="usb" />
<device name="speaker" codec="cs35l41">
<argument name="SpeakerNum" value="2" />
<argument name="Rotation" />
@@ -66,7 +54,7 @@
<tuners>
<tuner type="playback" name="waves">
<argument name="Sink" value="SPK" />
- <argument name="ThermistorsName" value="VIRTUAL-SKIN" />
+ <argument name="ThermistorsName" value="VIRTUAL-SKIN-SPEAKER" />
</tuner>
<tuner type="telephony" name="fortemedia">
<argument name="VoIP_DLCHs" value="SPK:2,USB:2" />
diff --git a/audio/shiba/aidl_config/mixer_paths_aidl.xml b/audio/shiba/aidl_config/mixer_paths_aidl.xml
index 48016b4..d22b97c 100644
--- a/audio/shiba/aidl_config/mixer_paths_aidl.xml
+++ b/audio/shiba/aidl_config/mixer_paths_aidl.xml
@@ -405,6 +405,14 @@
<path name="primary-playback -> bt" />
</path>
+ <path name="primary-playback-0 -> bluetooth-low-energy-headset">
+ <path name="primary-playback -> bt" />
+ </path>
+
+ <path name="primary-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="primary-playback -> bt" />
+ </path>
+
<path name="primary-playback-0 -> usb">
<ctl name="USB_RX Mixer EP2" value="1" />
</path>
@@ -465,6 +473,14 @@
<path name="raw-playback -> bt" />
</path>
+ <path name="raw-playback-0 -> bluetooth-low-energy-headset">
+ <path name="raw-playback -> bt" />
+ </path>
+
+ <path name="raw-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="raw-playback -> bt" />
+ </path>
+
<path name="raw-playback-0 -> usb">
<ctl name="USB_RX Mixer RAW" value="1" />
</path>
@@ -525,6 +541,14 @@
<path name="deep-buffer-playback -> bt" />
</path>
+ <path name="deep-buffer-playback-0 -> bluetooth-low-energy-headset">
+ <path name="deep-buffer-playback -> bt" />
+ </path>
+
+ <path name="deep-buffer-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="deep-buffer-playback -> bt" />
+ </path>
+
<path name="deep-buffer-playback-0 -> usb">
<ctl name="USB_RX Mixer EP6" value="1" />
</path>
@@ -590,6 +614,14 @@
<path name="compress-offload-playback -> bt" />
</path>
+ <path name="compress-offload-playback-0 -> bluetooth-low-energy-headset">
+ <path name="compress-offload-playback -> bt" />
+ </path>
+
+ <path name="compress-offload-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="compress-offload-playback -> bt" />
+ </path>
+
<path name="compress-offload-playback-0 -> usb">
<ctl name="USB_RX Mixer EP7" value="1" />
</path>
@@ -650,6 +682,14 @@
<path name="mmap-playback -> bt" />
</path>
+ <path name="mmap-playback-0 -> bluetooth-low-energy-headset">
+ <path name="mmap-playback -> bt" />
+ </path>
+
+ <path name="mmap-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="mmap-playback -> bt" />
+ </path>
+
<path name="mmap-playback-0 -> usb">
<ctl name="USB_RX Mixer EP1" value="1" />
</path>
@@ -722,6 +762,14 @@
<path name="voip-playback -> bt" />
</path>
+ <path name="voip-playback-0 -> bluetooth-low-energy-headset">
+ <path name="voip-playback -> bt" />
+ </path>
+
+ <path name="voip-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="voip-playback -> bt" />
+ </path>
+
<path name="voip-playback-0 -> usb">
<ctl name="USB_RX Mixer VOIP" value="1" />
</path>
@@ -832,6 +880,14 @@
<path name="haptic-playback -> bt" />
</path>
+ <path name="haptic-playback-0 -> bluetooth-low-energy-headset">
+ <path name="haptic-playback -> bt" />
+ </path>
+
+ <path name="haptic-playback-0 -> bluetooth-low-energy-speaker">
+ <path name="haptic-playback -> bt" />
+ </path>
+
<path name="haptic-playback-0 -> usb">
<ctl name="USB_RX Mixer EP3" value="1" />
<ctl name="TDM_0_RX Mixer EP8" value="1" />
@@ -866,6 +922,14 @@
<path name="usb-microphones -> primary-capture-0" />
</path>
+ <path name="bluetooth-sco-headset-microphones -> primary-capture-0">
+ <ctl name="EP1 TX Mixer BT_TX" value="1" />
+ </path>
+
+ <path name="bluetooth-low-energy-headset-microphones -> primary-capture-0">
+ <ctl name="EP1 TX Mixer BT_TX" value="1" />
+ </path>
+
<path name="microphones -> voip-capture-0">
<ctl name="VOIP TX Mixer INTERNAL_MIC_TX" value="1" />
</path>
@@ -890,6 +954,10 @@
<ctl name="VOIP TX Mixer BT_TX" value="1" />
</path>
+ <path name="bluetooth-low-energy-headset-microphones -> voip-capture-0">
+ <ctl name="VOIP TX Mixer BT_TX" value="1" />
+ </path>
+
<path name="microphones -> fast-capture-0">
<ctl name="EP3 TX Mixer INTERNAL_MIC_TX" value="1" />
</path>
@@ -914,6 +982,10 @@
<ctl name="EP3 TX Mixer BT_TX" value="1" />
</path>
+ <path name="bluetooth-low-energy-headset-microphones -> fast-capture-0">
+ <ctl name="EP3 TX Mixer BT_TX" value="1" />
+ </path>
+
<path name="microphones -> sound-trigger-capture-0">
</path>
@@ -948,6 +1020,14 @@
<path name="voice-call-downlink-0 -> bt" />
</path>
+ <path name="voice-call-downlink-0 -> bluetooth-low-energy-headset">
+ <path name="voice-call-downlink-0 -> bt" />
+ </path>
+
+ <path name="voice-call-downlink-0 -> bluetooth-low-energy-speaker">
+ <path name="voice-call-downlink-0 -> bt" />
+ </path>
+
<path name="voice-call-downlink-0 -> usb">
<ctl name="USB_RX Mixer EP5" value="1" />
</path>
@@ -988,6 +1068,10 @@
<ctl name="EP4 TX Mixer BT_TX" value="1" />
</path>
+ <path name="bluetooth-low-energy-headset-microphones -> voice-call-uplink-0">
+ <ctl name="EP4 TX Mixer BT_TX" value="1" />
+ </path>
+
<path name="null-source -> voice-call-uplink-0">
<ctl name="EP4 TX Mixer INCALL_TX" value="1" />
</path>
@@ -1052,6 +1136,10 @@
<ctl name="EP2 TX Mixer BT_TX" value="1" />
</path>
+ <path name="bluetooth-low-energy-headset-microphones -> mmap-capture-0">
+ <ctl name="EP2 TX Mixer BT_TX" value="1" />
+ </path>
+
<!-- codec setting -->
<!-- Rx device -->
<path name="speaker-earpiece">
@@ -1222,6 +1310,10 @@
<ctl name="MIC Record Soft Gain (dB)" value="0" />
</path>
+ <path name="bluetooth-low-energy-headset-microphones">
+ <path name="bluetooth-sco-headset-microphones" />
+ </path>
+
<path name="usb-headset-microphones">
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="0" value="0" />
<ctl name="BUILDIN MIC ID CAPTURE LIST" id="1" value="3" />
diff --git a/audio/shiba/audio-tables.mk b/audio/shiba/audio-tables.mk
index 9beaa0c..b5e8045 100644
--- a/audio/shiba/audio-tables.mk
+++ b/audio/shiba/audio-tables.mk
@@ -16,14 +16,11 @@
AUDIO_TABLE_FOLDER := shiba
-# Enable this to build AIDL
-# BUILD_AUDIO_AIDL_VERSION := true
+# Choose AIDL config by build flag.
+ifeq ($(RELEASE_PIXEL_AIDL_AUDIO_HAL),true)
+PRODUCT_SOONG_NAMESPACES += device/google/shusky/audio/$(AUDIO_TABLE_FOLDER)/aidl_config
+PRODUCT_PACKAGES += audio_aidl_configs
-ifeq ($(BUILD_AUDIO_AIDL_VERSION),true)
-PRODUCT_COPY_FILES += \
- device/google/shusky/audio/$(AUDIO_TABLE_FOLDER)/aidl_config/audio_platform_configuration.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_configuration.xml \
- device/google/shusky/audio/$(AUDIO_TABLE_FOLDER)/aidl_config/audio_policy_volumes.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_policy_volumes.xml \
- device/google/shusky/audio/$(AUDIO_TABLE_FOLDER)/aidl_config/mixer_paths_aidl.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_aidl.xml
else
# Platform Configuration for AudioHAL / SoundTriggerHAL
PRODUCT_COPY_FILES += \
diff --git a/audio/shiba/config/audio_policy_configuration.xml b/audio/shiba/config/audio_policy_configuration.xml
index 524f102..a9120dd 100644
--- a/audio/shiba/config/audio_policy_configuration.xml
+++ b/audio/shiba/config/audio_policy_configuration.xml
@@ -50,6 +50,9 @@
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000 16000 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
+ <profile name="" format="AUDIO_FORMAT_OPUS"
+ samplingRates="8000 16000 24000 32000 44100 48000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="haptic" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/audio/shiba/config/audio_policy_configuration_a2dp_offload_disabled.xml b/audio/shiba/config/audio_policy_configuration_a2dp_offload_disabled.xml
index 4878bc5..d0dbd1e 100644
--- a/audio/shiba/config/audio_policy_configuration_a2dp_offload_disabled.xml
+++ b/audio/shiba/config/audio_policy_configuration_a2dp_offload_disabled.xml
@@ -50,6 +50,9 @@
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000 16000 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
+ <profile name="" format="AUDIO_FORMAT_OPUS"
+ samplingRates="8000 16000 24000 32000 44100 48000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="haptic" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/audio/shiba/config/audio_policy_configuration_le_offload_disabled.xml b/audio/shiba/config/audio_policy_configuration_le_offload_disabled.xml
index 25bac3d..82b3017 100644
--- a/audio/shiba/config/audio_policy_configuration_le_offload_disabled.xml
+++ b/audio/shiba/config/audio_policy_configuration_le_offload_disabled.xml
@@ -50,6 +50,9 @@
<profile name="" format="AUDIO_FORMAT_AAC_HE_V2"
samplingRates="8000 16000 24000 32000 44100 48000"
channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
+ <profile name="" format="AUDIO_FORMAT_OPUS"
+ samplingRates="8000 16000 24000 32000 44100 48000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO AUDIO_CHANNEL_OUT_MONO"/>
</mixPort>
<mixPort name="haptic" role="source">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
diff --git a/audio/shiba/tuning/bluenote/smartfeature.gstf b/audio/shiba/tuning/bluenote/smartfeature.gstf
index f669a07..d174ae3 100644
--- a/audio/shiba/tuning/bluenote/smartfeature.gstf
+++ b/audio/shiba/tuning/bluenote/smartfeature.gstf
Binary files differ
diff --git a/audio/shiba/tuning/fortemedia/BLUETOOTH.dat b/audio/shiba/tuning/fortemedia/BLUETOOTH.dat
index a7b0a53..ed7839f 100644
--- a/audio/shiba/tuning/fortemedia/BLUETOOTH.dat
+++ b/audio/shiba/tuning/fortemedia/BLUETOOTH.dat
Binary files differ
diff --git a/audio/shiba/tuning/fortemedia/BLUETOOTH.mods b/audio/shiba/tuning/fortemedia/BLUETOOTH.mods
index c5a1c3a..936f68f 100644
--- a/audio/shiba/tuning/fortemedia/BLUETOOTH.mods
+++ b/audio/shiba/tuning/fortemedia/BLUETOOTH.mods
@@ -3,7 +3,7 @@
#EXPORT_FLAG BLUETOOTH
#PARAM_MODE FULL
#SAVE_MODE 3
-#SAVE_TIME 2023-09-13 17:45:23
+#SAVE_TIME 2023-12-11 17:37:02
#CASE_NAME BLUETOOTH-BT_HAC-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
@@ -3228,8 +3228,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -13480,7 +13480,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-BT-VOICE_GENERIC-NB
+#CASE_NAME BLUETOOTH-BTNB-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -16175,7 +16175,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-BT-VOICE_GENERIC-WB
+#CASE_NAME BLUETOOTH-BTNB-VOICE_GENERIC-WB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -18870,7 +18870,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-BT-VOICE_GENERIC-SWB
+#CASE_NAME BLUETOOTH-BTNB-VOICE_GENERIC-SWB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -21565,7 +21565,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-BT-VOICE_GENERIC-FB
+#CASE_NAME BLUETOOTH-BTNB-VOICE_GENERIC-FB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -24260,7 +24260,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-BT-RESERVE2-SWB
+#CASE_NAME BLUETOOTH-BTNB-RESERVE2-SWB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -26955,7 +26955,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-BT_NREC-VOICE_GENERIC-NB
+#CASE_NAME BLUETOOTH-BTNB_NREC-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -29650,7 +29650,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-BT_NREC-VOICE_GENERIC-WB
+#CASE_NAME BLUETOOTH-BTNB_NREC-VOICE_GENERIC-WB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -32345,7 +32345,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-BT_NREC-VOICE_GENERIC-SWB
+#CASE_NAME BLUETOOTH-BTNB_NREC-VOICE_GENERIC-SWB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -35040,7 +35040,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-BT_NREC-VOICE_GENERIC-FB
+#CASE_NAME BLUETOOTH-BTNB_NREC-VOICE_GENERIC-FB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -37735,7 +37735,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-BT_NREC-RESERVE2-SWB
+#CASE_NAME BLUETOOTH-BTNB_NREC-RESERVE2-SWB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -40430,7 +40430,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-RESERVE1-VOICE_GENERIC-NB
+#CASE_NAME BLUETOOTH-BTWB-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -43125,7 +43125,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-RESERVE1-VOICE_GENERIC-WB
+#CASE_NAME BLUETOOTH-BTWB-VOICE_GENERIC-WB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -45820,7 +45820,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-RESERVE1-VOICE_GENERIC-SWB
+#CASE_NAME BLUETOOTH-BTWB-VOICE_GENERIC-SWB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -48515,7 +48515,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-RESERVE1-VOICE_GENERIC-FB
+#CASE_NAME BLUETOOTH-BTWB-VOICE_GENERIC-FB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -51210,7 +51210,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-RESERVE1-RESERVE2-SWB
+#CASE_NAME BLUETOOTH-BTWB-RESERVE2-SWB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -53905,7 +53905,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-RESERVE2-VOICE_GENERIC-NB
+#CASE_NAME BLUETOOTH-BTWB_NREC-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -56600,7 +56600,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-RESERVE2-VOICE_GENERIC-WB
+#CASE_NAME BLUETOOTH-BTWB_NREC-VOICE_GENERIC-WB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -59295,7 +59295,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-RESERVE2-VOICE_GENERIC-SWB
+#CASE_NAME BLUETOOTH-BTWB_NREC-VOICE_GENERIC-SWB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -61990,7 +61990,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-RESERVE2-VOICE_GENERIC-FB
+#CASE_NAME BLUETOOTH-BTWB_NREC-VOICE_GENERIC-FB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -64685,7 +64685,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-RESERVE2-RESERVE2-SWB
+#CASE_NAME BLUETOOTH-BTWB_NREC-RESERVE2-SWB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
@@ -67380,7 +67380,7 @@
286 0x0100 //RX_SPK_VOL
287 0x0000 //RX_VOL_RESRV_0
-#CASE_NAME BLUETOOTH-RESERVE3-VOICE_GENERIC-FB
+#CASE_NAME BLUETOOTH-RESERVE1-VOICE_GENERIC-FB
#PARAM_TYPE TX+2RX
#TOTAL_CUSTOM_STEP 7+7
#TX
diff --git a/audio/shiba/tuning/fortemedia/HANDSET.dat b/audio/shiba/tuning/fortemedia/HANDSET.dat
index 1cf825c..a2a507c 100644
--- a/audio/shiba/tuning/fortemedia/HANDSET.dat
+++ b/audio/shiba/tuning/fortemedia/HANDSET.dat
Binary files differ
diff --git a/audio/shiba/tuning/fortemedia/HANDSET.mods b/audio/shiba/tuning/fortemedia/HANDSET.mods
index 161c088..8904f54 100644
--- a/audio/shiba/tuning/fortemedia/HANDSET.mods
+++ b/audio/shiba/tuning/fortemedia/HANDSET.mods
@@ -3,7 +3,7 @@
#EXPORT_FLAG HANDSET
#PARAM_MODE FULL
#SAVE_MODE 3
-#SAVE_TIME 2023-09-13 17:44:33
+#SAVE_TIME 2023-12-11 17:50:38
#CASE_NAME HANDSET-HANDSET-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
@@ -533,8 +533,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x6000 //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -3228,8 +3228,8 @@
521 0x0000 //TX_GSC_RTOL_TH
522 0x0000 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -5923,8 +5923,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -11313,8 +11313,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x6000 //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -14008,8 +14008,8 @@
521 0x0000 //TX_GSC_RTOL_TH
522 0x0000 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -16703,8 +16703,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -22093,8 +22093,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -27483,8 +27483,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -32873,8 +32873,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -38263,8 +38263,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -40958,8 +40958,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x6000 //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -43653,8 +43653,8 @@
521 0x0000 //TX_GSC_RTOL_TH
522 0x0000 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -46348,8 +46348,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -51738,8 +51738,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x6000 //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -54433,8 +54433,8 @@
521 0x0000 //TX_GSC_RTOL_TH
522 0x0000 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -57128,8 +57128,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -62518,8 +62518,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
diff --git a/audio/shiba/tuning/fortemedia/HANDSFREE.dat b/audio/shiba/tuning/fortemedia/HANDSFREE.dat
index 1180156..59aa956 100644
--- a/audio/shiba/tuning/fortemedia/HANDSFREE.dat
+++ b/audio/shiba/tuning/fortemedia/HANDSFREE.dat
Binary files differ
diff --git a/audio/shiba/tuning/fortemedia/HANDSFREE.mods b/audio/shiba/tuning/fortemedia/HANDSFREE.mods
index 2b2a1e7..c22a849 100644
--- a/audio/shiba/tuning/fortemedia/HANDSFREE.mods
+++ b/audio/shiba/tuning/fortemedia/HANDSFREE.mods
@@ -3,7 +3,7 @@
#EXPORT_FLAG HANDSFREE
#PARAM_MODE FULL
#SAVE_MODE 3
-#SAVE_TIME 2023-09-13 17:44:57
+#SAVE_TIME 2023-12-11 17:37:01
#CASE_NAME HANDSFREE-HANDSFREE-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
@@ -3228,8 +3228,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
diff --git a/audio/shiba/tuning/fortemedia/HEADSET.dat b/audio/shiba/tuning/fortemedia/HEADSET.dat
index ad04751..b4a08d0 100644
--- a/audio/shiba/tuning/fortemedia/HEADSET.dat
+++ b/audio/shiba/tuning/fortemedia/HEADSET.dat
Binary files differ
diff --git a/audio/shiba/tuning/fortemedia/HEADSET.mods b/audio/shiba/tuning/fortemedia/HEADSET.mods
index 945c0f4..ad8943a 100644
--- a/audio/shiba/tuning/fortemedia/HEADSET.mods
+++ b/audio/shiba/tuning/fortemedia/HEADSET.mods
@@ -3,7 +3,7 @@
#EXPORT_FLAG HEADSET
#PARAM_MODE FULL
#SAVE_MODE 3
-#SAVE_TIME 2023-09-13 17:45:47
+#SAVE_TIME 2023-12-11 17:36:58
#CASE_NAME HEADSET-USB_BLACKBIRD-VOICE_GENERIC-NB
#PARAM_TYPE TX+2RX
@@ -30178,8 +30178,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
@@ -70603,8 +70603,8 @@
521 0x3A98 //TX_GSC_RTOL_TH
522 0x3A98 //TX_GSC_RTOH_TH
523 0x7E2C //TX_WIDE2_MEANHTH
-524 0x0000 //TX_DR_RESRV_5
-525 0x0000 //TX_DR_RESRV_6
+524 0x0064 //TX_DR_RESRV_5
+525 0x1000 //TX_DR_RESRV_6
526 0x122E //TX_DR_RESRV_7
527 0x1100 //TX_DR_RESRV_8
528 0x1333 //TX_WIND_MARK_TH
diff --git a/avf/Android.bp b/avf/Android.bp
new file mode 100644
index 0000000..d707db1
--- /dev/null
+++ b/avf/Android.bp
@@ -0,0 +1,22 @@
+//
+// 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.
+
+prebuilt_etc {
+ name: "shusky_assignable_devices.xml",
+ src: "assignable_devices.xml",
+ filename: "assignable_devices.xml",
+ vendor: true,
+ relative_install_path: "avf",
+}
diff --git a/avf/assignable_devices.xml b/avf/assignable_devices.xml
new file mode 100644
index 0000000..baacffc
--- /dev/null
+++ b/avf/assignable_devices.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<devices>
+ <device>
+ <kind>eh</kind>
+ <dtbo_label>eh</dtbo_label>
+ <sysfs_path>/sys/bus/platform/devices/16d00000.eh</sysfs_path>
+ </device>
+</devices>
diff --git a/bluetooth/bt_vendor_overlay.conf b/bluetooth/bt_vendor_overlay.conf
index 82f1e65..e85c15f 100644
--- a/bluetooth/bt_vendor_overlay.conf
+++ b/bluetooth/bt_vendor_overlay.conf
@@ -3,9 +3,6 @@
# Uart port name
UartPort = /dev/ttySAC18
-# Userial type
-UserialType = 2
-
# <boolean> Enable check whether let aoc controls power pin
AocPowerPinCtrlCheckEnable = true
@@ -17,6 +14,9 @@ HwStageDoesNotCtrlPowerPinFromAoc = PROTO1.0-EVT1.0-EVT1.2
# supported by BT firmware.
HwStageWithOldChipFwNoLongerSupport = PROTO1.0-PROTO1.1
+# <boolean> APM Uart skip suspend to aovid hold system too long when BT using AOC UART
+ApmUartSkipSuspend = true
+
# Sar backOff high resolution support
SarBackOffHighResolution = true
diff --git a/bluetooth/bt_vendor_overlay_ripcurrent.conf b/bluetooth/bt_vendor_overlay_ripcurrent.conf
index a4a91d5..2473a1b 100644
--- a/bluetooth/bt_vendor_overlay_ripcurrent.conf
+++ b/bluetooth/bt_vendor_overlay_ripcurrent.conf
@@ -3,9 +3,6 @@
# Uart port name
UartPort = /dev/ttySAC18
-# Userial type
-UserialType = 2
-
# Sar backOff high resolution support
SarBackOffHighResolution = true
diff --git a/bluetooth/le_audio_codec_capabilities.xml b/bluetooth/le_audio_codec_capabilities.xml
index f277589..d988d1b 100644
--- a/bluetooth/le_audio_codec_capabilities.xml
+++ b/bluetooth/le_audio_codec_capabilities.xml
@@ -32,6 +32,9 @@
<scenario encode="OneChanMono_24_2" decode="invalid"/>
<scenario encode="TwoChanStereo_24_2" decode="invalid"/>
<scenario encode="OneChanStereo_24_2" decode="invalid"/>
+ <scenario encode="OneChanMono_48_2" decode="invalid"/>
+ <scenario encode="TwoChanStereo_48_2" decode="invalid"/>
+ <scenario encode="OneChanStereo_48_2" decode="invalid"/>
<scenario encode="OneChanMono_48_4" decode="invalid"/>
<scenario encode="TwoChanStereo_48_4" decode="invalid"/>
<scenario encode="OneChanStereo_48_4" decode="invalid"/>
@@ -44,6 +47,8 @@
<scenario encode="OneChanStereo_16_2" decode="OneChanMono_16_2"/>
<scenario encode="TwoChanStereo_16_2" decode="OneChanMono_16_2"/>
<scenario encode="OneChanMono_16_2" decode="OneChanMono_16_2"/>
+ <scenario encode="OneChanStereo_32_2" decode="OneChanStereo_32_2"/>
+ <scenario encode="OneChanStereo_32_2" decode="OneChanMono_32_2"/>
<scenario encode="TwoChanStereo_32_2" decode="OneChanMono_32_2"/>
<scenario encode="OneChanMono_32_2" decode="OneChanMono_32_2"/>
<!-- broadcast -->
@@ -62,8 +67,12 @@
<configuration name="OneChanMono_24_2" codecConfiguration="LC3_24k_2" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
<configuration name="TwoChanStereo_24_2" codecConfiguration="LC3_24k_2" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
<configuration name="OneChanStereo_24_2" codecConfiguration="LC3_24k_2" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
+ <configuration name="OneChanStereo_32_2" codecConfiguration="LC3_32k_2" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
<configuration name="OneChanMono_32_2" codecConfiguration="LC3_32k_2" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
<configuration name="TwoChanStereo_32_2" codecConfiguration="LC3_32k_2" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
+ <configuration name="OneChanMono_48_2" codecConfiguration="LC3_48k_2" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
+ <configuration name="TwoChanStereo_48_2" codecConfiguration="LC3_48k_2" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
+ <configuration name="OneChanStereo_48_2" codecConfiguration="LC3_48k_2" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
<configuration name="OneChanMono_48_4" codecConfiguration="LC3_48k_4" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
<configuration name="TwoChanStereo_48_4" codecConfiguration="LC3_48k_4" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
<configuration name="OneChanStereo_48_4" codecConfiguration="LC3_48k_4" strategyConfiguration="STEREO_ONE_CIS_PER_DEVICE"/>
diff --git a/camera/camera.mk b/camera/camera.mk
new file mode 100644
index 0000000..6b2a553
--- /dev/null
+++ b/camera/camera.mk
@@ -0,0 +1,24 @@
+#
+# 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.
+#
+
+ifeq ($(CAMERA_PRODUCT),)
+$(error CAMERA_PRODUCT is not set.)
+endif
+
+# go/lyric-soong-variables
+$(call soong_config_set,lyric,camera_hardware,$(CAMERA_PRODUCT))
+$(call soong_config_set,lyric,tuning_product,$(CAMERA_PRODUCT))
+$(call soong_config_set,google3a_config,target_device,$(CAMERA_PRODUCT))
diff --git a/conf/init.husky.rc b/conf/init.husky.rc
index 1b81446..17b081e 100644
--- a/conf/init.husky.rc
+++ b/conf/init.husky.rc
@@ -1,9 +1,6 @@
# Husky specific init.rc
import /vendor/etc/init/hw/init.zuma.rc
-on early-init && property:ro.product.name=husky_fullmte
- export SCUDO_OPTIONS allocation_ring_buffer_size=131072
-
on init && property:ro.vendor.factory=1
import /vendor/etc/init/hw/init.factory.rc
@@ -64,57 +61,23 @@ on property:vendor.all.modules.ready=1
chown system system /mnt/vendor/persist/haptics
chown system system /mnt/vendor/persist/haptics/cs40l26.cal
- chown system system /sys/bus/i2c/devices/6-0043/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/5-0043/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/4-0043/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/6-0043/calibration/q_stored
- chown system system /sys/bus/i2c/devices/5-0043/calibration/q_stored
- chown system system /sys/bus/i2c/devices/4-0043/calibration/q_stored
- chown system system /sys/bus/i2c/devices/6-0043/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/5-0043/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/4-0043/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/6-0043/default/vibe_state
- chown system system /sys/bus/i2c/devices/5-0043/default/vibe_state
- chown system system /sys/bus/i2c/devices/4-0043/default/vibe_state
- chown system system /sys/bus/i2c/devices/6-0043/default/num_waves
- chown system system /sys/bus/i2c/devices/5-0043/default/num_waves
- chown system system /sys/bus/i2c/devices/4-0043/default/num_waves
- chown system system /sys/bus/i2c/devices/6-0043/default/f0_offset
- chown system system /sys/bus/i2c/devices/5-0043/default/f0_offset
- chown system system /sys/bus/i2c/devices/4-0043/default/f0_offset
- chown system system /sys/bus/i2c/devices/6-0043/default/owt_free_space
- chown system system /sys/bus/i2c/devices/5-0043/default/owt_free_space
- chown system system /sys/bus/i2c/devices/4-0043/default/owt_free_space
- chown system system /sys/bus/i2c/devices/6-0043/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/5-0043/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/4-0043/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/6-0043/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/5-0043/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/4-0043/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/6-0043/default/delay_before_stop_playback_us
- chown system system /sys/bus/i2c/devices/5-0043/default/delay_before_stop_playback_us
- chown system system /sys/bus/i2c/devices/4-0043/default/delay_before_stop_playback_us
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_env_rel_coef
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_env_rel_coef
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_env_rel_coef
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_rise_headroom
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_rise_headroom
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_rise_headroom
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_fall_headroom
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_fall_headroom
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_fall_headroom
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_enable
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_enable
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_enable
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_tx_lvl_thresh_fs
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_tx_lvl_thresh_fs
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_tx_lvl_thresh_fs
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_tx_lvl_hold_off_ms
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_tx_lvl_hold_off_ms
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_tx_lvl_hold_off_ms
- chown system system /sys/bus/i2c/devices/6-0043/default/pm_active_timeout_ms
- chown system system /sys/bus/i2c/devices/5-0043/default/pm_active_timeout_ms
- chown system system /sys/bus/i2c/devices/4-0043/default/pm_active_timeout_ms
+ chown system system /sys/bus/i2c/devices/0-0043/calibration/f0_stored
+ chown system system /sys/bus/i2c/devices/0-0043/calibration/q_stored
+ chown system system /sys/bus/i2c/devices/0-0043/calibration/redc_stored
+ chown system system /sys/bus/i2c/devices/0-0043/default/vibe_state
+ chown system system /sys/bus/i2c/devices/0-0043/default/num_waves
+ chown system system /sys/bus/i2c/devices/0-0043/default/f0_offset
+ chown system system /sys/bus/i2c/devices/0-0043/default/owt_free_space
+ chown system system /sys/bus/i2c/devices/0-0043/default/f0_comp_enable
+ chown system system /sys/bus/i2c/devices/0-0043/default/redc_comp_enable
+ chown system system /sys/bus/i2c/devices/0-0043/default/delay_before_stop_playback_us
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_env_rel_coef
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_rise_headroom
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_fall_headroom
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_enable
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_tx_lvl_thresh_fs
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_tx_lvl_hold_off_ms
+ chown system system /sys/bus/i2c/devices/0-0043/default/pm_active_timeout_ms
enable vendor.vibrator.cs40l26
diff --git a/conf/init.ripcurrent.rc b/conf/init.ripcurrent.rc
index b4a3caf..bcb8c07 100644
--- a/conf/init.ripcurrent.rc
+++ b/conf/init.ripcurrent.rc
@@ -48,66 +48,26 @@ on property:vendor.all.modules.ready=1
chown system system /mnt/vendor/persist/haptics/cs40l26.cal
chown system system /mnt/vendor/persist/haptics/cs40l26_dual.cal
- chown system system /sys/bus/i2c/devices/6-0043/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/5-0043/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/4-0043/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/6-0042/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/5-0042/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/4-0042/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/6-0043/calibration/q_stored
- chown system system /sys/bus/i2c/devices/5-0043/calibration/q_stored
- chown system system /sys/bus/i2c/devices/4-0043/calibration/q_stored
- chown system system /sys/bus/i2c/devices/6-0042/calibration/q_stored
- chown system system /sys/bus/i2c/devices/5-0042/calibration/q_stored
- chown system system /sys/bus/i2c/devices/4-0042/calibration/q_stored
- chown system system /sys/bus/i2c/devices/6-0043/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/5-0043/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/4-0043/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/6-0042/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/5-0042/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/4-0042/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/6-0043/default/vibe_state
- chown system system /sys/bus/i2c/devices/5-0043/default/vibe_state
- chown system system /sys/bus/i2c/devices/4-0043/default/vibe_state
- chown system system /sys/bus/i2c/devices/6-0042/default/vibe_state
- chown system system /sys/bus/i2c/devices/5-0042/default/vibe_state
- chown system system /sys/bus/i2c/devices/4-0042/default/vibe_state
- chown system system /sys/bus/i2c/devices/6-0043/default/num_waves
- chown system system /sys/bus/i2c/devices/5-0043/default/num_waves
- chown system system /sys/bus/i2c/devices/4-0043/default/num_waves
- chown system system /sys/bus/i2c/devices/6-0042/default/num_waves
- chown system system /sys/bus/i2c/devices/5-0042/default/num_waves
- chown system system /sys/bus/i2c/devices/4-0042/default/num_waves
- chown system system /sys/bus/i2c/devices/6-0043/default/f0_offset
- chown system system /sys/bus/i2c/devices/5-0043/default/f0_offset
- chown system system /sys/bus/i2c/devices/4-0043/default/f0_offset
- chown system system /sys/bus/i2c/devices/6-0042/default/f0_offset
- chown system system /sys/bus/i2c/devices/5-0042/default/f0_offset
- chown system system /sys/bus/i2c/devices/4-0042/default/f0_offset
- chown system system /sys/bus/i2c/devices/6-0043/default/owt_free_space
- chown system system /sys/bus/i2c/devices/5-0043/default/owt_free_space
- chown system system /sys/bus/i2c/devices/4-0043/default/owt_free_space
- chown system system /sys/bus/i2c/devices/6-0042/default/owt_free_space
- chown system system /sys/bus/i2c/devices/5-0042/default/owt_free_space
- chown system system /sys/bus/i2c/devices/4-0042/default/owt_free_space
- chown system system /sys/bus/i2c/devices/6-0043/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/5-0043/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/4-0043/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/6-0042/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/5-0042/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/4-0042/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/6-0043/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/5-0043/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/4-0043/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/6-0042/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/5-0042/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/4-0042/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/6-0043/default/delay_before_stop_playback_us
- chown system system /sys/bus/i2c/devices/5-0043/default/delay_before_stop_playback_us
- chown system system /sys/bus/i2c/devices/4-0043/default/delay_before_stop_playback_us
- chown system system /sys/bus/i2c/devices/6-0042/default/delay_before_stop_playback_us
- chown system system /sys/bus/i2c/devices/5-0042/default/delay_before_stop_playback_us
- chown system system /sys/bus/i2c/devices/4-0042/default/delay_before_stop_playback_us
+ chown system system /sys/bus/i2c/devices/0-0043/calibration/f0_stored
+ chown system system /sys/bus/i2c/devices/0-0042/calibration/f0_stored
+ chown system system /sys/bus/i2c/devices/0-0043/calibration/q_stored
+ chown system system /sys/bus/i2c/devices/0-0042/calibration/q_stored
+ chown system system /sys/bus/i2c/devices/0-0043/calibration/redc_stored
+ chown system system /sys/bus/i2c/devices/0-0042/calibration/redc_stored
+ chown system system /sys/bus/i2c/devices/0-0043/default/vibe_state
+ chown system system /sys/bus/i2c/devices/0-0042/default/vibe_state
+ chown system system /sys/bus/i2c/devices/0-0043/default/num_waves
+ chown system system /sys/bus/i2c/devices/0-0042/default/num_waves
+ chown system system /sys/bus/i2c/devices/0-0043/default/f0_offset
+ chown system system /sys/bus/i2c/devices/0-0042/default/f0_offset
+ chown system system /sys/bus/i2c/devices/0-0043/default/owt_free_space
+ chown system system /sys/bus/i2c/devices/0-0042/default/owt_free_space
+ chown system system /sys/bus/i2c/devices/0-0043/default/f0_comp_enable
+ chown system system /sys/bus/i2c/devices/0-0042/default/f0_comp_enable
+ chown system system /sys/bus/i2c/devices/0-0043/default/redc_comp_enable
+ chown system system /sys/bus/i2c/devices/0-0042/default/redc_comp_enable
+ chown system system /sys/bus/i2c/devices/0-0043/default/delay_before_stop_playback_us
+ chown system system /sys/bus/i2c/devices/0-0042/default/delay_before_stop_playback_us
enable vendor.vibrator.cs40l26
enable vendor.vibrator.cs40l26-dual
diff --git a/conf/init.shiba.rc b/conf/init.shiba.rc
index e4c97a2..8c88141 100644
--- a/conf/init.shiba.rc
+++ b/conf/init.shiba.rc
@@ -1,9 +1,6 @@
# Shiba specific init.rc
import /vendor/etc/init/hw/init.zuma.rc
-on early-init && property:ro.product.name=shiba_fullmte
- export SCUDO_OPTIONS allocation_ring_buffer_size=131072
-
on init && property:ro.vendor.factory=1
import /vendor/etc/init/hw/init.factory.rc
@@ -60,57 +57,23 @@ on property:vendor.all.modules.ready=1
chown system system /mnt/vendor/persist/haptics
chown system system /mnt/vendor/persist/haptics/cs40l26.cal
- chown system system /sys/bus/i2c/devices/6-0043/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/5-0043/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/4-0043/calibration/f0_stored
- chown system system /sys/bus/i2c/devices/6-0043/calibration/q_stored
- chown system system /sys/bus/i2c/devices/5-0043/calibration/q_stored
- chown system system /sys/bus/i2c/devices/4-0043/calibration/q_stored
- chown system system /sys/bus/i2c/devices/6-0043/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/5-0043/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/4-0043/calibration/redc_stored
- chown system system /sys/bus/i2c/devices/6-0043/default/vibe_state
- chown system system /sys/bus/i2c/devices/5-0043/default/vibe_state
- chown system system /sys/bus/i2c/devices/4-0043/default/vibe_state
- chown system system /sys/bus/i2c/devices/6-0043/default/num_waves
- chown system system /sys/bus/i2c/devices/5-0043/default/num_waves
- chown system system /sys/bus/i2c/devices/4-0043/default/num_waves
- chown system system /sys/bus/i2c/devices/6-0043/default/f0_offset
- chown system system /sys/bus/i2c/devices/5-0043/default/f0_offset
- chown system system /sys/bus/i2c/devices/4-0043/default/f0_offset
- chown system system /sys/bus/i2c/devices/6-0043/default/owt_free_space
- chown system system /sys/bus/i2c/devices/5-0043/default/owt_free_space
- chown system system /sys/bus/i2c/devices/4-0043/default/owt_free_space
- chown system system /sys/bus/i2c/devices/6-0043/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/5-0043/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/4-0043/default/f0_comp_enable
- chown system system /sys/bus/i2c/devices/6-0043/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/5-0043/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/4-0043/default/redc_comp_enable
- chown system system /sys/bus/i2c/devices/6-0043/default/delay_before_stop_playback_us
- chown system system /sys/bus/i2c/devices/5-0043/default/delay_before_stop_playback_us
- chown system system /sys/bus/i2c/devices/4-0043/default/delay_before_stop_playback_us
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_env_rel_coef
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_env_rel_coef
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_env_rel_coef
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_rise_headroom
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_rise_headroom
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_rise_headroom
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_fall_headroom
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_fall_headroom
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_fall_headroom
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_enable
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_enable
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_enable
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_tx_lvl_thresh_fs
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_tx_lvl_thresh_fs
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_tx_lvl_thresh_fs
- chown system system /sys/bus/i2c/devices/6-0043/dbc/dbc_tx_lvl_hold_off_ms
- chown system system /sys/bus/i2c/devices/5-0043/dbc/dbc_tx_lvl_hold_off_ms
- chown system system /sys/bus/i2c/devices/4-0043/dbc/dbc_tx_lvl_hold_off_ms
- chown system system /sys/bus/i2c/devices/6-0043/default/pm_active_timeout_ms
- chown system system /sys/bus/i2c/devices/5-0043/default/pm_active_timeout_ms
- chown system system /sys/bus/i2c/devices/4-0043/default/pm_active_timeout_ms
+ chown system system /sys/bus/i2c/devices/0-0043/calibration/f0_stored
+ chown system system /sys/bus/i2c/devices/0-0043/calibration/q_stored
+ chown system system /sys/bus/i2c/devices/0-0043/calibration/redc_stored
+ chown system system /sys/bus/i2c/devices/0-0043/default/vibe_state
+ chown system system /sys/bus/i2c/devices/0-0043/default/num_waves
+ chown system system /sys/bus/i2c/devices/0-0043/default/f0_offset
+ chown system system /sys/bus/i2c/devices/0-0043/default/owt_free_space
+ chown system system /sys/bus/i2c/devices/0-0043/default/f0_comp_enable
+ chown system system /sys/bus/i2c/devices/0-0043/default/redc_comp_enable
+ chown system system /sys/bus/i2c/devices/0-0043/default/delay_before_stop_playback_us
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_env_rel_coef
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_rise_headroom
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_fall_headroom
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_enable
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_tx_lvl_thresh_fs
+ chown system system /sys/bus/i2c/devices/0-0043/dbc/dbc_tx_lvl_hold_off_ms
+ chown system system /sys/bus/i2c/devices/0-0043/default/pm_active_timeout_ms
enable vendor.vibrator.cs40l26
diff --git a/device-husky.mk b/device-husky.mk
index 7ef9b87..003e33d 100644
--- a/device-husky.mk
+++ b/device-husky.mk
@@ -14,21 +14,28 @@
# limitations under the License.
#
+# Restrict the visibility of Android.bp files to improve build analysis time
+$(call inherit-product-if-exists, vendor/google/products/sources_pixel.mk)
+
TARGET_KERNEL_DIR ?= device/google/shusky-kernel
-TARGET_BOARD_KERNEL_HEADERS := device/google/shusky-kernel/kernel-headers
+TARGET_BOARD_KERNEL_HEADERS ?= device/google/shusky-kernel/kernel-headers
LOCAL_PATH := device/google/shusky
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
USE_UWBFIELDTESTQM := true
endif
+ifeq ($(filter factory_husky, $(TARGET_PRODUCT)),)
+ include device/google/shusky/uwb/uwb_calibration.mk
+endif
+
$(call inherit-product-if-exists, vendor/google_devices/shusky/prebuilts/device-vendor-husky.mk)
$(call inherit-product-if-exists, vendor/google_devices/zuma/prebuilts/device-vendor.mk)
$(call inherit-product-if-exists, vendor/google_devices/zuma/proprietary/device-vendor.mk)
$(call inherit-product-if-exists, vendor/google_devices/shusky/proprietary/husky/device-vendor-husky.mk)
$(call inherit-product-if-exists, vendor/google_devices/husky/proprietary/device-vendor.mk)
-$(call inherit-product-if-exists, vendor/qorvo/uwb/qm35-hal/Device.mk)
+$(call inherit-product-if-exists, vendor/qorvo/uwb/qm35-hal-r63/Device.mk)
$(call inherit-product-if-exists, vendor/google_devices/shusky/proprietary/WallpapersHusky.mk)
# display
@@ -39,7 +46,10 @@ PRODUCT_COPY_FILES += \
device/google/shusky/husky/display_colordata_dev_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_dev_cal0.pb \
device/google/shusky/husky/display_golden_google-hk3_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_golden_google-hk3_cal0.pb
+CAMERA_PRODUCT ?= husky
+
include device/google/shusky/audio/husky/audio-tables.mk
+include device/google/shusky/camera/camera.mk
include device/google/zuma/device-shipping-common.mk
include hardware/google/pixel/vibrator/cs40l26/device.mk
include device/google/gs-common/bcmbt/bluetooth.mk
@@ -47,11 +57,6 @@ include device/google/gs-common/touch/stm/stm20.mk
include device/google/gs-common/touch/gti/gti.mk
include device/google/gs-common/touch/touchinspector/touchinspector.mk
-# go/lyric-soong-variables
-$(call soong_config_set,lyric,camera_hardware,husky)
-$(call soong_config_set,lyric,tuning_product,husky)
-$(call soong_config_set,google3a_config,target_device,husky)
-
# Init files
PRODUCT_COPY_FILES += \
device/google/shusky/conf/init.husky.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.husky.rc
@@ -67,10 +72,6 @@ PRODUCT_COPY_FILES += \
device/google/shusky/husky/radio/husky_camera_rear_tele_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/camera_rear_tele_mipi_coex_table.csv \
device/google/shusky/husky/radio/husky_display_primary_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/display_primary_mipi_coex_table.csv
-# Camera
-PRODUCT_COPY_FILES += \
- device/google/shusky/media_profiles_husky.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml
-
# NFC
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \
@@ -82,7 +83,7 @@ PRODUCT_COPY_FILES += \
device/google/shusky/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf
PRODUCT_PACKAGES += \
- NfcNci \
+ $(RELEASE_PACKAGE_NFC_STACK) \
Tag \
android.hardware.nfc-service.st
@@ -196,14 +197,18 @@ PRODUCT_PRODUCT_PROPERTIES += \
PRODUCT_COPY_FILES += \
device/google/shusky/bluetooth/le_audio_codec_capabilities.xml:$(TARGET_COPY_OUT_VENDOR)/etc/le_audio_codec_capabilities.xml
+# LE Audio Unicast Allowlist
+PRODUCT_PRODUCT_PROPERTIES += \
+ persist.bluetooth.leaudio.allow_list=SM-R510
+
# Bluetooth LE Audio CIS handover to SCO
# Set the property only for the controller couldn't support CIS/SCO simultaneously. More detailed in b/242908683.
PRODUCT_PRODUCT_PROPERTIES += \
persist.bluetooth.leaudio.notify.idle.during.call=true
-# Not support LE Audio dual mic SWB call based on the current launch strategy
+# Support LE Audio dual mic SWB call
PRODUCT_PRODUCT_PROPERTIES += \
- bluetooth.leaudio.dual_bidirection_swb.supported=false
+ bluetooth.leaudio.dual_bidirection_swb.supported=true
# Support One-Handed mode
PRODUCT_PRODUCT_PROPERTIES += \
@@ -252,6 +257,17 @@ PRODUCT_PACKAGES += \
# Trusty liboemcrypto.so
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/24Q1
+else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/24Q2
+else
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/trunk
+endif
+
+# UWB
+PRODUCT_SOONG_NAMESPACES += \
+ device/google/shusky/uwb
# Location
# SDK build system
@@ -278,12 +294,19 @@ PRODUCT_VENDOR_PROPERTIES += \
persist.device_config.configuration.disable_rescue_party=true
# Fingerprint HAL
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+APEX_FPS_TA_DIR := //vendor/google_devices/shusky/prebuilts/firmware/fingerprint/24Q1
+else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
+APEX_FPS_TA_DIR := //vendor/google_devices/shusky/prebuilts/firmware/fingerprint/24Q2
+else
+APEX_FPS_TA_DIR := //vendor/google_devices/shusky/prebuilts/firmware/fingerprint/trunk
+endif
GOODIX_CONFIG_BUILD_VERSION := g7_trusty
-include device/google/gs101/fingerprint/udfps_common.mk
+$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_common.mk)
ifeq ($(filter factory%, $(TARGET_PRODUCT)),)
-include device/google/gs101/fingerprint/udfps_shipping.mk
+$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_shipping.mk)
else
-include device/google/gs101/fingerprint/udfps_factory.mk
+$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_factory.mk)
endif
PRODUCT_VENDOR_PROPERTIES += \
@@ -299,7 +322,10 @@ PRODUCT_VENDOR_PROPERTIES += \
persist.vendor.camera.front_720P_always_binning=true
# Media Performance Class 14
-PRODUCT_PRODUCT_PROPERTIES += ro.odm.build.media_performance_class=33
+PRODUCT_PRODUCT_PROPERTIES += ro.odm.build.media_performance_class=34
+
+# Modem
+PRODUCT_PROPERTY_OVERRIDES += persist.vendor.radio.volte_mif_off=true
# config of display brightness dimming
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.0.brightness.dimming.usage?=1
@@ -334,7 +360,7 @@ PRODUCT_COPY_FILES += \
ACTUATOR_MODEL := luxshare_ict_081545
ADAPTIVE_HAPTICS_FEATURE := adaptive_haptics_v1
PRODUCT_VENDOR_PROPERTIES += \
- ro.vendor.vibrator.hal.chirp.enabled=0 \
+ persist.vendor.vibrator.hal.chirp.enabled=0 \
ro.vendor.vibrator.hal.device.mass=0.222 \
ro.vendor.vibrator.hal.loc.coeff=2.8 \
persist.vendor.vibrator.hal.context.enable=false \
@@ -352,7 +378,7 @@ PRODUCT_VENDOR_PROPERTIES += \
# Increment the SVN for any official public releases
PRODUCT_VENDOR_PROPERTIES += \
- ro.vendor.build.svn=6
+ ro.vendor.build.svn=13
# WLC userdebug specific
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
@@ -395,17 +421,21 @@ PRODUCT_SYSTEM_PROPERTIES += \
# Keyboard height ratio and bottom padding in dp for portrait mode
PRODUCT_PRODUCT_PROPERTIES += \
- ro.com.google.ime.kb_pad_port_b=10.4 \
- ro.com.google.ime.height_ratio=1.0
+ ro.com.google.ime.kb_pad_port_b=10.4
+
+PRODUCT_PRODUCT_PROPERTIES ?= \
+ ro.com.google.ime.height_ratio=1.0
# Enable camera exif model/make reporting
PRODUCT_VENDOR_PROPERTIES += \
persist.vendor.camera.exif_reveal_make_model=true
+# AVF assignable devices xml
+PRODUCT_PACKAGES += shusky_assignable_devices.xml
+
# Enable DeviceAsWebcam support
PRODUCT_VENDOR_PROPERTIES += \
ro.usb.uvc.enabled=true
-# DisplayPort should be disabled by default (b/300167292)
-PRODUCT_VENDOR_PROPERTIES += \
- persist.vendor.usb.displayport.enabled=0
+PRODUCT_PACKAGES += \
+ NfcOverlayHusky \
diff --git a/device-ripcurrent.mk b/device-ripcurrent.mk
index 79406da..0717be5 100644
--- a/device-ripcurrent.mk
+++ b/device-ripcurrent.mk
@@ -14,12 +14,19 @@
# limitations under the License.
#
+# Restrict the visibility of Android.bp files to improve build analysis time
+$(call inherit-product-if-exists, vendor/google/products/sources_pixel.mk)
+
TARGET_KERNEL_DIR ?= device/google/shusky-kernel
-TARGET_BOARD_KERNEL_HEADERS := device/google/shusky-kernel/kernel-headers
+TARGET_BOARD_KERNEL_HEADERS ?= device/google/shusky-kernel/kernel-headers
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
USE_UWBFIELDTESTQM := true
endif
+ifeq ($(filter factory_ripcurrent, $(TARGET_PRODUCT)),)
+ include device/google/shusky/uwb/uwb_calibration.mk
+endif
+
$(call inherit-product-if-exists, vendor/google_devices/shusky/prebuilts/device-vendor-ripcurrent.mk)
$(call inherit-product-if-exists, vendor/google_devices/zuma/prebuilts/device-vendor.mk)
@@ -27,18 +34,16 @@ $(call inherit-product-if-exists, vendor/google_devices/zuma/proprietary/device-
$(call inherit-product-if-exists, vendor/google_devices/shusky/proprietary/ripcurrent/device-vendor-ripcurrent.mk)
$(call inherit-product-if-exists, vendor/qorvo/uwb/qm35-hal/Device.mk)
+CAMERA_PRODUCT ?= ripcurrent
+
include device/google/shusky/audio/ripcurrent/audio-tables.mk
+include device/google/shusky/camera/camera.mk
include device/google/zuma/device-shipping-common.mk
include hardware/google/pixel/vibrator/cs40l26/device-stereo.mk
include device/google/gs-common/bcmbt/bluetooth.mk
include device/google/gs-common/gps/brcm/cbd_gps.mk
include device/google/gs-common/touch/stm/stm20.mk
-# go/lyric-soong-variables
-$(call soong_config_set,lyric,camera_hardware,ripcurrent)
-$(call soong_config_set,lyric,tuning_product,ripcurrent)
-$(call soong_config_set,google3a_config,target_device,ripcurrent)
-
# display
DEVICE_PACKAGE_OVERLAYS += device/google/shusky/ripcurrent/overlay
@@ -50,10 +55,6 @@ PRODUCT_COPY_FILES += \
PRODUCT_COPY_FILES += \
device/google/shusky/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.ripcurrent.rc
-# Camera
-PRODUCT_COPY_FILES += \
- device/google/shusky/media_profiles_ripcurrent.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml
-
# NFC
PRODUCT_COPY_FILES += \
frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml \
@@ -66,7 +67,7 @@ PRODUCT_COPY_FILES += \
device/google/shusky/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf
PRODUCT_PACKAGES += \
- NfcNci \
+ $(RELEASE_PACKAGE_NFC_STACK) \
Tag \
android.hardware.nfc-service.st
@@ -96,6 +97,10 @@ PRODUCT_PACKAGES += \
PRODUCT_PROPERTY_OVERRIDES += \
ro.audio.spatializer_enabled=true
+# DCK properties based on target
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.gms.dck.eligible_wcc=3
+
# Bluetooth hci_inject test tool
PRODUCT_PACKAGES_DEBUG += \
hci_inject
@@ -166,9 +171,9 @@ PRODUCT_COPY_FILES += \
PRODUCT_PRODUCT_PROPERTIES += \
persist.bluetooth.leaudio.notify.idle.during.call=true
-# Not support LE Audio dual mic SWB call based on the current launch strategy
+# Support LE Audio dual mic SWB call
PRODUCT_PRODUCT_PROPERTIES += \
- bluetooth.leaudio.dual_bidirection_swb.supported=false
+ bluetooth.leaudio.dual_bidirection_swb.supported=true
# Keymaster HAL
#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= android.hardware.keymaster@4.1-service
@@ -210,6 +215,17 @@ PRODUCT_PACKAGES += \
# Trusty liboemcrypto.so
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/24Q1
+else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/24Q2
+else
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/trunk
+endif
+
+# UWB
+PRODUCT_SOONG_NAMESPACES += \
+ device/google/shusky/uwb
# Location
# SDK build system
@@ -246,7 +262,7 @@ PRODUCT_VENDOR_PROPERTIES += \
# Vibrator HAL
ACTUATOR_MODEL := luxshare_ict_081545
PRODUCT_VENDOR_PROPERTIES += \
- ro.vendor.vibrator.hal.chirp.enabled=0 \
+ persist.vendor.vibrator.hal.chirp.enabled=0 \
ro.vendor.vibrator.hal.device.mass=0.222 \
ro.vendor.vibrator.hal.loc.coeff=2.8
diff --git a/device-shiba.mk b/device-shiba.mk
index e523ae0..f7879f6 100644
--- a/device-shiba.mk
+++ b/device-shiba.mk
@@ -14,8 +14,11 @@
# limitations under the License.
#
+# Restrict the visibility of Android.bp files to improve build analysis time
+$(call inherit-product-if-exists, vendor/google/products/sources_pixel.mk)
+
TARGET_KERNEL_DIR ?= device/google/shusky-kernel
-TARGET_BOARD_KERNEL_HEADERS := device/google/shusky-kernel/kernel-headers
+TARGET_BOARD_KERNEL_HEADERS ?= device/google/shusky-kernel/kernel-headers
LOCAL_PATH := device/google/shusky
@@ -27,18 +30,15 @@ $(call inherit-product-if-exists, vendor/google_devices/shiba/proprietary/device
$(call inherit-product-if-exists, vendor/google_devices/shusky/proprietary/WallpapersShiba.mk)
DEVICE_PACKAGE_OVERLAYS += device/google/shusky/shiba/overlay
+CAMERA_PRODUCT ?= shiba
include device/google/shusky/audio/shiba/audio-tables.mk
+include device/google/shusky/camera/camera.mk
include device/google/zuma/device-shipping-common.mk
include hardware/google/pixel/vibrator/cs40l26/device.mk
include device/google/gs-common/bcmbt/bluetooth.mk
include device/google/gs-common/touch/gti/gti.mk
-# go/lyric-soong-variables
-$(call soong_config_set,lyric,camera_hardware,shiba)
-$(call soong_config_set,lyric,tuning_product,shiba)
-$(call soong_config_set,google3a_config,target_device,shiba)
-
# Init files
PRODUCT_COPY_FILES += \
device/google/shusky/conf/init.shiba.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.shiba.rc
@@ -54,8 +54,6 @@ PRODUCT_COPY_FILES += \
device/google/shusky/shiba/radio/shiba_display_primary_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/display_primary_mipi_coex_table.csv
# Camera
-PRODUCT_COPY_FILES += \
- device/google/shusky/media_profiles_shiba.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.camera.rls_range_supported=false
@@ -70,7 +68,7 @@ PRODUCT_COPY_FILES += \
device/google/shusky/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf
PRODUCT_PACKAGES += \
- NfcNci \
+ $(RELEASE_PACKAGE_NFC_STACK) \
Tag \
android.hardware.nfc-service.st
@@ -187,14 +185,18 @@ PRODUCT_PRODUCT_PROPERTIES += \
PRODUCT_COPY_FILES += \
device/google/shusky/bluetooth/le_audio_codec_capabilities.xml:$(TARGET_COPY_OUT_VENDOR)/etc/le_audio_codec_capabilities.xml
+# LE Audio Unicast Allowlist
+PRODUCT_PRODUCT_PROPERTIES += \
+ persist.bluetooth.leaudio.allow_list=SM-R510
+
# Bluetooth LE Audio CIS handover to SCO
# Set the property only for the controller couldn't support CIS/SCO simultaneously. More detailed in b/242908683.
PRODUCT_PRODUCT_PROPERTIES += \
persist.bluetooth.leaudio.notify.idle.during.call=true
-# Not support LE Audio dual mic SWB call based on the current launch strategy
+# Support LE Audio dual mic SWB call
PRODUCT_PRODUCT_PROPERTIES += \
- bluetooth.leaudio.dual_bidirection_swb.supported=false
+ bluetooth.leaudio.dual_bidirection_swb.supported=true
# Support One-Handed mode
PRODUCT_PRODUCT_PROPERTIES += \
@@ -242,6 +244,13 @@ PRODUCT_PACKAGES += \
# Trusty liboemcrypto.so
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/24Q1
+else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/24Q2
+else
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/shusky/prebuilts/trusty/trunk
+endif
# Location
# SDK build system
@@ -268,12 +277,19 @@ PRODUCT_VENDOR_PROPERTIES += \
persist.device_config.configuration.disable_rescue_party=true
# Fingerprint HAL
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+APEX_FPS_TA_DIR := //vendor/google_devices/shusky/prebuilts/firmware/fingerprint/24Q1
+else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
+APEX_FPS_TA_DIR := //vendor/google_devices/shusky/prebuilts/firmware/fingerprint/24Q2
+else
+APEX_FPS_TA_DIR := //vendor/google_devices/shusky/prebuilts/firmware/fingerprint/trunk
+endif
GOODIX_CONFIG_BUILD_VERSION := g7_trusty
-include device/google/gs101/fingerprint/udfps_common.mk
+$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_common.mk)
ifeq ($(filter factory%, $(TARGET_PRODUCT)),)
-include device/google/gs101/fingerprint/udfps_shipping.mk
+$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_shipping.mk)
else
-include device/google/gs101/fingerprint/udfps_factory.mk
+$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_factory.mk)
endif
# Fingerprint exposure compensation
@@ -281,7 +297,7 @@ PRODUCT_VENDOR_PROPERTIES += \
persist.vendor.udfps.auto_exposure_compensation_supported=true
# Display
-PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms=1500
+PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms=1000
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.ignore_hdr_camera_layers=true
# lhbm peak brightness delay: decided by kernel
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.primarydisplay.lhbm.frames_to_reach_peak_brightness=0
@@ -306,7 +322,10 @@ PRODUCT_VENDOR_PROPERTIES += \
persist.vendor.camera.front_720P_always_binning=true
# Media Performance Class 14
-PRODUCT_PRODUCT_PROPERTIES += ro.odm.build.media_performance_class=33
+PRODUCT_PRODUCT_PROPERTIES += ro.odm.build.media_performance_class=34
+
+# Modem
+PRODUCT_PROPERTY_OVERRIDES += persist.vendor.radio.volte_mif_off=true
# Display LBE
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.lbe.supported=1
@@ -315,7 +334,7 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.lbe.supported=1
ACTUATOR_MODEL := luxshare_ict_081545
ADAPTIVE_HAPTICS_FEATURE := adaptive_haptics_v1
PRODUCT_VENDOR_PROPERTIES += \
- ro.vendor.vibrator.hal.chirp.enabled=0 \
+ persist.vendor.vibrator.hal.chirp.enabled=0 \
ro.vendor.vibrator.hal.device.mass=0.187 \
ro.vendor.vibrator.hal.loc.coeff=2.75 \
persist.vendor.vibrator.hal.context.enable=false \
@@ -333,7 +352,7 @@ PRODUCT_VENDOR_PROPERTIES += \
# Increment the SVN for any official public releases
PRODUCT_VENDOR_PROPERTIES += \
- ro.vendor.build.svn=6
+ ro.vendor.build.svn=13
# P23 Devices no longer need rlsservice
PRODUCT_VENDOR_PROPERTIES += \
@@ -377,10 +396,12 @@ PRODUCT_PRODUCT_PROPERTIES += \
PRODUCT_VENDOR_PROPERTIES += \
persist.vendor.camera.exif_reveal_make_model=true
+# AVF assignable devices xml
+PRODUCT_PACKAGES += shusky_assignable_devices.xml
+
# Enable DeviceAsWebcam support
PRODUCT_VENDOR_PROPERTIES += \
ro.usb.uvc.enabled=true
-# DisplayPort should be disabled by default (b/300167292)
-PRODUCT_VENDOR_PROPERTIES += \
- persist.vendor.usb.displayport.enabled=0
+PRODUCT_PACKAGES += \
+ NfcOverlayShiba
diff --git a/husky/BoardConfig.mk b/husky/BoardConfig.mk
index 9e35d93..0f5e382 100644
--- a/husky/BoardConfig.mk
+++ b/husky/BoardConfig.mk
@@ -24,7 +24,24 @@ BOARD_KERNEL_CMDLINE += samsung_iommu_v9.load_sequential=1
TARGET_BOARD_INFO_FILE := device/google/shusky/board-info.txt
TARGET_BOOTLOADER_BOARD_NAME := husky
-TARGET_SCREEN_DENSITY := 480
+
+RELEASE_GOOGLE_PRODUCT_RADIO_DIR := $(RELEASE_GOOGLE_HUSKY_RADIO_DIR)
+RELEASE_GOOGLE_PRODUCT_RADIOCFG_DIR := $(RELEASE_GOOGLE_HUSKY_RADIOCFG_DIR)
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q1
+else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q2
+else
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/trunk
+endif
+
+
+ifdef PHONE_CAR_BOARD_PRODUCT
+ include vendor/auto/embedded/products/$(PHONE_CAR_BOARD_PRODUCT)/BoardConfig.mk
+else
+ TARGET_SCREEN_DENSITY := 480
+endif
+
BOARD_USES_GENERIC_AUDIO := true
USES_DEVICE_GOOGLE_SHUSKY := true
BOARD_KERNEL_CMDLINE += swiotlb=noforce
@@ -41,3 +58,12 @@ include device/google/zuma/BoardConfig-common.mk
-include vendor/google_devices/husky/proprietary/BoardConfigVendor.mk
include device/google/shusky-sepolicy/husky-sepolicy.mk
include device/google/shusky/wifi/BoardConfig-wifi.mk
+
+# Android Virtualization Framework (AVF) team is using husky with hypervisor in
+# nvhe mode as a development platform to build infrastructure that supports
+# assigning devices to guest VMs.
+#
+# TODO(b/278008514): remove this once we have builds from our kernel branch.
+ifeq ($(HUSKY_ENABLE_DEVICE_ASSIGNMENT), true)
+BOARD_KERNEL_CMDLINE += kvm-arm.mode=nvhe
+endif
diff --git a/husky/overlay/frameworks/base/core/res/res/values/config.xml b/husky/overlay/frameworks/base/core/res/res/values/config.xml
index 327a3af..f03519a 100644
--- a/husky/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/husky/overlay/frameworks/base/core/res/res/values/config.xml
@@ -48,9 +48,6 @@
<!-- 140 nits: (140-2)/(1000-2)*(0.63-0.0)+0.0 = 0.087114228 -->
<item name="config_screenBrightnessSettingDefaultFloat" format="float" type="dimen">0.087114228</item>
- <!-- Allow normal brightness controller feature. -->
- <bool name="config_allowNormalBrightnessControllerFeature">true</bool>
-
<!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
The N entries of this array define N 1 zones as follows:
Zone 0: 0 <= LUX < array[0]
diff --git a/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_g1mnw_cn.png b/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_g1mnw_cn.png
index 3f41764..bb4344b 100644
--- a/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_g1mnw_cn.png
+++ b/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_g1mnw_cn.png
Binary files differ
diff --git a/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_g1mnw_vn.png b/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_g1mnw_vn.png
index fdccad9..ee4f06a 100644
--- a/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_g1mnw_vn.png
+++ b/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_g1mnw_vn.png
Binary files differ
diff --git a/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_gc3ve_cn.png b/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_gc3ve_cn.png
index 61a015e..0537b4e 100644
--- a/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_gc3ve_cn.png
+++ b/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_gc3ve_cn.png
Binary files differ
diff --git a/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_gc3ve_vn.png b/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_gc3ve_vn.png
index 684a855..8f09460 100644
--- a/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_gc3ve_vn.png
+++ b/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_gc3ve_vn.png
Binary files differ
diff --git a/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_ge9dp_cn.png b/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_ge9dp_cn.png
index 169b4e2..096b56d 100644
--- a/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_ge9dp_cn.png
+++ b/husky/overlay_packages/SettingsHuskyOverlay/res/drawable/regulatory_info_ge9dp_cn.png
Binary files differ
diff --git a/husky/rro_overlays/NfcOverlay/Android.bp b/husky/rro_overlays/NfcOverlay/Android.bp
new file mode 100644
index 0000000..826630f
--- /dev/null
+++ b/husky/rro_overlays/NfcOverlay/Android.bp
@@ -0,0 +1,9 @@
+package {
+ default_applicable_licenses: ["device_google_shusky_license"],
+}
+
+runtime_resource_overlay {
+ name: "NfcOverlayHusky",
+ sdk_version: "current",
+ product_specific: true
+}
diff --git a/husky/rro_overlays/NfcOverlay/AndroidManifest.xml b/husky/rro_overlays/NfcOverlay/AndroidManifest.xml
new file mode 100644
index 0000000..5241aa4
--- /dev/null
+++ b/husky/rro_overlays/NfcOverlay/AndroidManifest.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<!-- Pixel specific nfc overlays -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.nfc.overlay"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:hasCode="false" />
+ <overlay
+ android:targetPackage="com.android.nfc"
+ android:targetName="NfcCustomization"
+ android:isStatic="true"
+ android:priority="0"/>
+</manifest>
diff --git a/husky/rro_overlays/NfcOverlay/OWNERS b/husky/rro_overlays/NfcOverlay/OWNERS
new file mode 100644
index 0000000..35e9713
--- /dev/null
+++ b/husky/rro_overlays/NfcOverlay/OWNERS
@@ -0,0 +1,2 @@
+# Bug component: 48448
+include platform/packages/apps/Nfc:/OWNERS
diff --git a/husky/rro_overlays/NfcOverlay/res/values/config.xml b/husky/rro_overlays/NfcOverlay/res/values/config.xml
new file mode 100644
index 0000000..20edf75
--- /dev/null
+++ b/husky/rro_overlays/NfcOverlay/res/values/config.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2022 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.
+-->
+<resources>
+ <bool name="nfcc_always_on_allowed">false</bool>
+ <bool name="polling_disable_allowed">true</bool>
+ <string-array name="config_skuSupportsSecureNfc" translatable="false">
+ <item>GC3VE</item>
+ <item>G1MNW</item>
+ <item>GE9DP</item>
+ </string-array>
+ <bool name="tag_intent_app_pref_supported">true</bool>
+ <!-- NFC Antenna Location API -->
+ <integer name="device_width">73</integer>
+ <integer name="device_height">158</integer>
+ <bool name="device_foldable">false</bool>
+ <integer-array name="antenna_x">
+ <item>37</item>
+ </integer-array>
+ <integer-array name="antenna_y">
+ <item>103</item>
+ </integer-array>
+</resources>
diff --git a/husky/rro_overlays/UwbOverlay/res/values/config.xml b/husky/rro_overlays/UwbOverlay/res/values/config.xml
index 7a77d32..bf8d264 100644
--- a/husky/rro_overlays/UwbOverlay/res/values/config.xml
+++ b/husky/rro_overlays/UwbOverlay/res/values/config.xml
@@ -17,4 +17,17 @@
*/
-->
<resources>
+ <!-- When true, the filter engine will alter UWB values to improve accuracy. -->
+ <bool name="enable_filters">true</bool>
+
+ <!-- Enables the AoA conversion primer. This is needed on hardware that does not convert AoA
+ to spherical coordinates, including hardware that does not support elevation.-->
+ <bool name="enable_primer_aoa">true</bool>
+
+ <!-- Whether background ranging is enabled or not
+ If enabled:
+ * Background 3p apps are allowed to open new ranging sessions
+ * When previously foreground 3p apps moves to background, sessions are not terminated
+ -->
+ <bool name = "background_ranging_enabled">true</bool>
</resources>
diff --git a/location/gps.xml b/location/gps.xml
index 774e206..87ced9c 100644
--- a/location/gps.xml
+++ b/location/gps.xml
@@ -35,7 +35,7 @@
SuplVersion="2"
SuplMinorVersion="0"
SuplOtdoaCapable="true"
- SuplOtdoaCapable2="false"
+ SuplOtdoaCapable2="true"
SuplGlonassCapable = "true"
SuplGalileoCapable = "true"
SuplBdsCapable = "true"
diff --git a/location/gps.xml.hk3 b/location/gps.xml.hk3
index 2857dcf..5eb541f 100644
--- a/location/gps.xml.hk3
+++ b/location/gps.xml.hk3
@@ -35,7 +35,7 @@
SuplVersion="2"
SuplMinorVersion="0"
SuplOtdoaCapable="true"
- SuplOtdoaCapable2="false"
+ SuplOtdoaCapable2="true"
SuplGlonassCapable = "true"
SuplGalileoCapable = "true"
SuplBdsCapable = "true"
diff --git a/location/gps.xml.sb3 b/location/gps.xml.sb3
index bceb407..17ad50d 100644
--- a/location/gps.xml.sb3
+++ b/location/gps.xml.sb3
@@ -35,7 +35,7 @@
SuplVersion="2"
SuplMinorVersion="0"
SuplOtdoaCapable="true"
- SuplOtdoaCapable2="false"
+ SuplOtdoaCapable2="true"
SuplGlonassCapable = "true"
SuplGalileoCapable = "true"
SuplBdsCapable = "true"
diff --git a/location/gps_user.xml b/location/gps_user.xml
index 9f3bd02..b9331e6 100644
--- a/location/gps_user.xml
+++ b/location/gps_user.xml
@@ -34,7 +34,7 @@
SuplVersion="2"
SuplMinorVersion="0"
SuplOtdoaCapable="true"
- SuplOtdoaCapable2="false"
+ SuplOtdoaCapable2="true"
SuplGlonassCapable = "true"
SuplGalileoCapable = "true"
SuplBdsCapable = "true"
diff --git a/location/gps_user.xml.hk3 b/location/gps_user.xml.hk3
index 8a1d2b3..c72bfae 100644
--- a/location/gps_user.xml.hk3
+++ b/location/gps_user.xml.hk3
@@ -34,7 +34,7 @@
SuplVersion="2"
SuplMinorVersion="0"
SuplOtdoaCapable="true"
- SuplOtdoaCapable2="false"
+ SuplOtdoaCapable2="true"
SuplGlonassCapable = "true"
SuplGalileoCapable = "true"
SuplBdsCapable = "true"
diff --git a/location/gps_user.xml.sb3 b/location/gps_user.xml.sb3
index f74bce6..0375981 100644
--- a/location/gps_user.xml.sb3
+++ b/location/gps_user.xml.sb3
@@ -34,7 +34,7 @@
SuplVersion="2"
SuplMinorVersion="0"
SuplOtdoaCapable="true"
- SuplOtdoaCapable2="false"
+ SuplOtdoaCapable2="true"
SuplGlonassCapable = "true"
SuplGalileoCapable = "true"
SuplBdsCapable = "true"
diff --git a/media_profiles_husky.xml b/media_profiles_husky.xml
deleted file mode 100644
index 8abc330..0000000
--- a/media_profiles_husky.xml
+++ /dev/null
@@ -1,1808 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-<!DOCTYPE MediaSettings [
-<!ELEMENT MediaSettings (CamcorderProfiles,
- EncoderOutputFileFormat+,
- VideoEncoderCap+,
- AudioEncoderCap+,
- VideoDecoderCap,
- AudioDecoderCap)>
-<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
-<!ELEMENT EncoderProfile (Video, Audio)>
-<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
-<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
-<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
-<!ELEMENT Video EMPTY>
-<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
-<!ATTLIST Video bitRate CDATA #REQUIRED>
-<!ATTLIST Video width CDATA #REQUIRED>
-<!ATTLIST Video height CDATA #REQUIRED>
-<!ATTLIST Video frameRate CDATA #REQUIRED>
-<!ELEMENT Audio EMPTY>
-<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
-<!ATTLIST Audio bitRate CDATA #REQUIRED>
-<!ATTLIST Audio sampleRate CDATA #REQUIRED>
-<!ATTLIST Audio channels (1|2) #REQUIRED>
-<!ELEMENT ImageEncoding EMPTY>
-<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
-<!ELEMENT ImageDecoding EMPTY>
-<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
-<!ELEMENT Camera EMPTY>
-<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
-<!ELEMENT EncoderOutputFileFormat EMPTY>
-<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
-<!ELEMENT VideoEncoderCap EMPTY>
-<!ATTLIST VideoEncoderCap name (hevc|h264|h263|m4v|wmv) #REQUIRED>
-<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
-<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
-<!ELEMENT AudioEncoderCap EMPTY>
-<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
-<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
-<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
-<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
-<!ELEMENT VideoDecoderCap EMPTY>
-<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
-<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
-<!ELEMENT AudioDecoderCap EMPTY>
-<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
-<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
-]>
-<!--
- This file is used to declare the multimedia profiles and capabilities
- on an android-powered device.
--->
-<MediaSettings>
- <!-- Each camcorder profile defines a set of predefined configuration parameters -->
- <CamcorderProfiles cameraId="0">
-
- <EncoderProfile quality="high" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="1920"
- height="1080"
- frameRate="240" />
-
- <!-- audio setting is ignored -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="1920"
- height="1080"
- frameRate="240" />
-
- <!-- audio setting is ignored -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="1920"
- height="1080"
- frameRate="240" />
-
- <!-- audio setting is ignored -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="1">
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="2">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="3">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="4">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="5">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="6">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="7">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="8">
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <EncoderOutputFileFormat name="3gp" />
- <EncoderOutputFileFormat name="mp4" />
-
- <!--
- If a codec is not enabled, it is invisible to the applications
- In other words, the applications won't be able to use the codec
- or query the capabilities of the codec at all if it is disabled
- -->
-
- <!--
- FIXME : we only check Mpeg4 encorder cap and other codec doesn't check
- codec cap
- -->
- <VideoEncoderCap name="hevc" enabled="true"
- minBitRate="64000" maxBitRate="100000000"
- minFrameWidth="128" maxFrameWidth="3840"
- minFrameHeight="96" maxFrameHeight="2160"
- minFrameRate="15" maxFrameRate="30" />
-
- <VideoEncoderCap name="h264" enabled="true"
- minBitRate="64000" maxBitRate="100000000"
- minFrameWidth="128" maxFrameWidth="3840"
- minFrameHeight="96" maxFrameHeight="2160"
- minFrameRate="15" maxFrameRate="30" />
-
- <VideoEncoderCap name="h263" enabled="true"
- minBitRate="64000" maxBitRate="1000000"
- minFrameWidth="128" maxFrameWidth="1920"
- minFrameHeight="96" maxFrameHeight="1080"
- minFrameRate="15" maxFrameRate="30" />
-
- <VideoEncoderCap name="m4v" enabled="true"
- minBitRate="64000" maxBitRate="2000000"
- minFrameWidth="128" maxFrameWidth="1920"
- minFrameHeight="96" maxFrameHeight="1080"
- minFrameRate="15" maxFrameRate="30" />
-
- <AudioEncoderCap name="aac" enabled="true"
- minBitRate="758" maxBitRate="288000"
- minSampleRate="8000" maxSampleRate="48000"
- minChannels="1" maxChannels="1" />
-
- <AudioEncoderCap name="heaac" enabled="true"
- minBitRate="8000" maxBitRate="64000"
- minSampleRate="16000" maxSampleRate="48000"
- minChannels="1" maxChannels="1" />
-
- <AudioEncoderCap name="aaceld" enabled="true"
- minBitRate="16000" maxBitRate="192000"
- minSampleRate="16000" maxSampleRate="48000"
- minChannels="1" maxChannels="1" />
-
- <AudioEncoderCap name="amrwb" enabled="true"
- minBitRate="6600" maxBitRate="23050"
- minSampleRate="16000" maxSampleRate="16000"
- minChannels="1" maxChannels="1" />
-
- <AudioEncoderCap name="amrnb" enabled="true"
- minBitRate="5525" maxBitRate="12200"
- minSampleRate="8000" maxSampleRate="8000"
- minChannels="1" maxChannels="1" />
-
- <!--
- FIXME:
- We do not check decoder capabilities at present
- At present, we only check whether windows media is visible
- for TEST applications. For other applications, we do
- not perform any checks at all.
- -->
- <VideoDecoderCap name="wmv" enabled="false"/>
- <AudioDecoderCap name="wma" enabled="false"/>
-</MediaSettings>
diff --git a/media_profiles_ripcurrent.xml b/media_profiles_ripcurrent.xml
deleted file mode 100644
index 6e2977d..0000000
--- a/media_profiles_ripcurrent.xml
+++ /dev/null
@@ -1,1808 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-<!DOCTYPE MediaSettings [
-<!ELEMENT MediaSettings (CamcorderProfiles,
- EncoderOutputFileFormat+,
- VideoEncoderCap+,
- AudioEncoderCap+,
- VideoDecoderCap,
- AudioDecoderCap)>
-<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
-<!ELEMENT EncoderProfile (Video, Audio)>
-<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
-<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
-<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
-<!ELEMENT Video EMPTY>
-<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
-<!ATTLIST Video bitRate CDATA #REQUIRED>
-<!ATTLIST Video width CDATA #REQUIRED>
-<!ATTLIST Video height CDATA #REQUIRED>
-<!ATTLIST Video frameRate CDATA #REQUIRED>
-<!ELEMENT Audio EMPTY>
-<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
-<!ATTLIST Audio bitRate CDATA #REQUIRED>
-<!ATTLIST Audio sampleRate CDATA #REQUIRED>
-<!ATTLIST Audio channels (1|2) #REQUIRED>
-<!ELEMENT ImageEncoding EMPTY>
-<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
-<!ELEMENT ImageDecoding EMPTY>
-<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
-<!ELEMENT Camera EMPTY>
-<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
-<!ELEMENT EncoderOutputFileFormat EMPTY>
-<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
-<!ELEMENT VideoEncoderCap EMPTY>
-<!ATTLIST VideoEncoderCap name (hevc|h264|h263|m4v|wmv) #REQUIRED>
-<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
-<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
-<!ELEMENT AudioEncoderCap EMPTY>
-<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
-<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
-<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
-<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
-<!ELEMENT VideoDecoderCap EMPTY>
-<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
-<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
-<!ELEMENT AudioDecoderCap EMPTY>
-<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
-<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
-]>
-<!--
- This file is used to declare the multimedia profiles and capabilities
- on an android-powered device.
--->
-<MediaSettings>
- <!-- Each camcorder profile defines a set of predefined configuration parameters -->
- <CamcorderProfiles cameraId="0">
-
- <EncoderProfile quality="high" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="1920"
- height="1080"
- frameRate="240" />
-
- <!-- audio setting is ignored -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="1920"
- height="1080"
- frameRate="240" />
-
- <!-- audio setting is ignored -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="1920"
- height="1080"
- frameRate="240" />
-
- <!-- audio setting is ignored -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="1">
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="2">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="3">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="4">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="5">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="6">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="7">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="8">
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <EncoderOutputFileFormat name="3gp" />
- <EncoderOutputFileFormat name="mp4" />
-
- <!--
- If a codec is not enabled, it is invisible to the applications
- In other words, the applications won't be able to use the codec
- or query the capabilities of the codec at all if it is disabled
- -->
-
- <!--
- FIXME : we only check Mpeg4 encorder cap and other codec doesn't check
- codec cap
- -->
- <VideoEncoderCap name="hevc" enabled="true"
- minBitRate="64000" maxBitRate="100000000"
- minFrameWidth="128" maxFrameWidth="3840"
- minFrameHeight="96" maxFrameHeight="2160"
- minFrameRate="15" maxFrameRate="30" />
-
- <VideoEncoderCap name="h264" enabled="true"
- minBitRate="64000" maxBitRate="100000000"
- minFrameWidth="128" maxFrameWidth="3840"
- minFrameHeight="96" maxFrameHeight="2160"
- minFrameRate="15" maxFrameRate="30" />
-
- <VideoEncoderCap name="h263" enabled="true"
- minBitRate="64000" maxBitRate="1000000"
- minFrameWidth="128" maxFrameWidth="1920"
- minFrameHeight="96" maxFrameHeight="1080"
- minFrameRate="15" maxFrameRate="30" />
-
- <VideoEncoderCap name="m4v" enabled="true"
- minBitRate="64000" maxBitRate="2000000"
- minFrameWidth="128" maxFrameWidth="1920"
- minFrameHeight="96" maxFrameHeight="1080"
- minFrameRate="15" maxFrameRate="30" />
-
- <AudioEncoderCap name="aac" enabled="true"
- minBitRate="758" maxBitRate="288000"
- minSampleRate="8000" maxSampleRate="48000"
- minChannels="1" maxChannels="2" />
-
- <AudioEncoderCap name="heaac" enabled="true"
- minBitRate="8000" maxBitRate="64000"
- minSampleRate="16000" maxSampleRate="48000"
- minChannels="1" maxChannels="2" />
-
- <AudioEncoderCap name="aaceld" enabled="true"
- minBitRate="16000" maxBitRate="192000"
- minSampleRate="16000" maxSampleRate="48000"
- minChannels="1" maxChannels="2" />
-
- <AudioEncoderCap name="amrwb" enabled="true"
- minBitRate="6600" maxBitRate="23050"
- minSampleRate="16000" maxSampleRate="16000"
- minChannels="1" maxChannels="1" />
-
- <AudioEncoderCap name="amrnb" enabled="true"
- minBitRate="5525" maxBitRate="12200"
- minSampleRate="8000" maxSampleRate="8000"
- minChannels="1" maxChannels="1" />
-
- <!--
- FIXME:
- We do not check decoder capabilities at present
- At present, we only check whether windows media is visible
- for TEST applications. For other applications, we do
- not perform any checks at all.
- -->
- <VideoDecoderCap name="wmv" enabled="false"/>
- <AudioDecoderCap name="wma" enabled="false"/>
-</MediaSettings>
diff --git a/media_profiles_shiba.xml b/media_profiles_shiba.xml
deleted file mode 100644
index 1da2154..0000000
--- a/media_profiles_shiba.xml
+++ /dev/null
@@ -1,1440 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 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.
--->
-<!DOCTYPE MediaSettings [
-<!ELEMENT MediaSettings (CamcorderProfiles,
- EncoderOutputFileFormat+,
- VideoEncoderCap+,
- AudioEncoderCap+,
- VideoDecoderCap,
- AudioDecoderCap)>
-<!ELEMENT CamcorderProfiles (EncoderProfile+, ImageEncoding+, ImageDecoding, Camera)>
-<!ELEMENT EncoderProfile (Video, Audio)>
-<!ATTLIST EncoderProfile quality (high|low) #REQUIRED>
-<!ATTLIST EncoderProfile fileFormat (mp4|3gp) #REQUIRED>
-<!ATTLIST EncoderProfile duration (30|60) #REQUIRED>
-<!ELEMENT Video EMPTY>
-<!ATTLIST Video codec (h264|h263|m4v) #REQUIRED>
-<!ATTLIST Video bitRate CDATA #REQUIRED>
-<!ATTLIST Video width CDATA #REQUIRED>
-<!ATTLIST Video height CDATA #REQUIRED>
-<!ATTLIST Video frameRate CDATA #REQUIRED>
-<!ELEMENT Audio EMPTY>
-<!ATTLIST Audio codec (amrnb|amrwb|aac) #REQUIRED>
-<!ATTLIST Audio bitRate CDATA #REQUIRED>
-<!ATTLIST Audio sampleRate CDATA #REQUIRED>
-<!ATTLIST Audio channels (1|2) #REQUIRED>
-<!ELEMENT ImageEncoding EMPTY>
-<!ATTLIST ImageEncoding quality (90|80|70|60|50|40) #REQUIRED>
-<!ELEMENT ImageDecoding EMPTY>
-<!ATTLIST ImageDecoding memCap CDATA #REQUIRED>
-<!ELEMENT Camera EMPTY>
-<!ATTLIST Camera previewFrameRate CDATA #REQUIRED>
-<!ELEMENT EncoderOutputFileFormat EMPTY>
-<!ATTLIST EncoderOutputFileFormat name (mp4|3gp) #REQUIRED>
-<!ELEMENT VideoEncoderCap EMPTY>
-<!ATTLIST VideoEncoderCap name (hevc|h264|h263|m4v|wmv) #REQUIRED>
-<!ATTLIST VideoEncoderCap enabled (true|false) #REQUIRED>
-<!ATTLIST VideoEncoderCap minBitRate CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxBitRate CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap minFrameWidth CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxFrameWidth CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap minFrameHeight CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxFrameHeight CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap minFrameRate CDATA #REQUIRED>
-<!ATTLIST VideoEncoderCap maxFrameRate CDATA #REQUIRED>
-<!ELEMENT AudioEncoderCap EMPTY>
-<!ATTLIST AudioEncoderCap name (amrnb|amrwb|aac|wma) #REQUIRED>
-<!ATTLIST AudioEncoderCap enabled (true|false) #REQUIRED>
-<!ATTLIST AudioEncoderCap minBitRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap maxBitRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap minSampleRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap maxSampleRate CDATA #REQUIRED>
-<!ATTLIST AudioEncoderCap minChannels (1|2) #REQUIRED>
-<!ATTLIST AudioEncoderCap maxChannels (1|2) #REQUIRED>
-<!ELEMENT VideoDecoderCap EMPTY>
-<!ATTLIST VideoDecoderCap name (wmv) #REQUIRED>
-<!ATTLIST VideoDecoderCap enabled (true|false) #REQUIRED>
-<!ELEMENT AudioDecoderCap EMPTY>
-<!ATTLIST AudioDecoderCap name (wma) #REQUIRED>
-<!ATTLIST AudioDecoderCap enabled (true|false) #REQUIRED>
-]>
-<!--
- This file is used to declare the multimedia profiles and capabilities
- on an android-powered device.
--->
-<MediaSettings>
- <!-- Each camcorder profile defines a set of predefined configuration parameters -->
- <CamcorderProfiles cameraId="0">
-
- <EncoderProfile quality="high" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="highspeedlow" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="1920"
- height="1080"
- frameRate="240" />
-
- <!-- audio setting is ignored -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="highspeedhigh" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="1920"
- height="1080"
- frameRate="240" />
-
- <!-- audio setting is ignored -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="highspeed1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="1920"
- height="1080"
- frameRate="240" />
-
- <!-- audio setting is ignored -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="1">
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="2">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="3">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="4">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="5">
-
- <EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="72000000"
- width="3840"
- height="2160"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse2160p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="48000000"
- width="3840"
- height="2160"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <CamcorderProfiles cameraId="6">
-
- <EncoderProfile quality="1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="33000000"
- width="1920"
- height="1080"
- frameRate="60" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="cif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qvga" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="512000"
- width="320"
- height="240"
- frameRate="30" />
-
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="qcif" fileFormat="3gp" duration="60">
- <Video codec="h264"
- bitRate="128000"
- width="176"
- height="144"
- frameRate="30" />
-
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse1080p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="22000000"
- width="1920"
- height="1080"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse720p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="12000000"
- width="1280"
- height="720"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapse480p" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="6000000"
- width="720"
- height="480"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapsecif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="1200000"
- width="352"
- height="288"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="aac"
- bitRate="96000"
- sampleRate="48000"
- channels="1" />
- </EncoderProfile>
-
- <EncoderProfile quality="timelapseqcif" fileFormat="mp4" duration="60">
- <Video codec="h264"
- bitRate="192000"
- width="176"
- height="144"
- frameRate="30" />
-
- <!-- Audio settings are not used for timealpse video recording -->
- <Audio codec="amrnb"
- bitRate="12200"
- sampleRate="8000"
- channels="1" />
- </EncoderProfile>
-
- <ImageEncoding quality="90" />
- <ImageEncoding quality="80" />
- <ImageEncoding quality="70" />
- <ImageDecoding memCap="20000000" />
-
- </CamcorderProfiles>
-
- <EncoderOutputFileFormat name="3gp" />
- <EncoderOutputFileFormat name="mp4" />
-
- <!--
- If a codec is not enabled, it is invisible to the applications
- In other words, the applications won't be able to use the codec
- or query the capabilities of the codec at all if it is disabled
- -->
-
- <!--
- FIXME : we only check Mpeg4 encorder cap and other codec doesn't check
- codec cap
- -->
- <VideoEncoderCap name="hevc" enabled="true"
- minBitRate="64000" maxBitRate="100000000"
- minFrameWidth="128" maxFrameWidth="3840"
- minFrameHeight="96" maxFrameHeight="2160"
- minFrameRate="15" maxFrameRate="30" />
-
- <VideoEncoderCap name="h264" enabled="true"
- minBitRate="64000" maxBitRate="100000000"
- minFrameWidth="128" maxFrameWidth="3840"
- minFrameHeight="96" maxFrameHeight="2160"
- minFrameRate="15" maxFrameRate="30" />
-
- <VideoEncoderCap name="h263" enabled="true"
- minBitRate="64000" maxBitRate="1000000"
- minFrameWidth="128" maxFrameWidth="1920"
- minFrameHeight="96" maxFrameHeight="1080"
- minFrameRate="15" maxFrameRate="30" />
-
- <VideoEncoderCap name="m4v" enabled="true"
- minBitRate="64000" maxBitRate="2000000"
- minFrameWidth="128" maxFrameWidth="1920"
- minFrameHeight="96" maxFrameHeight="1080"
- minFrameRate="15" maxFrameRate="30" />
-
- <AudioEncoderCap name="aac" enabled="true"
- minBitRate="758" maxBitRate="288000"
- minSampleRate="8000" maxSampleRate="48000"
- minChannels="1" maxChannels="1" />
-
- <AudioEncoderCap name="heaac" enabled="true"
- minBitRate="8000" maxBitRate="64000"
- minSampleRate="16000" maxSampleRate="48000"
- minChannels="1" maxChannels="1" />
-
- <AudioEncoderCap name="aaceld" enabled="true"
- minBitRate="16000" maxBitRate="192000"
- minSampleRate="16000" maxSampleRate="48000"
- minChannels="1" maxChannels="1" />
-
- <AudioEncoderCap name="amrwb" enabled="true"
- minBitRate="6600" maxBitRate="23050"
- minSampleRate="16000" maxSampleRate="16000"
- minChannels="1" maxChannels="1" />
-
- <AudioEncoderCap name="amrnb" enabled="true"
- minBitRate="5525" maxBitRate="12200"
- minSampleRate="8000" maxSampleRate="8000"
- minChannels="1" maxChannels="1" />
-
- <!--
- FIXME:
- We do not check decoder capabilities at present
- At present, we only check whether windows media is visible
- for TEST applications. For other applications, we do
- not perform any checks at all.
- -->
- <VideoDecoderCap name="wmv" enabled="false"/>
- <AudioDecoderCap name="wma" enabled="false"/>
-</MediaSettings>
diff --git a/perf/powerhint-husky.json b/perf/powerhint-husky.json
index 63af423..f316245 100644
--- a/perf/powerhint-husky.json
+++ b/perf/powerhint-husky.json
@@ -235,6 +235,7 @@
"Name": "CPUUtilThreshold",
"Path": "/proc/vendor_sched/util_threshold",
"Values": [
+ "2048 1280 1280",
"1280",
"1100"
],
@@ -273,7 +274,7 @@
},
{
"Name": "BGUClampMaxBoost",
- "Path": "/proc/vendor_sched/bg_uclamp_max",
+ "Path": "/proc/vendor_sched/groups/bg/uclamp_max",
"Values": [
"130",
"512"
@@ -283,7 +284,7 @@
},
{
"Name": "Dex2oatUClampMaxBoost",
- "Path": "/proc/vendor_sched/dex2oat_uclamp_max",
+ "Path": "/proc/vendor_sched/groups/dex2oat/uclamp_max",
"Values": [
"-2",
"615"
@@ -293,7 +294,7 @@
},
{
"Name": "CAMUClampBoost",
- "Path": "/proc/vendor_sched/cam_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/cam/uclamp_min",
"Values": [
"765",
"0"
@@ -302,7 +303,7 @@
},
{
"Name": "TAUClampBoost",
- "Path": "/proc/vendor_sched/ta_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/ta/uclamp_min",
"Values": [
"765",
"1"
@@ -311,7 +312,7 @@
},
{
"Name": "FGUClampBoost",
- "Path": "/proc/vendor_sched/fg_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/fg/uclamp_min",
"Values": [
"159",
"0"
@@ -320,7 +321,7 @@
},
{
"Name": "MLUclampBoost",
- "Path": "/proc/vendor_sched/nnapi_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/nnapi/uclamp_min",
"Values": [
"225",
"812"
@@ -339,7 +340,7 @@
},
{
"Name": "CDPreferIdle",
- "Path": "/proc/vendor_sched/cam_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/cam/prefer_idle",
"Values": [
"1",
"0"
@@ -401,7 +402,7 @@
},
{
"Name": "TAPreferHighCap",
- "Path": "/proc/vendor_sched/ta_prefer_high_cap",
+ "Path": "/proc/vendor_sched/groups/ta/prefer_high_cap",
"Values": [
"1",
"0"
@@ -410,7 +411,7 @@
},
{
"Name": "TAPreferIdle",
- "Path": "/proc/vendor_sched/ta_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/ta/prefer_idle",
"Values": [
"1",
"0"
@@ -420,7 +421,7 @@
},
{
"Name": "FGPreferIdle",
- "Path": "/proc/vendor_sched/fg_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/fg/prefer_idle",
"Values": [
"1",
"0"
@@ -430,7 +431,7 @@
},
{
"Name": "CDPreferHighCap",
- "Path": "/proc/vendor_sched/cam_prefer_high_cap",
+ "Path": "/proc/vendor_sched/groups/cam/prefer_high_cap",
"Values": [
"1",
"0"
@@ -736,7 +737,7 @@
},
{
"Name": "Dex2oatGroup",
- "Path": "/proc/vendor_sched/dex2oat_ug",
+ "Path": "/proc/vendor_sched/groups/dex2oat/ug",
"Values": [
"1",
"0"
@@ -1044,6 +1045,113 @@
"Value": "0"
},
{
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "ReducePreferIdle",
+ "Duration": 5000,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE_GPU",
+ "Node": "GPUDvfsPeriod",
+ "Duration": 1000,
+ "Value": "10"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Type": "DoHint",
+ "Value": "DISPLAY_CHANGE_GPU"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUBigClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUMidClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPULittleClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "TAUClampBoost",
+ "Duration": 5000,
+ "Value": "765"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "FGUClampBoost",
+ "Duration": 5000,
+ "Value": "159"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "MemFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "DsuMinFreq",
+ "Duration": 5000,
+ "Value": "1800000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "BCIMinFreq",
+ "Duration": 5000,
+ "Value": "1401000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUDVFSHeadroom",
+ "Duration": 5000,
+ "Value": "1280"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUTaperedDVFSHeadroomEnable",
+ "Duration": 5000,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPULittleClusterDownRateLimitUs",
+ "Duration": 5000,
+ "Value": "5000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUMidClusterDownRateLimitUs",
+ "Duration": 5000,
+ "Value": "20000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUBigClusterDownRateLimitUs",
+ "Duration": 5000,
+ "Value": "20000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "TAPreferIdle",
+ "Duration": 5000,
+ "Value": "1"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "FGPreferIdle",
+ "Duration": 5000,
+ "Value": "1"
+ },
+ {
"PowerHint": "CPU_LOAD_RESET",
"Node": "GPUPowerOn",
"Duration": 10,
@@ -1890,6 +1998,12 @@
},
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
+ "Node": "CPUUtilThreshold",
+ "Duration": 0,
+ "Value": "1280"
+ },
+ {
+ "PowerHint": "CAMERA_STREAMING_STANDARD",
"Node": "CDPreferHighCap",
"Duration": 0,
"Value": "1"
@@ -1956,6 +2070,12 @@
},
{
"PowerHint": "CAMERA_STREAMING_LOW",
+ "Node": "CPUUtilThreshold",
+ "Duration": 0,
+ "Value": "1280"
+ },
+ {
+ "PowerHint": "CAMERA_STREAMING_LOW",
"Node": "CDPreferHighCap",
"Duration": 0,
"Value": "1"
@@ -2425,6 +2545,12 @@
},
{
"PowerHint": "GAME",
+ "Node": "CPUUtilThreshold",
+ "Duration": 0,
+ "Value": "1280"
+ },
+ {
+ "PowerHint": "GAME",
"Node": "VIRTUAL-SKIN-CPU-MID",
"Duration": 0,
"Value": "game"
diff --git a/perf/powerhint-ripcurrent.json b/perf/powerhint-ripcurrent.json
index 2747e57..0e95f18 100644
--- a/perf/powerhint-ripcurrent.json
+++ b/perf/powerhint-ripcurrent.json
@@ -221,6 +221,7 @@
"Name": "CPUUtilThreshold",
"Path": "/proc/vendor_sched/util_threshold",
"Values": [
+ "2048 1280 1280",
"1280",
"1100"
],
@@ -259,7 +260,7 @@
},
{
"Name": "BGUClampMaxBoost",
- "Path": "/proc/vendor_sched/bg_uclamp_max",
+ "Path": "/proc/vendor_sched/groups/bg/uclamp_max",
"Values": [
"130",
"512"
@@ -269,7 +270,7 @@
},
{
"Name": "Dex2oatUClampMaxBoost",
- "Path": "/proc/vendor_sched/dex2oat_uclamp_max",
+ "Path": "/proc/vendor_sched/groups/dex2oat/uclamp_max",
"Values": [
"-2",
"615"
@@ -279,7 +280,7 @@
},
{
"Name": "CAMUClampBoost",
- "Path": "/proc/vendor_sched/cam_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/cam/uclamp_min",
"Values": [
"765",
"0"
@@ -288,7 +289,7 @@
},
{
"Name": "TAUClampBoost",
- "Path": "/proc/vendor_sched/ta_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/ta/uclamp_min",
"Values": [
"765",
"1"
@@ -297,7 +298,7 @@
},
{
"Name": "FGUClampBoost",
- "Path": "/proc/vendor_sched/fg_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/fg/uclamp_min",
"Values": [
"159",
"0"
@@ -306,7 +307,7 @@
},
{
"Name": "MLUclampBoost",
- "Path": "/proc/vendor_sched/nnapi_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/nnapi/uclamp_min",
"Values": [
"225",
"812"
@@ -325,7 +326,7 @@
},
{
"Name": "CDPreferIdle",
- "Path": "/proc/vendor_sched/cam_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/cam/prefer_idle",
"Values": [
"1",
"0"
@@ -387,7 +388,7 @@
},
{
"Name": "TAPreferHighCap",
- "Path": "/proc/vendor_sched/ta_prefer_high_cap",
+ "Path": "/proc/vendor_sched/groups/ta/prefer_high_cap",
"Values": [
"1",
"0"
@@ -396,7 +397,7 @@
},
{
"Name": "TAPreferIdle",
- "Path": "/proc/vendor_sched/ta_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/ta/prefer_idle",
"Values": [
"1",
"0"
@@ -406,7 +407,7 @@
},
{
"Name": "FGPreferIdle",
- "Path": "/proc/vendor_sched/fg_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/fg/prefer_idle",
"Values": [
"1",
"0"
@@ -416,7 +417,7 @@
},
{
"Name": "CDPreferHighCap",
- "Path": "/proc/vendor_sched/cam_prefer_high_cap",
+ "Path": "/proc/vendor_sched/groups/cam/prefer_high_cap",
"Values": [
"1",
"0"
@@ -782,7 +783,7 @@
},
{
"Name": "Dex2oatGroup",
- "Path": "/proc/vendor_sched/dex2oat_ug",
+ "Path": "/proc/vendor_sched/groups/dex2oat/ug",
"Values": [
"1",
"0"
@@ -1066,6 +1067,113 @@
"Value": "0"
},
{
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "ReducePreferIdle",
+ "Duration": 5000,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE_GPU",
+ "Node": "GPUDvfsPeriod",
+ "Duration": 1000,
+ "Value": "10"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Type": "DoHint",
+ "Value": "DISPLAY_CHANGE_GPU"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUBigClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUMidClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPULittleClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "TAUClampBoost",
+ "Duration": 5000,
+ "Value": "765"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "FGUClampBoost",
+ "Duration": 5000,
+ "Value": "159"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "MemFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "DsuMinFreq",
+ "Duration": 5000,
+ "Value": "1548000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "BCIMinFreq",
+ "Duration": 5000,
+ "Value": "1401000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUDVFSHeadroom",
+ "Duration": 5000,
+ "Value": "1280"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUTaperedDVFSHeadroomEnable",
+ "Duration": 5000,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPULittleClusterDownRateLimitUs",
+ "Duration": 5000,
+ "Value": "5000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUMidClusterDownRateLimitUs",
+ "Duration": 5000,
+ "Value": "20000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUBigClusterDownRateLimitUs",
+ "Duration": 5000,
+ "Value": "20000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "TAPreferIdle",
+ "Duration": 5000,
+ "Value": "1"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "FGPreferIdle",
+ "Duration": 5000,
+ "Value": "1"
+ },
+ {
"PowerHint": "CPU_LOAD_RESET",
"Node": "GPUPowerOn",
"Duration": 10,
@@ -1727,6 +1835,12 @@
},
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
+ "Node": "CPUUtilThreshold",
+ "Duration": 0,
+ "Value": "1280"
+ },
+ {
+ "PowerHint": "CAMERA_STREAMING_STANDARD",
"Node": "CDPreferHighCap",
"Duration": 0,
"Value": "1"
@@ -1781,6 +1895,12 @@
},
{
"PowerHint": "CAMERA_STREAMING_LOW",
+ "Node": "CPUUtilThreshold",
+ "Duration": 0,
+ "Value": "1280"
+ },
+ {
+ "PowerHint": "CAMERA_STREAMING_LOW",
"Node": "CDPreferHighCap",
"Duration": 0,
"Value": "1"
@@ -2238,6 +2358,12 @@
},
{
"PowerHint": "GAME",
+ "Node": "CPUUtilThreshold",
+ "Duration": 0,
+ "Value": "1280"
+ },
+ {
+ "PowerHint": "GAME",
"Node": "NPITaskPacking",
"Duration": 0,
"Value": "1"
diff --git a/perf/powerhint-shiba.json b/perf/powerhint-shiba.json
index 87b42ce..fa68d84 100644
--- a/perf/powerhint-shiba.json
+++ b/perf/powerhint-shiba.json
@@ -235,6 +235,7 @@
"Name": "CPUUtilThreshold",
"Path": "/proc/vendor_sched/util_threshold",
"Values": [
+ "2048 1280 1280",
"1280",
"1100"
],
@@ -273,7 +274,7 @@
},
{
"Name": "BGUClampMaxBoost",
- "Path": "/proc/vendor_sched/bg_uclamp_max",
+ "Path": "/proc/vendor_sched/groups/bg/uclamp_max",
"Values": [
"130",
"512"
@@ -283,7 +284,7 @@
},
{
"Name": "Dex2oatUClampMaxBoost",
- "Path": "/proc/vendor_sched/dex2oat_uclamp_max",
+ "Path": "/proc/vendor_sched/groups/dex2oat/uclamp_max",
"Values": [
"-2",
"615"
@@ -293,7 +294,7 @@
},
{
"Name": "CAMUClampBoost",
- "Path": "/proc/vendor_sched/cam_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/cam/uclamp_min",
"Values": [
"765",
"0"
@@ -302,7 +303,7 @@
},
{
"Name": "TAUClampBoost",
- "Path": "/proc/vendor_sched/ta_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/ta/uclamp_min",
"Values": [
"765",
"1"
@@ -311,7 +312,7 @@
},
{
"Name": "FGUClampBoost",
- "Path": "/proc/vendor_sched/fg_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/fg/uclamp_min",
"Values": [
"159",
"0"
@@ -320,7 +321,7 @@
},
{
"Name": "MLUclampBoost",
- "Path": "/proc/vendor_sched/nnapi_uclamp_min",
+ "Path": "/proc/vendor_sched/groups/nnapi/uclamp_min",
"Values": [
"225",
"812"
@@ -339,7 +340,7 @@
},
{
"Name": "CDPreferIdle",
- "Path": "/proc/vendor_sched/cam_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/cam/prefer_idle",
"Values": [
"1",
"0"
@@ -401,7 +402,7 @@
},
{
"Name": "TAPreferHighCap",
- "Path": "/proc/vendor_sched/ta_prefer_high_cap",
+ "Path": "/proc/vendor_sched/groups/ta/prefer_high_cap",
"Values": [
"1",
"0"
@@ -410,7 +411,7 @@
},
{
"Name": "TAPreferIdle",
- "Path": "/proc/vendor_sched/ta_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/ta/prefer_idle",
"Values": [
"1",
"0"
@@ -420,7 +421,7 @@
},
{
"Name": "FGPreferIdle",
- "Path": "/proc/vendor_sched/fg_prefer_idle",
+ "Path": "/proc/vendor_sched/groups/fg/prefer_idle",
"Values": [
"1",
"0"
@@ -430,7 +431,7 @@
},
{
"Name": "CDPreferHighCap",
- "Path": "/proc/vendor_sched/cam_prefer_high_cap",
+ "Path": "/proc/vendor_sched/groups/cam/prefer_high_cap",
"Values": [
"1",
"0"
@@ -736,7 +737,7 @@
},
{
"Name": "Dex2oatGroup",
- "Path": "/proc/vendor_sched/dex2oat_ug",
+ "Path": "/proc/vendor_sched/groups/dex2oat/ug",
"Values": [
"1",
"0"
@@ -1044,6 +1045,113 @@
"Value": "0"
},
{
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "ReducePreferIdle",
+ "Duration": 5000,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE_GPU",
+ "Node": "GPUDvfsPeriod",
+ "Duration": 1000,
+ "Value": "10"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Type": "DoHint",
+ "Value": "DISPLAY_CHANGE_GPU"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUBigClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUMidClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPULittleClusterMaxFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "TAUClampBoost",
+ "Duration": 5000,
+ "Value": "765"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "FGUClampBoost",
+ "Duration": 5000,
+ "Value": "159"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "MemFreq",
+ "Duration": 5000,
+ "Value": "9999999"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "DsuMinFreq",
+ "Duration": 5000,
+ "Value": "1800000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "BCIMinFreq",
+ "Duration": 5000,
+ "Value": "1401000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUDVFSHeadroom",
+ "Duration": 5000,
+ "Value": "1280"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUTaperedDVFSHeadroomEnable",
+ "Duration": 5000,
+ "Value": "0"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPULittleClusterDownRateLimitUs",
+ "Duration": 5000,
+ "Value": "5000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUMidClusterDownRateLimitUs",
+ "Duration": 5000,
+ "Value": "20000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "CPUBigClusterDownRateLimitUs",
+ "Duration": 5000,
+ "Value": "20000"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "TAPreferIdle",
+ "Duration": 5000,
+ "Value": "1"
+ },
+ {
+ "PowerHint": "DISPLAY_CHANGE",
+ "Node": "FGPreferIdle",
+ "Duration": 5000,
+ "Value": "1"
+ },
+ {
"PowerHint": "CPU_LOAD_RESET",
"Node": "GPUPowerOn",
"Duration": 10,
@@ -1792,6 +1900,12 @@
"Duration": 0,
"Value": "cam1"
},
+ {
+ "PowerHint": "CAMERA_STREAMING_STANDARD",
+ "Node": "CPUUtilThreshold",
+ "Duration": 0,
+ "Value": "1280"
+ },
{
"PowerHint": "CAMERA_STREAMING_STANDARD",
"Node": "CDPreferHighCap",
@@ -1936,6 +2050,12 @@
"Duration": 0,
"Value": "cam1"
},
+ {
+ "PowerHint": "CAMERA_STREAMING_LOW",
+ "Node": "CPUUtilThreshold",
+ "Duration": 0,
+ "Value": "1280"
+ },
{
"PowerHint": "CAMERA_STREAMING_VIDEO_CALL",
"Node": "CDPreferHighCap",
@@ -2371,6 +2491,12 @@
},
{
"PowerHint": "GAME",
+ "Node": "CPUUtilThreshold",
+ "Duration": 0,
+ "Value": "1280"
+ },
+ {
+ "PowerHint": "GAME",
"Node": "VIRTUAL-SKIN-CPU-MID",
"Duration": 0,
"Value": "game"
diff --git a/ripcurrent/BoardConfig.mk b/ripcurrent/BoardConfig.mk
index a84d4b0..d25edd1 100644
--- a/ripcurrent/BoardConfig.mk
+++ b/ripcurrent/BoardConfig.mk
@@ -27,6 +27,14 @@ TARGET_SCREEN_DENSITY := 440
BOARD_USES_GENERIC_AUDIO := true
USES_DEVICE_GOOGLE_SHUSKY := true
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q1
+else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q2
+else
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/trunk
+endif
+
include device/google/shusky/device-shusky-common.mk
include device/google/zuma/BoardConfig-common.mk
diff --git a/rro_overlays/WifiOverlay/res/values/config.xml b/rro_overlays/WifiOverlay/res/values/config.xml
index 3fdade0..6b5ccd8 100644
--- a/rro_overlays/WifiOverlay/res/values/config.xml
+++ b/rro_overlays/WifiOverlay/res/values/config.xml
@@ -136,7 +136,7 @@
<bool translatable="false" name="config_wifiUseHalApiToDisableFwRoaming">true</bool>
<!-- Indicate the driver doesn't support NL80211 Reg changed event -->
- <bool translatable="false" name="config_wifiDriverSupportedNl80211RegChangedEvent">false</bool>
+ <bool translatable="false" name="config_wifiDriverSupportedNl80211RegChangedEvent">true</bool>
<!-- boolean indicating whether or not to disable shutdown idle instance timer in the bridged mode when connected to a power source -->
<bool translatable="false" name ="config_wifiFrameworkSoftApDisableBridgedModeShutdownIdleInstanceWhenCharging">true</bool>
@@ -171,4 +171,7 @@
<!-- boolean indicating whether the caller thread needs to wait for destroyed listeners -->
<bool translatable="false" name ="config_wifiWaitForDestroyedListeners">true</bool>
+
+ <!-- Enable aggregation of Wifi link layer radio stats from all radios -->
+ <bool translatable="false" name="config_wifiLinkLayerAllRadiosStatsAggregationEnabled">true</bool>
</resources>
diff --git a/self-extractors_husky/google_devices/staging/Android.mk b/self-extractors_husky/google_devices/staging/Android.mk
index 640e451..a3a6f13 100644
--- a/self-extractors_husky/google_devices/staging/Android.mk
+++ b/self-extractors_husky/google_devices/staging/Android.mk
@@ -48,7 +48,7 @@ LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_OWNER := samsung
LOCAL_MODULE_CLASS := APPS
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
-LOCAL_CERTIFICATE := platform
+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
diff --git a/self-extractors_shiba/google_devices/staging/Android.mk b/self-extractors_shiba/google_devices/staging/Android.mk
index 27496ec..124f68a 100644
--- a/self-extractors_shiba/google_devices/staging/Android.mk
+++ b/self-extractors_shiba/google_devices/staging/Android.mk
@@ -48,7 +48,7 @@ LOCAL_PRIVILEGED_MODULE := true
LOCAL_MODULE_OWNER := samsung
LOCAL_MODULE_CLASS := APPS
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
-LOCAL_CERTIFICATE := platform
+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
diff --git a/shiba/BoardConfig.mk b/shiba/BoardConfig.mk
index 1fe7b27..4ae6c8b 100644
--- a/shiba/BoardConfig.mk
+++ b/shiba/BoardConfig.mk
@@ -24,7 +24,23 @@ BOARD_KERNEL_CMDLINE += samsung_iommu_v9.load_sequential=1
TARGET_BOARD_INFO_FILE := device/google/shusky/board-info.txt
TARGET_BOOTLOADER_BOARD_NAME := shiba
-TARGET_SCREEN_DENSITY := 420
+
+RELEASE_GOOGLE_PRODUCT_RADIO_DIR := $(RELEASE_GOOGLE_SHIBA_RADIO_DIR)
+RELEASE_GOOGLE_PRODUCT_RADIOCFG_DIR := $(RELEASE_GOOGLE_HUSKY_RADIOCFG_DIR)
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q1
+else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q2
+else
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/trunk
+endif
+
+ifdef PHONE_CAR_BOARD_PRODUCT
+ include vendor/auto/embedded/products/$(PHONE_CAR_BOARD_PRODUCT)/BoardConfig.mk
+else
+ TARGET_SCREEN_DENSITY := 420
+endif
+
BOARD_USES_GENERIC_AUDIO := true
USES_DEVICE_GOOGLE_SHUSKY := true
BOARD_KERNEL_CMDLINE += swiotlb=noforce
diff --git a/shiba/overlay/frameworks/base/core/res/res/values/config.xml b/shiba/overlay/frameworks/base/core/res/res/values/config.xml
index 33399cb..a83fa35 100644
--- a/shiba/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/shiba/overlay/frameworks/base/core/res/res/values/config.xml
@@ -45,9 +45,6 @@
<!-- 140 nits: (140-2)/(1000-2)*(0.71-0.0)+0.0 = 0.098176353 -->
<item name="config_screenBrightnessSettingDefaultFloat" format="float" type="dimen">0.098176353</item>
- <!-- Allow normal brightness controller feature. -->
- <bool name="config_allowNormalBrightnessControllerFeature">true</bool>
-
<!-- Array of light sensor LUX values to define our levels for auto backlight brightness support.
The N entries of this array define N 1 zones as follows:
Zone 0: 0 <= LUX < array[0]
diff --git a/husky/overlay/frameworks/base/packages/SystemUI/res/values/flags.xml b/shiba/overlay/frameworks/base/packages/SystemUI/res-keyguard/values/dimens.xml
index 3d4a679..d45b484 100644
--- a/husky/overlay/frameworks/base/packages/SystemUI/res/values/flags.xml
+++ b/shiba/overlay/frameworks/base/packages/SystemUI/res-keyguard/values/dimens.xml
@@ -16,7 +16,6 @@
*/
-->
<resources>
- <!-- Whether face auth will immediately stop when the display state is OFF -->
- <bool name="flag_stop_face_auth_on_display_off">true</bool>
-</resources>
-
+ <!-- Weather clock smartspace positioning to apply for the weather clock on shiba -->
+ <dimen name="weather_clock_smartspace_translateY">10dp</dimen>
+</resources> \ No newline at end of file
diff --git a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_g9bqd_cn.png b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_g9bqd_cn.png
index 2ca5fa6..dc9d8b5 100644
--- a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_g9bqd_cn.png
+++ b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_g9bqd_cn.png
Binary files differ
diff --git a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_g9bqd_vn.png b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_g9bqd_vn.png
index 1fd1d71..8790e49 100644
--- a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_g9bqd_vn.png
+++ b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_g9bqd_vn.png
Binary files differ
diff --git a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gkws6_cn.png b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gkws6_cn.png
index da0634d..8c5e0c2 100644
--- a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gkws6_cn.png
+++ b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gkws6_cn.png
Binary files differ
diff --git a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gkws6_vn.png b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gkws6_vn.png
index c0d167d..2e4b5ee 100644
--- a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gkws6_vn.png
+++ b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gkws6_vn.png
Binary files differ
diff --git a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gpj41_cn.png b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gpj41_cn.png
index 03a4819..b849bcd 100644
--- a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gpj41_cn.png
+++ b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gpj41_cn.png
Binary files differ
diff --git a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gpj41_vn.png b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gpj41_vn.png
index 86da4b8..ace3619 100644
--- a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gpj41_vn.png
+++ b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gpj41_vn.png
Binary files differ
diff --git a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gzpf0_cn.png b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gzpf0_cn.png
index 59fc3b3..dbd34d0 100644
--- a/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gzpf0_cn.png
+++ b/shiba/overlay_packages/SettingsShibaOverlay/res/drawable/regulatory_info_gzpf0_cn.png
Binary files differ
diff --git a/shiba/rro_overlays/NfcOverlay/Android.bp b/shiba/rro_overlays/NfcOverlay/Android.bp
new file mode 100644
index 0000000..065e971
--- /dev/null
+++ b/shiba/rro_overlays/NfcOverlay/Android.bp
@@ -0,0 +1,9 @@
+package {
+ default_applicable_licenses: ["device_google_shusky_license"],
+}
+
+runtime_resource_overlay {
+ name: "NfcOverlayShiba",
+ sdk_version: "current",
+ product_specific: true
+}
diff --git a/shiba/rro_overlays/NfcOverlay/AndroidManifest.xml b/shiba/rro_overlays/NfcOverlay/AndroidManifest.xml
new file mode 100644
index 0000000..5241aa4
--- /dev/null
+++ b/shiba/rro_overlays/NfcOverlay/AndroidManifest.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<!-- Pixel specific nfc overlays -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.nfc.overlay"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:hasCode="false" />
+ <overlay
+ android:targetPackage="com.android.nfc"
+ android:targetName="NfcCustomization"
+ android:isStatic="true"
+ android:priority="0"/>
+</manifest>
diff --git a/shiba/rro_overlays/NfcOverlay/OWNERS b/shiba/rro_overlays/NfcOverlay/OWNERS
new file mode 100644
index 0000000..35e9713
--- /dev/null
+++ b/shiba/rro_overlays/NfcOverlay/OWNERS
@@ -0,0 +1,2 @@
+# Bug component: 48448
+include platform/packages/apps/Nfc:/OWNERS
diff --git a/shiba/rro_overlays/NfcOverlay/res/values/config.xml b/shiba/rro_overlays/NfcOverlay/res/values/config.xml
new file mode 100644
index 0000000..5bdeca6
--- /dev/null
+++ b/shiba/rro_overlays/NfcOverlay/res/values/config.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2022 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.
+-->
+<resources>
+ <bool name="nfcc_always_on_allowed">false</bool>
+ <bool name="polling_disable_allowed">true</bool>
+ <string-array name="config_skuSupportsSecureNfc" translatable="false">
+ <item>GKWS6</item>
+ <item>GZPF0</item>
+ <item>GPJ41</item>
+ </string-array>
+ <bool name="tag_intent_app_pref_supported">true</bool>
+ <!-- NFC Antenna Location API -->
+ <integer name="device_width">68</integer>
+ <integer name="device_height">146</integer>
+ <bool name="device_foldable">false</bool>
+ <integer-array name="antenna_x">
+ <item>34</item>
+ </integer-array>
+ <integer-array name="antenna_y">
+ <item>97</item>
+ </integer-array>
+</resources>
diff --git a/thermal/Android.bp b/thermal/Android.bp
new file mode 100644
index 0000000..fed2086
--- /dev/null
+++ b/thermal/Android.bp
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+
+package {
+ default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+cc_library {
+ name: "thermal-config-cpp",
+ proto: {
+ type: "lite",
+ export_proto_headers: true,
+ include_dirs: [
+ "external/protobuf/src",
+ "device/google/gs-common/thermal/thermal_hal/thermal_config_schemas"
+ ],
+ }
+}
+
+cc_test_host {
+ name: "shusky-thermal-config-test",
+ srcs: [
+ "thermal_config_test.cpp",
+ ],
+ static_libs: [
+ "libbase",
+ "libgmock",
+ "liblog",
+ "libjsoncpp",
+ "libjsonpbverify",
+ "libjsonpbparse",
+ "thermal_HAL_info_config_proto",
+ ],
+ shared_libs: [
+ "libprotobuf-cpp-full",
+ ],
+ cflags: [
+ "-Wall",
+ "-Werror",
+ "-Wno-unused-parameter",
+ ],
+ data: [
+ "*.json"
+ ],
+ test_suites: [
+ "general-tests",
+ ],
+} \ No newline at end of file
diff --git a/thermal/thermal_config_test.cpp b/thermal/thermal_config_test.cpp
new file mode 100644
index 0000000..7b01306
--- /dev/null
+++ b/thermal/thermal_config_test.cpp
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+
+#include <android-base/file.h>
+#include <gtest/gtest.h>
+#include <jsonpb/json_schema_test.h>
+
+#include "thermal_info_config_test.h"
+
+using namespace ::android::jsonpb;
+using ::android::base::GetExecutableDirectory;
+
+namespace devices {
+namespace shusky {
+
+template <typename T>
+JsonSchemaTestConfigFactory MakeTestParam(const std::string &path) {
+ return android::jsonpb::MakeTestParam<T>(GetExecutableDirectory() + path);
+}
+
+// Make test suite for thermal info config schema.
+INSTANTIATE_TEST_SUITE_P(
+ ThermalSuite, ThermalInfoConfigTest,
+ ::testing::Values(
+ MakeTestParam<ThermalConfig>("/thermal_info_config_husky.json"),
+ MakeTestParam<ThermalConfig>("/thermal_info_config_shiba.json"),
+ MakeTestParam<ThermalConfig>("/thermal_info_config_charge_husky.json"),
+ MakeTestParam<ThermalConfig>("/thermal_info_config_charge_shiba.json"),
+ MakeTestParam<ThermalConfig>("/thermal_info_config_ripcurrent.json"),
+ MakeTestParam<ThermalConfig>(
+ "/thermal_info_config_charge_ripcurrent.json")));
+
+// Ignores a formatting check (b/c 0.0 != 0 textually)
+GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(JsonSchemaTest);
+
+int main(int argc, char **argv) {
+ ::testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}
+
+} // namespace shusky
+} // namespace devices
diff --git a/thermal/thermal_info_config_charge_husky.json b/thermal/thermal_info_config_charge_husky.json
index 626c2b4..3751093 100644
--- a/thermal/thermal_info_config_charge_husky.json
+++ b/thermal/thermal_info_config_charge_husky.json
@@ -3,7 +3,7 @@
{
"Name":"north_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 32.1, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 32.1, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/north_therm/tz_temp",
"Multiplier":0.001,
@@ -13,7 +13,7 @@
{
"Name":"cam_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 33.7, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 33.7, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/cam_therm/tz_temp",
"Multiplier":0.001,
@@ -23,7 +23,7 @@
{
"Name":"soc_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 47.2, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 47.2, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/soc_therm/tz_temp",
"Multiplier":0.001,
@@ -33,7 +33,7 @@
{
"Name":"charge_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 48.4, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 48.4, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/charge_therm/tz_temp",
"Multiplier":0.001,
@@ -43,7 +43,7 @@
{
"Name":"disp_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 31.7, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 31.7, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/disp_therm/tz_temp",
"Multiplier":0.001,
@@ -53,13 +53,13 @@
{
"Name":"battery",
"Type":"BATTERY",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", 60.0],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", 60.0],
"Multiplier":0.001
},
{
"Name":"neutral_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 44.1, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 44.1, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/neutral_therm/tz_temp",
"Multiplier":0.001,
@@ -69,7 +69,7 @@
{
"Name":"quiet_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 34.6, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 34.6, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/quiet_therm/tz_temp",
"Multiplier":0.001,
@@ -79,7 +79,7 @@
{
"Name":"usb_pwr_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 35.0, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 35.0, "NaN", "NaN", "NaN", "NaN", "NaN"],
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm/tz_temp",
"Multiplier":0.001,
"PollingDelay":60000,
@@ -163,21 +163,21 @@
"Formula":"WEIGHTED_AVG",
"Combination":["VIRTUAL-SKIN-CHARGE", "IS_WLC"],
"Coefficient":[1.0, -1000000],
- "HotThreshold":["NAN", 34.0, 38.0, 41.0, 45.0, 47.0, 55.0],
+ "HotThreshold":["NaN", 34.0, 38.0, 41.0, 45.0, 47.0, 55.0],
"HotHysteresis":[0.0, 1.9, 3.9, 2.9, 3.9, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 119, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 119, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 25, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1302, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 2527, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 6219, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 6, "NAN", "NAN", "NAN", "NAN"],
+ "K_Po":["NaN", "NaN", 119, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 119, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 25, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1302, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 2527, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 6219, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 6, "NaN", "NaN", "NaN", "NaN"],
"I_Default":1302
},
"ExcludedPowerInfo": [
@@ -206,21 +206,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN-CHARGE"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 35.0, 41.0, 45.0, 47.0, 51.0, 55.0],
+ "HotThreshold":["NaN", 35.0, 41.0, 45.0, 47.0, 51.0, 55.0],
"HotHysteresis":[0.0, 1.9, 1.9, 3.9, 1.9, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 213, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 213, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 27, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1383, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 2383, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 8022, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 8, "NAN", "NAN", "NAN", "NAN"],
+ "K_Po":["NaN", "NaN", 213, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 213, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 27, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1383, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 2383, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 8022, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 8, "NaN", "NaN", "NaN", "NaN"],
"I_Default":1383
},
"ExcludedPowerInfo": [
@@ -285,7 +285,7 @@
"TriggerSensor": "usb_pwr_therm",
"Combination":["usb_pwr_therm", "USB-MINUS-NEUTRAL", "USB-MINUS-QUIET", "VIRTUAL-USB-THROTTLING-SUB0"],
"Coefficient":[46000, 0, 0, 1],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "4.0", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "4.0", "NaN", "NaN"],
"BindedCdevInfo": [
{
"CdevRequest": "usbc-port",
diff --git a/thermal/thermal_info_config_charge_ripcurrent.json b/thermal/thermal_info_config_charge_ripcurrent.json
index 4e7eecb..2e80991 100644
--- a/thermal/thermal_info_config_charge_ripcurrent.json
+++ b/thermal/thermal_info_config_charge_ripcurrent.json
@@ -4,15 +4,15 @@
"Name":"battery",
"Type":"BATTERY",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
"60.0"
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":0.001
}
]
diff --git a/thermal/thermal_info_config_charge_shiba.json b/thermal/thermal_info_config_charge_shiba.json
index a7d5436..8e3ffbd 100644
--- a/thermal/thermal_info_config_charge_shiba.json
+++ b/thermal/thermal_info_config_charge_shiba.json
@@ -3,7 +3,7 @@
{
"Name":"north_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 38.8, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 38.8, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/north_therm/tz_temp",
"Multiplier":0.001,
@@ -13,7 +13,7 @@
{
"Name":"cam_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 31.0, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 31.0, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/cam_therm/tz_temp",
"Multiplier":0.001,
@@ -23,7 +23,7 @@
{
"Name":"soc_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 41.4, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 41.4, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/soc_therm/tz_temp",
"Multiplier":0.001,
@@ -33,7 +33,7 @@
{
"Name":"charge_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 42.4, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 42.4, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/charge_therm/tz_temp",
"Multiplier":0.001,
@@ -43,7 +43,7 @@
{
"Name":"disp_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 31.2, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 31.2, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/disp_therm/tz_temp",
"Multiplier":0.001,
@@ -53,13 +53,13 @@
{
"Name":"battery",
"Type":"BATTERY",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", 60.0],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", 60.0],
"Multiplier":0.001
},
{
"Name":"neutral_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 41.5, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 41.5, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/neutral_therm/tz_temp",
"Multiplier":0.001,
@@ -69,7 +69,7 @@
{
"Name":"quiet_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 35.1, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 35.1, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/quiet_therm/tz_temp",
"Multiplier":0.001,
@@ -79,7 +79,7 @@
{
"Name":"usb_pwr_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 35.0, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 35.0, "NaN", "NaN", "NaN", "NaN", "NaN"],
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm/tz_temp",
"Multiplier":0.001,
"PollingDelay":60000,
@@ -196,21 +196,21 @@
"Formula":"WEIGHTED_AVG",
"Combination":["VIRTUAL-SKIN-CHARGE", "IS_WLC"],
"Coefficient":[1.0, -1000000],
- "HotThreshold":["NAN", 34.0, 38.0, 41.0, 45.0, 47.0, 55.0],
+ "HotThreshold":["NaN", 34.0, 38.0, 41.0, 45.0, 47.0, 55.0],
"HotHysteresis":[0.0, 1.9, 3.9, 2.9, 3.9, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 101, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 101, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 21, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1099, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 2404, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 5519, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 6, "NAN", "NAN", "NAN", "NAN"],
+ "K_Po":["NaN", "NaN", 101, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 101, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 21, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1099, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 2404, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 5519, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 6, "NaN", "NaN", "NaN", "NaN"],
"I_Default":1099
},
"ExcludedPowerInfo": [
@@ -239,21 +239,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN-CHARGE"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 35.0, 41.0, 45.0, 47.0, 51.0, 55.0],
+ "HotThreshold":["NaN", 35.0, 41.0, 45.0, 47.0, 51.0, 55.0],
"HotHysteresis":[0.0, 1.9, 1.9, 3.9, 1.9, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 164, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 164, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 21, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1066, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 2066, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 6412, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 8, "NAN", "NAN", "NAN", "NAN"],
+ "K_Po":["NaN", "NaN", 164, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 164, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 21, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1066, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 2066, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 6412, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 8, "NaN", "NaN", "NaN", "NaN"],
"I_Default":1066
},
"ExcludedPowerInfo": [
@@ -318,7 +318,7 @@
"TriggerSensor": "usb_pwr_therm",
"Combination":["usb_pwr_therm", "USB-MINUS-NEUTRAL", "USB-MINUS-QUIET", "VIRTUAL-USB-THROTTLING-SUB0"],
"Coefficient":[46000, 0, 0, 1],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "4.0", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "4.0", "NaN", "NaN"],
"BindedCdevInfo": [
{
"CdevRequest": "usbc-port",
diff --git a/thermal/thermal_info_config_husky.json b/thermal/thermal_info_config_husky.json
index 970b6d0..9e659ee 100644
--- a/thermal/thermal_info_config_husky.json
+++ b/thermal/thermal_info_config_husky.json
@@ -3,7 +3,7 @@
{
"Name":"north_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 32.1, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 32.1, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/north_therm/tz_temp",
"Multiplier":0.001,
@@ -13,7 +13,7 @@
{
"Name":"cam_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 33.7, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 33.7, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/cam_therm/tz_temp",
"Multiplier":0.001,
@@ -23,7 +23,7 @@
{
"Name":"soc_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 47.2, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 47.2, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/soc_therm/tz_temp",
"Multiplier":0.001,
@@ -33,7 +33,7 @@
{
"Name":"charge_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 48.4, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 48.4, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/charge_therm/tz_temp",
"Multiplier":0.001,
@@ -43,7 +43,7 @@
{
"Name":"disp_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 31.7, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 31.7, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/disp_therm/tz_temp",
"Multiplier":0.001,
@@ -53,13 +53,13 @@
{
"Name":"battery",
"Type":"BATTERY",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", 60.0],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", 60.0],
"Multiplier":0.001
},
{
"Name":"neutral_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 44.1, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 44.1, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/neutral_therm/tz_temp",
"Multiplier":0.001,
@@ -69,7 +69,7 @@
{
"Name":"quiet_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 34.6, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 34.6, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/quiet_therm/tz_temp",
"Multiplier":0.001,
@@ -79,7 +79,7 @@
{
"Name":"usb_pwr_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 35.0, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 35.0, "NaN", "NaN", "NaN", "NaN", "NaN"],
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm/tz_temp",
"Multiplier":0.001,
"PollingDelay":60000,
@@ -97,7 +97,7 @@
"TriggerSensor": "vdroop1",
"Combination":["battery", "battery_cycle", "vdroop1"],
"Coefficient":[-10000, 400, 1000],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", 3.00, "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", 3.00, "NaN"],
"Multiplier":1,
"PollingDelay":0,
"PassiveDelay":1000,
@@ -111,7 +111,7 @@
"TriggerSensor": "vdroop1",
"Combination":["battery", "battery_cycle", "vdroop1"],
"Coefficient":[-10000, 400, 1000],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 3.00, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 3.00, "NaN", "NaN"],
"Multiplier":1,
"PollingDelay":0,
"PassiveDelay":1000,
@@ -121,13 +121,13 @@
{
"Name":"soc",
"Type":"BCL_PERCENTAGE",
- "HotThreshold":["NAN", "NAN", 80, "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", 80, "NaN", "NaN", "NaN", "NaN"],
"Multiplier":1
},
{
"Name":"batoilo",
"Type":"BCL_CURRENT",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 5000, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 5000, "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"SendCallback":true,
@@ -142,16 +142,16 @@
"TriggerSensor": "soc",
"Combination":["battery", "soc"],
"Coefficient":[-25000, 80],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 2.0, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 2.0, "NaN", "NaN"],
"PollingDelay":0,
- "PassiveDelay":1000,
+ "PassiveDelay":600000,
"Multiplier":1,
"SendCallback":true
},
{
"Name":"vdroop1",
"Type":"BCL_VOLTAGE",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 1000, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 1000, "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"SendCallback":true,
@@ -161,7 +161,7 @@
{
"Name":"vdroop2",
"Type":"BCL_VOLTAGE",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 1200, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 1200, "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"SendCallback":true,
@@ -171,7 +171,7 @@
{
"Name":"smpl_gm",
"Type":"BCL_VOLTAGE",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 1100, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 1100, "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"SendCallback":true,
@@ -320,7 +320,7 @@
"VIRTUAL-SKIN-SUB-3", "VIRTUAL-SKIN-SUB-4", "VIRTUAL-SKIN-SUB-5",
"VIRTUAL-SKIN-SUB-6", "VIRTUAL-SKIN-SUB-7", "VIRTUAL-SKIN-SUB-8", "VIRTUAL-SKIN-SUB-9", "VIRTUAL-SKIN-SUB-10"],
"Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
- "HotThreshold":["NAN", 39.0, 43.0, 45.0, 46.5, 52.0, 55.0],
+ "HotThreshold":["NaN", 39.0, 43.0, 45.0, 46.5, 52.0, 55.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"SendCallback":true,
@@ -346,7 +346,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 52.0, 55.0],
+ "HotThreshold":["NaN", 37.0, 43.0, 45.0, 46.5, 52.0, 55.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"SendPowerHint":true,
@@ -362,21 +362,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 37.0, 39.0, "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 37.0, 39.0, "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 1.9, 1.9, 0.0, 0.0, 0.0, 0.0],
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 2200, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 800, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 800, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 4600, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
+ "K_Po":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 5, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 2200, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 800, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 800, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 4600, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 4, "NaN", "NaN", "NaN", "NaN"]
},
"BindedCdevInfo": [
{
@@ -414,21 +414,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 39.0, 41.0, "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 39.0, 41.0, "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 1.9, 0.0, 0.0, 0.0, 0.0],
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1500, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 700, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 2800, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
+ "K_Po":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 5, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1500, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 700, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 2800, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 4, "NaN", "NaN", "NaN", "NaN"]
},
"BindedCdevInfo": [
{
@@ -460,16 +460,19 @@
{
"CdevRequest": "thermal-cpufreq-0",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 6, 6, 6, 6, 6, 6],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-1",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 9, 9, 9, 9, 9, 9],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-2",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 12, 12, 12, 12, 12, 12],
"Disabled":true
}
]
@@ -480,16 +483,19 @@
{
"CdevRequest": "thermal-cpufreq-0",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 6, 6, 6, 6, 6, 6],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-1",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 9, 9, 9, 9, 9, 9],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-2",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 12, 12, 12, 12, 12, 12],
"Disabled":true
}
]
@@ -505,21 +511,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 41.0, 43.0, 52.0, "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 41.0, 43.0, 52.0, "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 1.9, 1.9, 0.0, 0.0, 0.0],
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1000, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 600, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 1600, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
+ "K_Po":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 5, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1000, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 600, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 1600, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 4, "NaN", "NaN", "NaN", "NaN"]
},
"BindedCdevInfo": [
{
@@ -551,16 +557,19 @@
{
"CdevRequest": "thermal-cpufreq-0",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 8, 8, 8, 8, 8, 8],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-1",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 11, 11, 11, 11, 11, 11],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-2",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 13, 13, 13, 13, 13, 13],
"Disabled":true
}
]
@@ -602,21 +611,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 52.0, 55.0],
+ "HotThreshold":["NaN", 37.0, 43.0, 45.0, 46.5, 52.0, 55.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", "NAN", 300, "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", "NAN", 300, "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", "NAN", 5, "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", "NAN", 0, "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", "NAN", 2600, "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", "NAN", 800, "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", "NAN", 0, "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", "NAN", 3900, "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", "NAN", 8, "NAN", "NAN", "NAN"]
+ "K_Po":["NaN", "NaN", "NaN", 300, "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", "NaN", 300, "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", "NaN", 5, "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", "NaN", 0, "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", "NaN", 2600, "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", "NaN", 800, "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", "NaN", 0, "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", "NaN", 3900, "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", "NaN", 8, "NaN", "NaN", "NaN"]
},
"BindedCdevInfo": [
{
@@ -666,21 +675,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 43.0, 45.0, 46.5, 52.0, "NAN", "NAN"],
+ "HotThreshold":["NaN", 43.0, 45.0, 46.5, 52.0, "NaN", "NaN"],
"HotHysteresis":[0.0, 1.9, 1.9, 1.4, 1.9, 0.0, 0.0],
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 700, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 700, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1723, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 473, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 2500, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
+ "K_Po":["NaN", "NaN", 700, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 700, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 5, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1723, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 473, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 2500, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 4, "NaN", "NaN", "NaN", "NaN"]
},
"BindedCdevInfo": [
{
@@ -698,7 +707,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", 54.0, "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", 54.0, "NaN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 0.0, 1.9, 0.0],
"Multiplier":0.001,
"SendCallback":true,
@@ -747,10 +756,12 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN-SPEAKER-SUB-0", "VIRTUAL-SKIN-SPEAKER-SUB-1", "VIRTUAL-SKIN-SPEAKER-SUB-2"],
"Coefficient":[1, 1, 1],
- "HotThreshold":["NAN", 37.0, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 37.0, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 1.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"Multiplier":0.001,
- "SendCallback":true
+ "SendCallback":true,
+ "PollingDelay":60000,
+ "PassiveDelay":7000
},
{
"Name":"VIRTUAL-SKIN-CHARGE-SUB-0",
@@ -830,21 +841,21 @@
"Formula":"WEIGHTED_AVG",
"Combination":["VIRTUAL-SKIN-CHARGE", "IS_WLC"],
"Coefficient":[1.0, -1000000],
- "HotThreshold":["NAN", 34.0, 38.0, 41.0, 45.0, 47.0, 55.0],
+ "HotThreshold":["NaN", 34.0, 38.0, 41.0, 45.0, 47.0, 55.0],
"HotHysteresis":[0.0, 1.9, 3.9, 2.9, 3.9, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 119, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 119, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 25, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1302, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 2527, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 6219, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 6, "NAN", "NAN", "NAN", "NAN"],
+ "K_Po":["NaN", "NaN", 119, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 119, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 25, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1302, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 2527, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 6219, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 6, "NaN", "NaN", "NaN", "NaN"],
"I_Default":1302
},
"ExcludedPowerInfo": [
@@ -873,21 +884,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN-CHARGE"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 35.0, 41.0, 45.0, 47.0, 51.0, 55.0],
+ "HotThreshold":["NaN", 35.0, 41.0, 45.0, 47.0, 51.0, 55.0],
"HotHysteresis":[0.0, 1.9, 1.9, 3.9, 1.9, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 213, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 213, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 27, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1383, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 2383, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 8022, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 8, "NAN", "NAN", "NAN", "NAN"],
+ "K_Po":["NaN", "NaN", 213, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 213, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 27, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1383, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 2383, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 8022, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 8, "NaN", "NaN", "NaN", "NaN"],
"I_Default":1383
},
"ExcludedPowerInfo": [
@@ -996,7 +1007,7 @@
"TriggerSensor": "usb_pwr_therm",
"Combination":["usb_pwr_therm", "USB-MINUS-NEUTRAL", "USB-MINUS-QUIET", "VIRTUAL-USB-THROTTLING-SUB0"],
"Coefficient":[46000, 0, 0, 1],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "4.0", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "4.0", "NaN", "NaN"],
"BindedCdevInfo": [
{
"CdevRequest": "usbc-port",
@@ -1024,7 +1035,7 @@
"TriggerSensor": "usb_pwr_therm",
"Combination":["usb_pwr_therm", "USB-MINUS-NEUTRAL", "USB-MINUS-QUIET", "VIRTUAL-USB-UI-SUB0"],
"Coefficient":[48000, 0, 0, 1],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "4.0", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "4.0", "NaN"],
"Multiplier":1,
"PollingDelay":300000,
"PassiveDelay":7000,
@@ -1033,31 +1044,31 @@
{
"Name":"LITTLE",
"Type":"CPU",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier":0.001
},
{
"Name":"MID",
"Type":"CPU",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier":0.001
},
{
"Name":"BIG",
"Type":"CPU",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier":0.001
},
{
"Name":"G3D",
"Type":"GPU",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier":0.001
},
{
"Name":"TPU",
"Type":"NPU",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier":0.001
}
],
@@ -1186,6 +1197,18 @@
"Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
},
{
+ "Name": "VIRTUAL-SKIN-SUB-8",
+ "Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
+ },
+ {
+ "Name": "VIRTUAL-SKIN-SUB-9",
+ "Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
+ },
+ {
+ "Name": "VIRTUAL-SKIN-SUB-10",
+ "Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
+ },
+ {
"Name": "VIRTUAL-SKIN-CHARGE",
"Thresholds": [31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51]
},
@@ -1193,7 +1216,62 @@
"Name": "VIRTUAL-USB-THROTTLING",
"Thresholds": [3.0]
}
- ]
+ ],
+ "Abnormality": {
+ "Outlier": {
+ "Configs": [
+ {
+ "Monitor": [
+ "VIRTUAL-SKIN",
+ "VIRTUAL-SKIN-SUB-0",
+ "VIRTUAL-SKIN-SUB-1",
+ "VIRTUAL-SKIN-SUB-2",
+ "VIRTUAL-SKIN-SUB-3",
+ "VIRTUAL-SKIN-SUB-4",
+ "VIRTUAL-SKIN-SUB-5",
+ "VIRTUAL-SKIN-SUB-6",
+ "VIRTUAL-SKIN-SUB-7",
+ "VIRTUAL-SKIN-SUB-8",
+ "VIRTUAL-SKIN-SUB-9",
+ "VIRTUAL-SKIN-SUB-10"
+ ],
+ "TempRange": [0.0, 55.0]
+ }
+ ]
+ },
+ "Stuck": {
+ "Configs": [
+ {
+ "Monitor": [
+ "VIRTUAL-SKIN",
+ "VIRTUAL-SKIN-SUB-0",
+ "VIRTUAL-SKIN-SUB-1",
+ "VIRTUAL-SKIN-SUB-2",
+ "VIRTUAL-SKIN-SUB-3",
+ "VIRTUAL-SKIN-SUB-4",
+ "VIRTUAL-SKIN-SUB-5",
+ "VIRTUAL-SKIN-SUB-6",
+ "VIRTUAL-SKIN-SUB-7",
+ "VIRTUAL-SKIN-SUB-8",
+ "VIRTUAL-SKIN-SUB-9",
+ "VIRTUAL-SKIN-SUB-10",
+ "VIRTUAL-SKIN-SPEAKER",
+ "VIRTUAL-SKIN-SPEAKER-SUB-0",
+ "VIRTUAL-SKIN-SPEAKER-SUB-1",
+ "VIRTUAL-SKIN-SPEAKER-SUB-2",
+ "VIRTUAL-SKIN-FRONT",
+ "VIRTUAL-SKIN-FRONT-SUB-0",
+ "VIRTUAL-SKIN-FRONT-SUB-1",
+ "VIRTUAL-SKIN-FRONT-SUB-2"
+ ],
+ "TempStuck": {
+ "MinPollingCount": 8,
+ "MinStuckDuration": 120000
+ }
+ }
+ ]
+ }
+ }
},
"CoolingDevices": {
"RecordVotePerSensor": {
diff --git a/thermal/thermal_info_config_ripcurrent.json b/thermal/thermal_info_config_ripcurrent.json
index 009b1b5..266965d 100644
--- a/thermal/thermal_info_config_ripcurrent.json
+++ b/thermal/thermal_info_config_ripcurrent.json
@@ -4,75 +4,75 @@
"Name":"battery",
"Type":"BATTERY",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
"60.0"
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":0.001
},
{
"Name":"LITTLE",
"Type":"CPU",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
115.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":0.001
},
{
"Name":"MID",
"Type":"CPU",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
115.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":0.001
},
{
"Name":"G3D",
"Type":"GPU",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
115.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":0.001
},
{
"Name":"battery_cycle",
"Type":"BCL_VOLTAGE",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN"
- ],
- "VrThreshold":"NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN"
+ ],
+ "VrThreshold":"NaN",
"Multiplier":1,
"Monitor":false
},
@@ -93,15 +93,15 @@
"1000"
],
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
3.00,
- "NAN"
+ "NaN"
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1,
"Monitor":true
},
@@ -122,15 +122,15 @@
"1000"
],
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
3.00,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1,
"Monitor":true,
"SendPowerHint":true
@@ -139,28 +139,28 @@
"Name":"soc",
"Type":"BCL_PERCENTAGE",
"HotThreshold":[
- "NAN",
+ "NaN",
80,
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN"
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN"
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1
},
{
"Name":"batoilo",
"Type":"BCL_CURRENT",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
5000,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
"HotHysteresis":[
0.0,
@@ -171,7 +171,7 @@
0.0,
0.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1,
"Monitor":true,
"PollingDelay":0,
@@ -202,15 +202,15 @@
"80"
],
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
2.0,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1,
"Monitor":true
},
@@ -218,13 +218,13 @@
"Name":"vdroop1",
"Type":"BCL_VOLTAGE",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
1000,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
"HotHysteresis":[
0.0,
@@ -235,7 +235,7 @@
0.0,
0.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1,
"Monitor":true,
"PollingDelay":0,
@@ -255,13 +255,13 @@
"Name":"vdroop2",
"Type":"BCL_VOLTAGE",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
1200,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
"HotHysteresis":[
0.0,
@@ -272,7 +272,7 @@
0.0,
0.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1,
"Monitor":true,
"PollingDelay":0,
@@ -292,13 +292,13 @@
"Name":"smpl_gm",
"Type":"BCL_VOLTAGE",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
1100,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
"HotHysteresis":[
0.0,
@@ -309,7 +309,7 @@
0.0,
0.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1,
"Monitor":true,
"PollingDelay":0,
@@ -329,13 +329,13 @@
"Name":"ocp_cpu2",
"Type":"BCL_CURRENT",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
12000,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
"HotHysteresis":[
0.0,
@@ -346,20 +346,20 @@
0.0,
0.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1
},
{
"Name":"ocp_tpu",
"Type":"BCL_CURRENT",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
10500,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
"HotHysteresis":[
0.0,
@@ -370,20 +370,20 @@
0.0,
0.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1
},
{
"Name":"ocp_gpu",
"Type":"BCL_CURRENT",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
12000,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
"HotHysteresis":[
0.0,
@@ -394,20 +394,20 @@
0.0,
0.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1
},
{
"Name":"soft_ocp_cpu2",
"Type":"BCL_CURRENT",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
9000,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
"HotHysteresis":[
0.0,
@@ -418,20 +418,20 @@
0.0,
0.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1
},
{
"Name":"soft_ocp_tpu",
"Type":"BCL_CURRENT",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
8500,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
"HotHysteresis":[
0.0,
@@ -442,20 +442,20 @@
0.0,
0.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1
},
{
"Name":"soft_ocp_gpu",
"Type":"BCL_CURRENT",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
9000,
- "NAN",
- "NAN"
+ "NaN",
+ "NaN"
],
"HotHysteresis":[
0.0,
@@ -466,22 +466,22 @@
0.0,
0.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":1
},
{
"Name":"TPU",
"Type":"NPU",
"HotThreshold":[
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
- "NAN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
+ "NaN",
115.0
],
- "VrThreshold":"NAN",
+ "VrThreshold":"NaN",
"Multiplier":0.001
}
],
diff --git a/thermal/thermal_info_config_shiba.json b/thermal/thermal_info_config_shiba.json
index 87adbb9..988dac3 100644
--- a/thermal/thermal_info_config_shiba.json
+++ b/thermal/thermal_info_config_shiba.json
@@ -3,7 +3,7 @@
{
"Name":"north_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 38.8, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 38.8, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/north_therm/tz_temp",
"Multiplier":0.001,
@@ -13,7 +13,7 @@
{
"Name":"cam_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 31.0, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 31.0, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/cam_therm/tz_temp",
"Multiplier":0.001,
@@ -23,7 +23,7 @@
{
"Name":"soc_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 41.4, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 41.4, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/soc_therm/tz_temp",
"Multiplier":0.001,
@@ -33,7 +33,7 @@
{
"Name":"charge_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 42.4, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 42.4, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/charge_therm/tz_temp",
"Multiplier":0.001,
@@ -43,7 +43,7 @@
{
"Name":"disp_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 31.2, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 31.2, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/disp_therm/tz_temp",
"Multiplier":0.001,
@@ -53,13 +53,13 @@
{
"Name":"battery",
"Type":"BATTERY",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", 60.0],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", 60.0],
"Multiplier":0.001
},
{
"Name":"neutral_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 41.5, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 41.5, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/neutral_therm/tz_temp",
"Multiplier":0.001,
@@ -69,7 +69,7 @@
{
"Name":"quiet_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 35.1, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 35.1, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"TempPath":"/dev/thermal/tz-by-name/quiet_therm/tz_temp",
"Multiplier":0.001,
@@ -79,7 +79,7 @@
{
"Name":"usb_pwr_therm",
"Type":"UNKNOWN",
- "HotThreshold":["NAN", 35.0, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 35.0, "NaN", "NaN", "NaN", "NaN", "NaN"],
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm/tz_temp",
"Multiplier":0.001,
"PollingDelay":60000,
@@ -97,7 +97,7 @@
"TriggerSensor": "vdroop1",
"Combination":["battery", "battery_cycle", "vdroop1"],
"Coefficient":[-10000, 400, 1000],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", 3.00, "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", 3.00, "NaN"],
"Multiplier":1,
"PollingDelay":0,
"PassiveDelay":1000,
@@ -111,7 +111,7 @@
"TriggerSensor": "vdroop1",
"Combination":["battery", "battery_cycle", "vdroop1"],
"Coefficient":[-10000, 400, 1000],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 3.00, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 3.00, "NaN", "NaN"],
"Multiplier":1,
"PollingDelay":0,
"PassiveDelay":1000,
@@ -121,13 +121,13 @@
{
"Name":"soc",
"Type":"BCL_PERCENTAGE",
- "HotThreshold":["NAN", "NAN", 80, "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", 80, "NaN", "NaN", "NaN", "NaN"],
"Multiplier":1
},
{
"Name":"batoilo",
"Type":"BCL_CURRENT",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 5000, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 5000, "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"SendCallback":true,
@@ -142,16 +142,16 @@
"TriggerSensor": "soc",
"Combination":["battery", "soc"],
"Coefficient":[-25000, 80],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 2.0, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 2.0, "NaN", "NaN"],
"PollingDelay":0,
- "PassiveDelay":1000,
+ "PassiveDelay":600000,
"Multiplier":1,
"SendCallback":true
},
{
"Name":"vdroop1",
"Type":"BCL_VOLTAGE",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 1000, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 1000, "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"SendCallback":true,
@@ -161,7 +161,7 @@
{
"Name":"vdroop2",
"Type":"BCL_VOLTAGE",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 1200, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 1200, "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"SendCallback":true,
@@ -171,7 +171,7 @@
{
"Name":"smpl_gm",
"Type":"BCL_VOLTAGE",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", 1100, "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", 1100, "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"SendCallback":true,
@@ -288,7 +288,7 @@
"VIRTUAL-SKIN-SUB-3", "VIRTUAL-SKIN-SUB-4", "VIRTUAL-SKIN-SUB-5",
"VIRTUAL-SKIN-SUB-6", "VIRTUAL-SKIN-SUB-7", "VIRTUAL-SKIN-SUB-8"],
"Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
- "HotThreshold":["NAN", 39.0, 43.0, 45.0, 46.5, 52.0, 55.0],
+ "HotThreshold":["NaN", 39.0, 43.0, 45.0, 46.5, 52.0, 55.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"SendCallback":true,
@@ -314,7 +314,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 52.0, 55.0],
+ "HotThreshold":["NaN", 37.0, 43.0, 45.0, 46.5, 52.0, 55.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"SendPowerHint":true,
@@ -330,21 +330,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 37.0, 39.0, "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 37.0, 39.0, "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 1.9, 1.9, 0.0, 0.0, 0.0, 0.0],
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 2200, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 800, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 800, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 4600, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
+ "K_Po":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 5, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 2200, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 800, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 800, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 4600, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 4, "NaN", "NaN", "NaN", "NaN"]
},
"BindedCdevInfo": [
{
@@ -382,21 +382,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 39.0, 41.0, "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 39.0, 41.0, "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 1.9, 0.0, 0.0, 0.0, 0.0],
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1500, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 700, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 2800, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
+ "K_Po":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 5, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1500, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 700, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 2800, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 4, "NaN", "NaN", "NaN", "NaN"]
},
"BindedCdevInfo": [
{
@@ -428,16 +428,19 @@
{
"CdevRequest": "thermal-cpufreq-0",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 6, 6, 6, 6, 6, 6],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-1",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 9, 9, 9, 9, 9, 9],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-2",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 12, 12, 12, 12, 12, 12],
"Disabled":true
}
]
@@ -448,16 +451,19 @@
{
"CdevRequest": "thermal-cpufreq-0",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 6, 6, 6, 6, 6, 6],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-1",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 9, 9, 9, 9, 9, 9],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-2",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 12, 12, 12, 12, 12, 12],
"Disabled":true
}
]
@@ -473,21 +479,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 41.0, 43.0, 52.0, "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 41.0, 43.0, 52.0, "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 0.0, 1.9, 1.9, 0.0, 0.0, 0.0],
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 400, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1000, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 600, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 1600, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
+ "K_Po":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 400, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 5, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1000, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 600, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 1600, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 4, "NaN", "NaN", "NaN", "NaN"]
},
"BindedCdevInfo": [
{
@@ -519,16 +525,19 @@
{
"CdevRequest": "thermal-cpufreq-0",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 8, 8, 8, 8, 8, 8],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-1",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 11, 11, 11, 11, 11, 11],
"Disabled":true
},
{
"CdevRequest": "thermal-cpufreq-2",
"MaxReleaseStep": 1,
+ "CdevCeiling": [0, 13, 13, 13, 13, 13, 13],
"Disabled":true
}
]
@@ -570,21 +579,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 52.0, 55.0],
+ "HotThreshold":["NaN", 37.0, 43.0, 45.0, 46.5, 52.0, 55.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", "NAN", 300, "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", "NAN", 300, "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", "NAN", 5, "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", "NAN", 0, "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", "NAN", 2600, "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", "NAN", 800, "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", "NAN", 0, "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", "NAN", 3900, "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", "NAN", 8, "NAN", "NAN", "NAN"]
+ "K_Po":["NaN", "NaN", "NaN", 300, "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", "NaN", 300, "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", "NaN", 5, "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", "NaN", 0, "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", "NaN", 2600, "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", "NaN", 800, "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", "NaN", 0, "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", "NaN", 3900, "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", "NaN", 8, "NaN", "NaN", "NaN"]
},
"BindedCdevInfo": [
{
@@ -634,21 +643,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 43.0, 45.0, 46.5, 52.0, "NAN", "NAN"],
+ "HotThreshold":["NaN", 43.0, 45.0, 46.5, 52.0, "NaN", "NaN"],
"HotHysteresis":[0.0, 1.9, 1.9, 1.4, 1.9, 0.0, 0.0],
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 700, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 700, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 5, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1723, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 473, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 2500, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 4, "NAN", "NAN", "NAN", "NAN"]
+ "K_Po":["NaN", "NaN", 700, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 700, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 5, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1723, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 473, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 2500, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 4, "NaN", "NaN", "NaN", "NaN"]
},
"BindedCdevInfo": [
{
@@ -666,7 +675,7 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", 54.0, "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", 54.0, "NaN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 0.0, 1.9, 0.0],
"Multiplier":0.001,
"SendCallback":true,
@@ -726,10 +735,12 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN-SPEAKER-SUB-0", "VIRTUAL-SKIN-SPEAKER-SUB-1", "VIRTUAL-SKIN-SPEAKER-SUB-2", "VIRTUAL-SKIN-SPEAKER-SUB-3"],
"Coefficient":[1, 1, 1, 1],
- "HotThreshold":["NAN", 37.0, "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", 37.0, "NaN", "NaN", "NaN", "NaN", "NaN"],
"HotHysteresis":[0.0, 1.9, 0.0, 0.0, 0.0, 0.0, 0.0],
"Multiplier":0.001,
- "SendCallback":true
+ "SendCallback":true,
+ "PollingDelay":60000,
+ "PassiveDelay":7000
},
{
"Name":"VIRTUAL-SKIN-CHARGE-SUB-0",
@@ -842,21 +853,21 @@
"Formula":"WEIGHTED_AVG",
"Combination":["VIRTUAL-SKIN-CHARGE", "IS_WLC"],
"Coefficient":[1.0, -1000000],
- "HotThreshold":["NAN", 34.0, 38.0, 41.0, 45.0, 47.0, 55.0],
+ "HotThreshold":["NaN", 34.0, 38.0, 41.0, 45.0, 47.0, 55.0],
"HotHysteresis":[0.0, 1.9, 3.9, 2.9, 3.9, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 101, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 101, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 21, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1099, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 2404, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 5519, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 6, "NAN", "NAN", "NAN", "NAN"],
+ "K_Po":["NaN", "NaN", 101, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 101, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 21, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1099, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 2404, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 5519, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 6, "NaN", "NaN", "NaN", "NaN"],
"I_Default":1099
},
"ExcludedPowerInfo": [
@@ -885,21 +896,21 @@
"Formula":"MAXIMUM",
"Combination":["VIRTUAL-SKIN-CHARGE"],
"Coefficient":[1.0],
- "HotThreshold":["NAN", 35.0, 41.0, 45.0, 47.0, 51.0, 55.0],
+ "HotThreshold":["NaN", 35.0, 41.0, 45.0, 47.0, 51.0, 55.0],
"HotHysteresis":[0.0, 1.9, 1.9, 3.9, 1.9, 1.9, 1.9],
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000,
"PIDInfo": {
- "K_Po":["NAN", "NAN", 164, "NAN", "NAN", "NAN", "NAN"],
- "K_Pu":["NAN", "NAN", 164, "NAN", "NAN", "NAN", "NAN"],
- "K_I":["NAN", "NAN", 21, "NAN", "NAN", "NAN", "NAN"],
- "K_D":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "I_Max":["NAN", "NAN", 1066, "NAN", "NAN", "NAN", "NAN"],
- "S_Power":["NAN", "NAN", 2066, "NAN", "NAN", "NAN", "NAN"],
- "MinAllocPower":["NAN", "NAN", 0, "NAN", "NAN", "NAN", "NAN"],
- "MaxAllocPower":["NAN", "NAN", 6412, "NAN", "NAN", "NAN", "NAN"],
- "I_Cutoff":["NAN", "NAN", 8, "NAN", "NAN", "NAN", "NAN"],
+ "K_Po":["NaN", "NaN", 164, "NaN", "NaN", "NaN", "NaN"],
+ "K_Pu":["NaN", "NaN", 164, "NaN", "NaN", "NaN", "NaN"],
+ "K_I":["NaN", "NaN", 21, "NaN", "NaN", "NaN", "NaN"],
+ "K_D":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "I_Max":["NaN", "NaN", 1066, "NaN", "NaN", "NaN", "NaN"],
+ "S_Power":["NaN", "NaN", 2066, "NaN", "NaN", "NaN", "NaN"],
+ "MinAllocPower":["NaN", "NaN", 0, "NaN", "NaN", "NaN", "NaN"],
+ "MaxAllocPower":["NaN", "NaN", 6412, "NaN", "NaN", "NaN", "NaN"],
+ "I_Cutoff":["NaN", "NaN", 8, "NaN", "NaN", "NaN", "NaN"],
"I_Default":1066
},
"ExcludedPowerInfo": [
@@ -1029,7 +1040,7 @@
"TriggerSensor": "usb_pwr_therm",
"Combination":["usb_pwr_therm", "USB-MINUS-NEUTRAL", "USB-MINUS-QUIET", "VIRTUAL-USB-THROTTLING-SUB0"],
"Coefficient":[46000, 0, 0, 1],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "4.0", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "4.0", "NaN", "NaN"],
"BindedCdevInfo": [
{
"CdevRequest": "usbc-port",
@@ -1057,7 +1068,7 @@
"TriggerSensor": "usb_pwr_therm",
"Combination":["usb_pwr_therm", "USB-MINUS-NEUTRAL", "USB-MINUS-QUIET", "VIRTUAL-USB-UI-SUB0"],
"Coefficient":[48000, 0, 0, 1],
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "4.0", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "4.0", "NaN"],
"Multiplier":1,
"PollingDelay":300000,
"PassiveDelay":7000,
@@ -1066,31 +1077,31 @@
{
"Name":"LITTLE",
"Type":"CPU",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier":0.001
},
{
"Name":"MID",
"Type":"CPU",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier":0.001
},
{
"Name":"BIG",
"Type":"CPU",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier":0.001
},
{
"Name":"G3D",
"Type":"GPU",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier":0.001
},
{
"Name":"TPU",
"Type":"NPU",
- "HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", "NAN", "NAN"],
+ "HotThreshold":["NaN", "NaN", "NaN", "NaN", "NaN", "NaN", "NaN"],
"Multiplier":0.001
}
],
@@ -1226,7 +1237,61 @@
"Name": "VIRTUAL-USB-THROTTLING",
"Thresholds": [3.0]
}
- ]
+ ],
+ "Abnormality": {
+ "Outlier": {
+ "Configs": [
+ {
+ "Monitor": [
+ "VIRTUAL-SKIN",
+ "VIRTUAL-SKIN-SUB-0",
+ "VIRTUAL-SKIN-SUB-1",
+ "VIRTUAL-SKIN-SUB-2",
+ "VIRTUAL-SKIN-SUB-3",
+ "VIRTUAL-SKIN-SUB-4",
+ "VIRTUAL-SKIN-SUB-5",
+ "VIRTUAL-SKIN-SUB-6",
+ "VIRTUAL-SKIN-SUB-7",
+ "VIRTUAL-SKIN-SUB-8"
+ ],
+ "TempRange": [0.0, 55.0]
+ }
+ ]
+ },
+ "Stuck": {
+ "Configs": [
+ {
+ "Monitor": [
+ "VIRTUAL-SKIN",
+ "VIRTUAL-SKIN-SUB-0",
+ "VIRTUAL-SKIN-SUB-1",
+ "VIRTUAL-SKIN-SUB-2",
+ "VIRTUAL-SKIN-SUB-3",
+ "VIRTUAL-SKIN-SUB-4",
+ "VIRTUAL-SKIN-SUB-5",
+ "VIRTUAL-SKIN-SUB-6",
+ "VIRTUAL-SKIN-SUB-7",
+ "VIRTUAL-SKIN-SUB-8",
+ "VIRTUAL-SKIN-SPEAKER",
+ "VIRTUAL-SKIN-SPEAKER-SUB-0",
+ "VIRTUAL-SKIN-SPEAKER-SUB-1",
+ "VIRTUAL-SKIN-SPEAKER-SUB-2",
+ "VIRTUAL-SKIN-SPEAKER-SUB-3",
+ "VIRTUAL-SKIN-FRONT",
+ "VIRTUAL-SKIN-FRONT-SUB-0",
+ "VIRTUAL-SKIN-FRONT-SUB-1",
+ "VIRTUAL-SKIN-FRONT-SUB-2",
+ "VIRTUAL-SKIN-FRONT-SUB-3",
+ "VIRTUAL-SKIN-FRONT-SUB-4"
+ ],
+ "TempStuck": {
+ "MinPollingCount": 8,
+ "MinStuckDuration": 120000
+ }
+ }
+ ]
+ }
+ }
},
"CoolingDevices": {
"RecordVotePerSensor": {
diff --git a/thermal/thermal_info_config_test.h b/thermal/thermal_info_config_test.h
new file mode 100644
index 0000000..1864420
--- /dev/null
+++ b/thermal/thermal_info_config_test.h
@@ -0,0 +1,58 @@
+/*
+ * 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.
+ */
+
+#pragma once
+
+#include <string>
+
+#include <gmock/gmock.h>
+#include <jsonpb/json_schema_test.h>
+
+#include "thermal_info_config.pb.h"
+
+namespace devices {
+namespace shusky {
+
+// JSON schema test wrapper.
+class ThermalInfoConfigTest : public android::jsonpb::JsonSchemaTest {
+public:
+ void SetUp() override {
+ JsonSchemaTest::SetUp();
+ thermalInfoConfig_ = static_cast<ThermalConfig *>(message());
+ }
+ ThermalConfig *thermalInfoConfig_ = nullptr;
+};
+
+// Individual test checking for sensor name and type as required fields.
+TEST_P(ThermalInfoConfigTest, ThermalConfigRequiredFields) {
+ std::string error;
+
+ // Checks that no unknown fields are introduced.
+ EXPECT_TRUE(android::jsonpb::AllFieldsAreKnown(*object_, json_, &error))
+ << "File: " << file_path_ << ": " << error;
+
+ // Check all Sensors have a Name and Type.
+ for (int i = 0; i < thermalInfoConfig_->sensors_size(); ++i) {
+ auto &&sensor = thermalInfoConfig_->sensors(i);
+ EXPECT_FALSE(sensor.name().empty())
+ << "No name for sensor #" << i << " in " << file_path_;
+ EXPECT_FALSE(sensor.type().empty())
+ << "No type for sensor " << sensor.name() << " in " << file_path_;
+ }
+};
+
+} // namespace shusky
+} // namespace devices \ No newline at end of file
diff --git a/uwb/Android.bp b/uwb/Android.bp
new file mode 100644
index 0000000..617b368
--- /dev/null
+++ b/uwb/Android.bp
@@ -0,0 +1,70 @@
+//
+// 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.
+
+soong_namespace {}
+
+prebuilt_defaults {
+ name: "conf_defaults",
+ vendor: true,
+ sub_dir: "uwb",
+}
+
+prebuilt_etc {
+ name: "configuration.conf",
+ src: "configuration.conf",
+ defaults: ["conf_defaults"],
+}
+
+prebuilt_etc {
+ name: "calibration.conf",
+ src: "calibration.conf",
+ defaults: ["conf_defaults"],
+}
+
+prebuilt_etc {
+ name: "calibration-default.conf",
+ src: "calibration-default.conf",
+ defaults: ["conf_defaults"],
+}
+
+prebuilt_etc {
+ name: "calibration-CE.conf",
+ src: "calibration-CE.conf",
+ defaults: ["conf_defaults"],
+}
+
+prebuilt_etc {
+ name: "calibration-FCC.conf",
+ src: "calibration-FCC.conf",
+ defaults: ["conf_defaults"],
+}
+
+prebuilt_etc {
+ name: "calibration-JP.conf",
+ src: "calibration-JP.conf",
+ defaults: ["conf_defaults"],
+}
+
+prebuilt_etc {
+ name: "calibration-TW.conf",
+ src: "calibration-TW.conf",
+ defaults: ["conf_defaults"],
+}
+
+prebuilt_etc {
+ name: "calibration-RESTRICTED.conf",
+ src: "calibration-RESTRICTED.conf",
+ defaults: ["conf_defaults"],
+}
diff --git a/uwb/UWB-calibration.conf b/uwb/UWB-calibration.conf
deleted file mode 100644
index 52a528d..0000000
--- a/uwb/UWB-calibration.conf
+++ /dev/null
@@ -1,142 +0,0 @@
-[CCC]version=2
-[CCC]ant0.ch5.prf64.pdoa_iso_rf2_rf1=0
-[CCC]ant0.ch5.prf64.pdoa_iso_rf1_rf2=0
-[CCC]ant0.ch9.prf64.pdoa_iso_rf2_rf1=0
-[CCC]ant0.ch9.prf64.pdoa_iso_rf1_rf2=0
-[CCC]ant0.ch5.prf64.pdoa_offset=0
-[CCC]ant0.ch9.prf64.pdoa_offset=0
-[CCC]ant0.ch5.prf64.pll_locking_code=0
-[CCC]ant0.ch9.prf64.pll_locking_code=0
-[CCC]id=0
-[CCC]wifi_coex_time_gap=10
-[CCC]ap_coop_mode=1
-[CCC]antenna_selection=4
-ant0.ch5.prf16.ant_delay=16450
-ant0.ch5.prf16.tx_power=0
-ant0.ch5.prf16.pg_count=0
-ant0.ch5.prf16.pg_delay=0
-ant0.ch5.prf64.ant_delay=16450
-ant0.ch5.prf64.tx_power=0
-ant0.ch5.prf64.pg_count=0
-ant0.ch5.prf64.pg_delay=0
-ant0.ch9.prf16.ant_delay=16450
-ant0.ch9.prf16.tx_power=0
-ant0.ch9.prf16.pg_count=0
-ant0.ch9.prf16.pg_delay=0
-ant0.ch9.prf64.ant_delay=16450
-ant0.ch9.prf64.tx_power=0
-ant0.ch9.prf64.pg_count=0
-ant0.ch9.prf64.pg_delay=0
-ant0.port=0
-ant0.selector_gpio=7
-ant0.selector_gpio_value=0
-ant1.ch5.prf16.ant_delay=16450
-ant1.ch5.prf16.tx_power=0
-ant1.ch5.prf16.pg_count=0
-ant1.ch5.prf16.pg_delay=0
-ant1.ch5.prf64.ant_delay=16450
-ant1.ch5.prf64.tx_power=0
-ant1.ch5.prf64.pg_count=0
-ant1.ch5.prf64.pg_delay=0
-ant1.ch9.prf16.ant_delay=16450
-ant1.ch9.prf16.tx_power=0
-ant1.ch9.prf16.pg_count=0
-ant1.ch9.prf16.pg_delay=0
-ant1.ch9.prf64.ant_delay=16450
-ant1.ch9.prf64.tx_power=0
-ant1.ch9.prf64.pg_count=0
-ant1.ch9.prf64.pg_delay=0
-ant1.port=0
-ant1.selector_gpio=7
-ant1.selector_gpio_value=1
-ant2.ch5.prf16.ant_delay=16450
-ant2.ch5.prf16.tx_power=0
-ant2.ch5.prf16.pg_count=0
-ant2.ch5.prf16.pg_delay=0
-ant2.ch5.prf64.ant_delay=16450
-ant2.ch5.prf64.tx_power=0
-ant2.ch5.prf64.pg_count=0
-ant2.ch5.prf64.pg_delay=0
-ant2.ch9.prf16.ant_delay=16450
-ant2.ch9.prf16.tx_power=0
-ant2.ch9.prf16.pg_count=0
-ant2.ch9.prf16.pg_delay=0
-ant2.ch9.prf64.ant_delay=16450
-ant2.ch9.prf64.tx_power=0
-ant2.ch9.prf64.pg_count=0
-ant2.ch9.prf64.pg_delay=0
-ant2.port=1
-ant2.selector_gpio=6
-ant2.selector_gpio_value=0
-ant3.ch5.prf16.ant_delay=16450
-ant3.ch5.prf16.tx_power=0
-ant3.ch5.prf16.pg_count=0
-ant3.ch5.prf16.pg_delay=0
-ant3.ch5.prf64.ant_delay=16450
-ant3.ch5.prf64.tx_power=0
-ant3.ch5.prf64.pg_count=0
-ant3.ch5.prf64.pg_delay=0
-ant3.ch9.prf16.ant_delay=16450
-ant3.ch9.prf16.tx_power=0
-ant3.ch9.prf16.pg_count=0
-ant3.ch9.prf16.pg_delay=0
-ant3.ch9.prf64.ant_delay=16450
-ant3.ch9.prf64.tx_power=0
-ant3.ch9.prf64.pg_count=0
-ant3.ch9.prf64.pg_delay=0
-ant3.port=1
-ant3.selector_gpio=6
-ant3.selector_gpio_value=1
-ant0.ant1.ch5.pdoa_offset=0
-ant0.ant1.ch9.pdoa_offset=0
-ant0.ant2.ch5.pdoa_offset=0
-ant0.ant2.ch9.pdoa_offset=0
-ant1.ant2.ch5.pdoa_offset=2173
-ant1.ant2.ch9.pdoa_offset=3555
-ant0.ant3.ch5.pdoa_offset=0
-ant0.ant3.ch9.pdoa_offset=0
-ant1.ant3.ch5.pdoa_offset=3845
-ant1.ant3.ch9.pdoa_offset=647
-ant2.ant3.ch5.pdoa_offset=0
-ant2.ant3.ch9.pdoa_offset=0
-ch5.pll_locking_code=0
-ch9.pll_locking_code=0
-ant1.ant2.ch5.pdoa_lut=3d:ea:7b:0a:66:ea:c3:09:a4:ea:0a:09:cd:ea:66:08:0a:eb:ae:07:33:eb:f6:06:48:eb:52:06:71:eb:9a:05:c3:eb:e1:04:e1:ec:29:04:c3:ef:85:03:a4:f4:cd:02:14:f8:14:02:b8:fa:5c:01:8f:fc:b8:00:e1:fe:00:00:48:01:48:ff:85:03:a4:fe:ae:05:ec:fd:00:08:33:fd:d7:09:7b:fc:85:0b:d7:fb:0a:0d:1f:fb:66:0e:66:fa:33:0f:ae:f9:00:10:0a:f9:a4:10:52:f8:1f:11:9a:f7:5c:11:f6:f6:9a:11:3d:f6:ae:11:85:f5
-ant1.ant2.ch9.pdoa_lut=c3:ed:7b:0a:29:ee:c3:09:3d:ee:0a:09:cd:ee:66:08:c3:ef:ae:07:f6:f0:f6:06:3d:f2:52:06:52:f2:9a:05:cd:f2:e1:04:5c:f3:29:04:c3:f3:85:03:b8:f4:cd:02:71:f7:14:02:52:fa:5c:01:85:fd:b8:00:00:00:00:00:0a:01:48:ff:5c:01:a4:fe:14:02:ec:fd:5c:03:33:fd:48:05:7b:fc:b8:06:d7:fb:14:08:1f:fb:33:09:66:fa:ec:09:ae:f9:3d:0a:0a:f9:0a:0b:52:f8:1f:0b:9a:f7:48:0b:f6:f6:85:0b:3d:f6:9a:0b:85:f5
-ant1.ant3.ch5.pdoa_lut=66:ec:7b:0a:e1:ec:c3:09:14:ee:0a:09:d7:ef:66:08:8f:f2:ae:07:00:f6:f6:06:cd:f6:52:06:33:f7:9a:05:d7:f7:e1:04:48:f9:29:04:33:fd:85:03:d7:fd:cd:02:3d:fe:14:02:ec:ff:5c:01:14:00:b8:00:3d:00:00:00:cd:02:48:ff:29:04:a4:fe:a4:04:ec:fd:85:05:33:fd:e1:06:7b:fc:b8:08:d7:fb:14:0a:1f:fb:e1:0a:66:fa:1f:0b:0a:f9:1f:0b:ae:f9:5c:0b:52:f8:c3:0b:9a:f7:52:0c:f6:f6:0a:0d:3d:f6:00:0e:85:f5
-ant1.ant3.ch9.pdoa_lut=0a:ef:7b:0a:c3:ef:c3:09:00:f0:0a:09:14:f0:66:08:7b:f0:ae:07:48:f1:f6:06:00:f2:52:06:c3:f3:9a:05:00:f6:e1:04:d7:f7:29:04:1f:f9:85:03:ae:f9:cd:02:e1:fa:14:02:e1:fc:5c:01:b8:fe:b8:00:c3:ff:00:00:00:02:48:ff:5c:05:a4:fe:52:08:ec:fd:14:0a:33:fd:e1:0a:7b:fc:14:0c:d7:fb:14:0e:1f:fb:1f:0f:66:fa:00:10:ae:f9:b8:10:0a:f9:29:12:52:f8:00:14:9a:f7:7b:16:f6:f6:d7:17:3d:f6:29:18:85:f5
-xtal_trim=23
-temperature_reference=85
-smart_tx_power=1
-auto_sleep_margin=20000
-restricted_channels=0
-[HAL]aoa_capability=1
-[HAL]ant_sets.ch5.range.rx_ant_set_nonranging = 6
-[HAL]ant_sets.ch5.range.rx_ant_set_ranging = 3
-[HAL]ant_sets.ch5.range.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch5.range.tx_ant_set_ranging = 0
-[HAL]ant_sets.ch5.azimuth.rx_ant_set_nonranging = 6
-[HAL]ant_sets.ch5.azimuth.rx_ant_set_ranging = 3
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch5.azimuth.tx_ant_set_ranging = 0
-[HAL]ant_sets.ch9.range.rx_ant_set_nonranging = 6
-[HAL]ant_sets.ch9.range.rx_ant_set_ranging = 3
-[HAL]ant_sets.ch9.range.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch9.range.tx_ant_set_ranging = 0
-[HAL]ant_sets.ch5.elevation.rx_ant_set_nonranging = 6
-[HAL]ant_sets.ch5.elevation.rx_ant_set_ranging = 1
-[HAL]ant_sets.ch5.elevation.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch5.elevation.tx_ant_set_ranging = 0
-[HAL]ant_sets.ch9.elevation.rx_ant_set_nonranging = 6
-[HAL]ant_sets.ch9.elevation.rx_ant_set_ranging = 1
-[HAL]ant_sets.ch9.elevation.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch9.elevation.tx_ant_set_ranging = 0
-[HAL]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 6
-[HAL]ant_sets.ch9.azimuth.rx_ant_set_ranging = 3
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 0
-[HAL]ant_sets.ch9.azimuth.tx_ant_set_ranging = 0
-[HAL]minimum_system_offset_uwbtime0=500
-coex_gpio=4
-coex_delay_us=1000
-coex_margin_us=500
-coex_interval_us=2000
diff --git a/uwb/calibration-CE.conf b/uwb/calibration-CE.conf
new file mode 100644
index 0000000..e1a45aa
--- /dev/null
+++ b/uwb/calibration-CE.conf
@@ -0,0 +1,151 @@
+# CE calibration file
+
+# ANT0 CH5 configuration
+#3C3C3C3C FF 0x34 0xFFFFFFFF
+#3E3E3E3E FF 0x34 0xFFFFFFFF
+#38403838 FF 0x34 0xFFFFFFFF
+#33333333 FF 0x34 0xFFFFFFFF
+#37373737 FF 0x34 0xFFFFFFFF
+#37373737 FF 0x34 0xFFFFFFFF
+#32323232 FF 0x34 0xFFFFFFFF
+
+# tx power
+ant0.ch5.ref_frame0.tx_power_index=3C:3C:3C:3C
+ant0.ch5.ref_frame1.tx_power_index=3E:3E:3E:3E
+ant0.ch5.ref_frame2.tx_power_index=38:38:40:38
+ant0.ch5.ref_frame3.tx_power_index=33:33:33:33
+ant0.ch5.ref_frame4.tx_power_index=37:37:37:37
+ant0.ch5.ref_frame5.tx_power_index=37:37:37:37
+ant0.ch5.ref_frame6.tx_power_index=32:32:32:32
+ant0.ch5.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant0.ch5.ref_frame0.post_tx_power_index=0xff
+ant0.ch5.ref_frame1.post_tx_power_index=0xff
+ant0.ch5.ref_frame2.post_tx_power_index=0xff
+ant0.ch5.ref_frame3.post_tx_power_index=0xff
+ant0.ch5.ref_frame4.post_tx_power_index=0xff
+ant0.ch5.ref_frame5.post_tx_power_index=0xff
+ant0.ch5.ref_frame6.post_tx_power_index=0xff
+ant0.ch5.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant0.ch5.ref_frame0.pg_delay=0x34
+ant0.ch5.ref_frame1.pg_delay=0x34
+ant0.ch5.ref_frame2.pg_delay=0x34
+ant0.ch5.ref_frame3.pg_delay=0x34
+ant0.ch5.ref_frame4.pg_delay=0x34
+ant0.ch5.ref_frame5.pg_delay=0x34
+ant0.ch5.ref_frame6.pg_delay=0x34
+ant0.ch5.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant0.ch5.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+# ANT0 CH9 CONFIGURATION
+#3B3B3B3B FF 0x34 0xFFFFFFFF
+#3C3C3C3C FF 0x34 0xFFFFFFFF
+#3A423A3A FF 0x34 0xFFFFFFFF
+#36363636 FF 0x34 0xFFFFFFFF
+#32323232 FF 0x34 0xFFFFFFFF
+#31313131 FF 0x34 0xFFFFFFFF
+#37373737 FF 0x34 0xFFFFFFFF
+
+# tx power
+ant0.ch9.ref_frame0.tx_power_index=3B:3B:3B:3B
+ant0.ch9.ref_frame1.tx_power_index=3C:3C:3C:3C
+ant0.ch9.ref_frame2.tx_power_index=3A:3A:42:3A
+ant0.ch9.ref_frame3.tx_power_index=36:36:36:36
+ant0.ch9.ref_frame4.tx_power_index=32:32:32:32
+ant0.ch9.ref_frame5.tx_power_index=31:31:31:31
+ant0.ch9.ref_frame6.tx_power_index=37:37:37:37
+ant0.ch9.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant0.ch9.ref_frame0.post_tx_power_index=0xff
+ant0.ch9.ref_frame1.post_tx_power_index=0xff
+ant0.ch9.ref_frame2.post_tx_power_index=0xff
+ant0.ch9.ref_frame3.post_tx_power_index=0xff
+ant0.ch9.ref_frame4.post_tx_power_index=0xff
+ant0.ch9.ref_frame5.post_tx_power_index=0xff
+ant0.ch9.ref_frame6.post_tx_power_index=0xff
+ant0.ch9.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant0.ch9.ref_frame0.pg_delay=0x34
+ant0.ch9.ref_frame1.pg_delay=0x34
+ant0.ch9.ref_frame2.pg_delay=0x34
+ant0.ch9.ref_frame3.pg_delay=0x34
+ant0.ch9.ref_frame4.pg_delay=0x34
+ant0.ch9.ref_frame5.pg_delay=0x34
+ant0.ch9.ref_frame6.pg_delay=0x34
+ant0.ch9.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant0.ch9.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+# ANT1 CH9 CONFIGURATION
+#41414141 FF 0x34 0xFFFFFFFF
+#45454545 FF 0x34 0xFFFFFFFF
+#3E463E3E FF 0x34 0xFFFFFFFF
+#37373737 FF 0x34 0xFFFFFFFF
+#40404040 FF 0x34 0xFFFFFFFF
+#3B3B3B3B FF 0x34 0xFFFFFFFF
+#39393939 FF 0x34 0xFFFFFFFF
+
+# tx power
+ant1.ch9.ref_frame0.tx_power_index=41:41:41:41
+ant1.ch9.ref_frame1.tx_power_index=45:45:45:45
+ant1.ch9.ref_frame2.tx_power_index=3E:3E:46:3E
+ant1.ch9.ref_frame3.tx_power_index=37:37:37:37
+ant1.ch9.ref_frame4.tx_power_index=40:40:40:40
+ant1.ch9.ref_frame5.tx_power_index=3B:3B:3B:3B
+ant1.ch9.ref_frame6.tx_power_index=39:39:39:39
+ant1.ch9.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant1.ch9.ref_frame0.post_tx_power_index=0xff
+ant1.ch9.ref_frame1.post_tx_power_index=0xff
+ant1.ch9.ref_frame2.post_tx_power_index=0xff
+ant1.ch9.ref_frame3.post_tx_power_index=0xff
+ant1.ch9.ref_frame4.post_tx_power_index=0xff
+ant1.ch9.ref_frame5.post_tx_power_index=0xff
+ant1.ch9.ref_frame6.post_tx_power_index=0xff
+ant1.ch9.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant1.ch9.ref_frame0.pg_delay=0x34
+ant1.ch9.ref_frame1.pg_delay=0x34
+ant1.ch9.ref_frame2.pg_delay=0x34
+ant1.ch9.ref_frame3.pg_delay=0x34
+ant1.ch9.ref_frame4.pg_delay=0x34
+ant1.ch9.ref_frame5.pg_delay=0x34
+ant1.ch9.ref_frame6.pg_delay=0x34
+ant1.ch9.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant1.ch9.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+restricted_channels=0x0000
+alternate_pulse_shape=0x00
diff --git a/uwb/calibration-FCC.conf b/uwb/calibration-FCC.conf
new file mode 100644
index 0000000..f579c20
--- /dev/null
+++ b/uwb/calibration-FCC.conf
@@ -0,0 +1,151 @@
+# FCC calibration file
+
+# ANT0 CH5 configuration
+#41414141 34 0x34 0xFFFFFFFF
+#48484848 33 0x34 0xFFFFFFFF
+#3C443C3C 36 0x34 0xFFFFFFFF
+#33333333 33 0x34 0xFFFFFFFF
+#3E3E3E3E 32 0x34 0xFFFFFFFF
+#3B3B3B3B 32 0x34 0xFFFFFFFF
+#32323232 32 0x34 0xFFFFFFFF
+
+# tx power
+ant0.ch5.ref_frame0.tx_power_index=41:41:41:41
+ant0.ch5.ref_frame1.tx_power_index=48:48:48:48
+ant0.ch5.ref_frame2.tx_power_index=3C:3C:44:3C
+ant0.ch5.ref_frame3.tx_power_index=33:33:33:33
+ant0.ch5.ref_frame4.tx_power_index=3E:3E:3E:3E
+ant0.ch5.ref_frame5.tx_power_index=3B:3B:3B:3B
+ant0.ch5.ref_frame6.tx_power_index=32:32:32:32
+ant0.ch5.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant0.ch5.ref_frame0.post_tx_power_index=0x34
+ant0.ch5.ref_frame1.post_tx_power_index=0x33
+ant0.ch5.ref_frame2.post_tx_power_index=0x36
+ant0.ch5.ref_frame3.post_tx_power_index=0x33
+ant0.ch5.ref_frame4.post_tx_power_index=0x32
+ant0.ch5.ref_frame5.post_tx_power_index=0x32
+ant0.ch5.ref_frame6.post_tx_power_index=0x32
+ant0.ch5.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant0.ch5.ref_frame0.pg_delay=0x34
+ant0.ch5.ref_frame1.pg_delay=0x34
+ant0.ch5.ref_frame2.pg_delay=0x34
+ant0.ch5.ref_frame3.pg_delay=0x34
+ant0.ch5.ref_frame4.pg_delay=0x34
+ant0.ch5.ref_frame5.pg_delay=0x34
+ant0.ch5.ref_frame6.pg_delay=0x34
+ant0.ch5.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant0.ch5.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+# ANT0 CH9 CONFIGURATION
+#45454545 32 0x34 0xFFFFFFFF
+#45454545 32 0x34 0xFFFFFFFF
+#3F473F3F 32 0x34 0xFFFFFFFF
+#3B3B3B3B 32 0x34 0xFFFFFFFF
+#3E3E3E3E 32 0x34 0xFFFFFFFF
+#37373737 32 0x34 0xFFFFFFFF
+#39393939 32 0x34 0xFFFFFFFF
+
+# tx power
+ant0.ch9.ref_frame0.tx_power_index=45:45:45:45
+ant0.ch9.ref_frame1.tx_power_index=45:45:45:45
+ant0.ch9.ref_frame2.tx_power_index=3F:3F:47:3F
+ant0.ch9.ref_frame3.tx_power_index=3B:3B:3B:3B
+ant0.ch9.ref_frame4.tx_power_index=3E:3E:3E:3E
+ant0.ch9.ref_frame5.tx_power_index=37:37:37:37
+ant0.ch9.ref_frame6.tx_power_index=39:39:39:39
+ant0.ch9.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant0.ch9.ref_frame0.post_tx_power_index=0x32
+ant0.ch9.ref_frame1.post_tx_power_index=0x32
+ant0.ch9.ref_frame2.post_tx_power_index=0x32
+ant0.ch9.ref_frame3.post_tx_power_index=0x32
+ant0.ch9.ref_frame4.post_tx_power_index=0x32
+ant0.ch9.ref_frame5.post_tx_power_index=0x32
+ant0.ch9.ref_frame6.post_tx_power_index=0x32
+ant0.ch9.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant0.ch9.ref_frame0.pg_delay=0x34
+ant0.ch9.ref_frame1.pg_delay=0x34
+ant0.ch9.ref_frame2.pg_delay=0x34
+ant0.ch9.ref_frame3.pg_delay=0x34
+ant0.ch9.ref_frame4.pg_delay=0x34
+ant0.ch9.ref_frame5.pg_delay=0x34
+ant0.ch9.ref_frame6.pg_delay=0x34
+ant0.ch9.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant0.ch9.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+# ANT1 CH9 CONFIGURATION
+#44444444 32 0x34 0xFFFFFFFF
+#4B4B4B4B 32 0x34 0xFFFFFFFF
+#41494141 32 0x34 0xFFFFFFFF
+#3A3A3A3A 32 0x34 0xFFFFFFFF
+#40404040 32 0x34 0xFFFFFFFF
+#3E3E3E3E 32 0x34 0xFFFFFFFF
+#34343434 32 0x34 0xFFFFFFFF
+
+# tx power
+ant1.ch9.ref_frame0.tx_power_index=44:44:44:44
+ant1.ch9.ref_frame1.tx_power_index=4B:4B:4B:4B
+ant1.ch9.ref_frame2.tx_power_index=41:41:49:41
+ant1.ch9.ref_frame3.tx_power_index=3A:3A:3A:3A
+ant1.ch9.ref_frame4.tx_power_index=40:40:40:40
+ant1.ch9.ref_frame5.tx_power_index=3E:3E:3E:3E
+ant1.ch9.ref_frame6.tx_power_index=34:34:34:34
+ant1.ch9.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant1.ch9.ref_frame0.post_tx_power_index=0x32
+ant1.ch9.ref_frame1.post_tx_power_index=0x32
+ant1.ch9.ref_frame2.post_tx_power_index=0x32
+ant1.ch9.ref_frame3.post_tx_power_index=0x32
+ant1.ch9.ref_frame4.post_tx_power_index=0x32
+ant1.ch9.ref_frame5.post_tx_power_index=0x32
+ant1.ch9.ref_frame6.post_tx_power_index=0x32
+ant1.ch9.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant1.ch9.ref_frame0.pg_delay=0x34
+ant1.ch9.ref_frame1.pg_delay=0x34
+ant1.ch9.ref_frame2.pg_delay=0x34
+ant1.ch9.ref_frame3.pg_delay=0x34
+ant1.ch9.ref_frame4.pg_delay=0x34
+ant1.ch9.ref_frame5.pg_delay=0x34
+ant1.ch9.ref_frame6.pg_delay=0x34
+ant1.ch9.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant1.ch9.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+restricted_channels=0x0000
+alternate_pulse_shape=0x00
diff --git a/uwb/calibration-JP.conf b/uwb/calibration-JP.conf
new file mode 100644
index 0000000..463dada
--- /dev/null
+++ b/uwb/calibration-JP.conf
@@ -0,0 +1,101 @@
+# JP calibration file
+# ANT0 CH9 CONFIGURATION
+#41414141 FF 29 0xFFFFFFFF
+#4C4C4C4C FF 29 0xFFFFFFFF
+#3C463C3C FF 29 0xFFFFFFFF
+#32323232 FF 29 0xFFFFFFFF
+#41414141 FF 29 0xFFFFFFFF
+#40404040 FF 29 0xFFFFFFFF
+#35353535 FF 29 0xFFFFFFFF
+
+# tx power
+ant0.ch9.ref_frame0.tx_power_index=41:41:41:41
+ant0.ch9.ref_frame1.tx_power_index=4C:4C:4C:4C
+ant0.ch9.ref_frame2.tx_power_index=3C:3C:46:3C
+ant0.ch9.ref_frame3.tx_power_index=32:32:32:32
+ant0.ch9.ref_frame4.tx_power_index=41:41:41:41
+ant0.ch9.ref_frame5.tx_power_index=40:40:40:40
+ant0.ch9.ref_frame6.tx_power_index=35:35:35:35
+ant0.ch9.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant0.ch9.ref_frame0.post_tx_power_index=0xff
+ant0.ch9.ref_frame1.post_tx_power_index=0xff
+ant0.ch9.ref_frame2.post_tx_power_index=0xff
+ant0.ch9.ref_frame3.post_tx_power_index=0xff
+ant0.ch9.ref_frame4.post_tx_power_index=0xff
+ant0.ch9.ref_frame5.post_tx_power_index=0xff
+ant0.ch9.ref_frame6.post_tx_power_index=0xff
+ant0.ch9.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant0.ch9.ref_frame0.pg_delay=0x29
+ant0.ch9.ref_frame1.pg_delay=0x29
+ant0.ch9.ref_frame2.pg_delay=0x29
+ant0.ch9.ref_frame3.pg_delay=0x29
+ant0.ch9.ref_frame4.pg_delay=0x29
+ant0.ch9.ref_frame5.pg_delay=0x29
+ant0.ch9.ref_frame6.pg_delay=0x29
+ant0.ch9.ref_frame7.pg_delay=0x29
+
+# max gating gain
+ant0.ch9.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+# ANT1 CH9 CONFIGURATION
+#43434343 FF 28 0xFFFFFFFF
+#47474747 FF 27 0xFFFFFFFF
+#3E483E3E FF 28 0xFFFFFFFF
+#34343434 FF 28 0xFFFFFFFF
+#3C3C3C3C FF 27 0xFFFFFFFF
+#3B3B3B3B FF 27 0xFFFFFFFF
+#30303030 FF 27 0xFFFFFFFF
+
+# tx power
+ant1.ch9.ref_frame0.tx_power_index=43:43:43:43
+ant1.ch9.ref_frame1.tx_power_index=47:47:47:47
+ant1.ch9.ref_frame2.tx_power_index=3E:3E:48:3E
+ant1.ch9.ref_frame3.tx_power_index=34:34:34:34
+ant1.ch9.ref_frame4.tx_power_index=3C:3C:3C:3C
+ant1.ch9.ref_frame5.tx_power_index=3B:3B:3B:3B
+ant1.ch9.ref_frame6.tx_power_index=30:30:30:30
+ant1.ch9.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant1.ch9.ref_frame0.post_tx_power_index=0xff
+ant1.ch9.ref_frame1.post_tx_power_index=0xff
+ant1.ch9.ref_frame2.post_tx_power_index=0xff
+ant1.ch9.ref_frame3.post_tx_power_index=0xff
+ant1.ch9.ref_frame4.post_tx_power_index=0xff
+ant1.ch9.ref_frame5.post_tx_power_index=0xff
+ant1.ch9.ref_frame6.post_tx_power_index=0xff
+ant1.ch9.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant1.ch9.ref_frame0.pg_delay=0x28
+ant1.ch9.ref_frame1.pg_delay=0x27
+ant1.ch9.ref_frame2.pg_delay=0x28
+ant1.ch9.ref_frame3.pg_delay=0x28
+ant1.ch9.ref_frame4.pg_delay=0x27
+ant1.ch9.ref_frame5.pg_delay=0x27
+ant1.ch9.ref_frame6.pg_delay=0x27
+ant1.ch9.ref_frame7.pg_delay=0x27
+
+# max gating gain
+ant1.ch9.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+restricted_channels=0x0020
+alternate_pulse_shape=0x01
diff --git a/uwb/calibration-RESTRICTED.conf b/uwb/calibration-RESTRICTED.conf
new file mode 100644
index 0000000..64363e5
--- /dev/null
+++ b/uwb/calibration-RESTRICTED.conf
@@ -0,0 +1,3 @@
+# RESTRICTED calibration file, UWB disabled
+
+restricted_channels=0xFFFF
diff --git a/uwb/calibration-TW.conf b/uwb/calibration-TW.conf
new file mode 100644
index 0000000..fcac264
--- /dev/null
+++ b/uwb/calibration-TW.conf
@@ -0,0 +1,151 @@
+# TW calibration file (FCC w Ch5 disabled)
+
+# ANT0 CH5 configuration
+#41414141 34 0x34 0xFFFFFFFF
+#48484848 33 0x34 0xFFFFFFFF
+#3C443C3C 36 0x34 0xFFFFFFFF
+#33333333 33 0x34 0xFFFFFFFF
+#3E3E3E3E 32 0x34 0xFFFFFFFF
+#3B3B3B3B 32 0x34 0xFFFFFFFF
+#32323232 32 0x34 0xFFFFFFFF
+
+# tx power
+ant0.ch5.ref_frame0.tx_power_index=41:41:41:41
+ant0.ch5.ref_frame1.tx_power_index=48:48:48:48
+ant0.ch5.ref_frame2.tx_power_index=3C:3C:44:3C
+ant0.ch5.ref_frame3.tx_power_index=33:33:33:33
+ant0.ch5.ref_frame4.tx_power_index=3E:3E:3E:3E
+ant0.ch5.ref_frame5.tx_power_index=3B:3B:3B:3B
+ant0.ch5.ref_frame6.tx_power_index=32:32:32:32
+ant0.ch5.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant0.ch5.ref_frame0.post_tx_power_index=0x34
+ant0.ch5.ref_frame1.post_tx_power_index=0x33
+ant0.ch5.ref_frame2.post_tx_power_index=0x36
+ant0.ch5.ref_frame3.post_tx_power_index=0x33
+ant0.ch5.ref_frame4.post_tx_power_index=0x32
+ant0.ch5.ref_frame5.post_tx_power_index=0x32
+ant0.ch5.ref_frame6.post_tx_power_index=0x32
+ant0.ch5.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant0.ch5.ref_frame0.pg_delay=0x34
+ant0.ch5.ref_frame1.pg_delay=0x34
+ant0.ch5.ref_frame2.pg_delay=0x34
+ant0.ch5.ref_frame3.pg_delay=0x34
+ant0.ch5.ref_frame4.pg_delay=0x34
+ant0.ch5.ref_frame5.pg_delay=0x34
+ant0.ch5.ref_frame6.pg_delay=0x34
+ant0.ch5.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant0.ch5.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+# ANT0 CH9 CONFIGURATION
+#45454545 32 0x34 0xFFFFFFFF
+#45454545 32 0x34 0xFFFFFFFF
+#3F473F3F 32 0x34 0xFFFFFFFF
+#3B3B3B3B 32 0x34 0xFFFFFFFF
+#3E3E3E3E 32 0x34 0xFFFFFFFF
+#37373737 32 0x34 0xFFFFFFFF
+#39393939 32 0x34 0xFFFFFFFF
+
+# tx power
+ant0.ch9.ref_frame0.tx_power_index=45:45:45:45
+ant0.ch9.ref_frame1.tx_power_index=45:45:45:45
+ant0.ch9.ref_frame2.tx_power_index=3F:3F:47:3F
+ant0.ch9.ref_frame3.tx_power_index=3B:3B:3B:3B
+ant0.ch9.ref_frame4.tx_power_index=3E:3E:3E:3E
+ant0.ch9.ref_frame5.tx_power_index=37:37:37:37
+ant0.ch9.ref_frame6.tx_power_index=39:39:39:39
+ant0.ch9.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant0.ch9.ref_frame0.post_tx_power_index=0x32
+ant0.ch9.ref_frame1.post_tx_power_index=0x32
+ant0.ch9.ref_frame2.post_tx_power_index=0x32
+ant0.ch9.ref_frame3.post_tx_power_index=0x32
+ant0.ch9.ref_frame4.post_tx_power_index=0x32
+ant0.ch9.ref_frame5.post_tx_power_index=0x32
+ant0.ch9.ref_frame6.post_tx_power_index=0x32
+ant0.ch9.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant0.ch9.ref_frame0.pg_delay=0x34
+ant0.ch9.ref_frame1.pg_delay=0x34
+ant0.ch9.ref_frame2.pg_delay=0x34
+ant0.ch9.ref_frame3.pg_delay=0x34
+ant0.ch9.ref_frame4.pg_delay=0x34
+ant0.ch9.ref_frame5.pg_delay=0x34
+ant0.ch9.ref_frame6.pg_delay=0x34
+ant0.ch9.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant0.ch9.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+# ANT1 CH9 CONFIGURATION
+#44444444 32 0x34 0xFFFFFFFF
+#4B4B4B4B 32 0x34 0xFFFFFFFF
+#41494141 32 0x34 0xFFFFFFFF
+#3A3A3A3A 32 0x34 0xFFFFFFFF
+#40404040 32 0x34 0xFFFFFFFF
+#3E3E3E3E 32 0x34 0xFFFFFFFF
+#34343434 32 0x34 0xFFFFFFFF
+
+# tx power
+ant1.ch9.ref_frame0.tx_power_index=44:44:44:44
+ant1.ch9.ref_frame1.tx_power_index=4B:4B:4B:4B
+ant1.ch9.ref_frame2.tx_power_index=41:41:49:41
+ant1.ch9.ref_frame3.tx_power_index=3A:3A:3A:3A
+ant1.ch9.ref_frame4.tx_power_index=40:40:40:40
+ant1.ch9.ref_frame5.tx_power_index=3E:3E:3E:3E
+ant1.ch9.ref_frame6.tx_power_index=34:34:34:34
+ant1.ch9.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant1.ch9.ref_frame0.post_tx_power_index=0x32
+ant1.ch9.ref_frame1.post_tx_power_index=0x32
+ant1.ch9.ref_frame2.post_tx_power_index=0x32
+ant1.ch9.ref_frame3.post_tx_power_index=0x32
+ant1.ch9.ref_frame4.post_tx_power_index=0x32
+ant1.ch9.ref_frame5.post_tx_power_index=0x32
+ant1.ch9.ref_frame6.post_tx_power_index=0x32
+ant1.ch9.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant1.ch9.ref_frame0.pg_delay=0x34
+ant1.ch9.ref_frame1.pg_delay=0x34
+ant1.ch9.ref_frame2.pg_delay=0x34
+ant1.ch9.ref_frame3.pg_delay=0x34
+ant1.ch9.ref_frame4.pg_delay=0x34
+ant1.ch9.ref_frame5.pg_delay=0x34
+ant1.ch9.ref_frame6.pg_delay=0x34
+ant1.ch9.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant1.ch9.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+restricted_channels=0x0020
+alternate_pulse_shape=0x00
diff --git a/uwb/calibration-default.conf b/uwb/calibration-default.conf
new file mode 100644
index 0000000..f579c20
--- /dev/null
+++ b/uwb/calibration-default.conf
@@ -0,0 +1,151 @@
+# FCC calibration file
+
+# ANT0 CH5 configuration
+#41414141 34 0x34 0xFFFFFFFF
+#48484848 33 0x34 0xFFFFFFFF
+#3C443C3C 36 0x34 0xFFFFFFFF
+#33333333 33 0x34 0xFFFFFFFF
+#3E3E3E3E 32 0x34 0xFFFFFFFF
+#3B3B3B3B 32 0x34 0xFFFFFFFF
+#32323232 32 0x34 0xFFFFFFFF
+
+# tx power
+ant0.ch5.ref_frame0.tx_power_index=41:41:41:41
+ant0.ch5.ref_frame1.tx_power_index=48:48:48:48
+ant0.ch5.ref_frame2.tx_power_index=3C:3C:44:3C
+ant0.ch5.ref_frame3.tx_power_index=33:33:33:33
+ant0.ch5.ref_frame4.tx_power_index=3E:3E:3E:3E
+ant0.ch5.ref_frame5.tx_power_index=3B:3B:3B:3B
+ant0.ch5.ref_frame6.tx_power_index=32:32:32:32
+ant0.ch5.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant0.ch5.ref_frame0.post_tx_power_index=0x34
+ant0.ch5.ref_frame1.post_tx_power_index=0x33
+ant0.ch5.ref_frame2.post_tx_power_index=0x36
+ant0.ch5.ref_frame3.post_tx_power_index=0x33
+ant0.ch5.ref_frame4.post_tx_power_index=0x32
+ant0.ch5.ref_frame5.post_tx_power_index=0x32
+ant0.ch5.ref_frame6.post_tx_power_index=0x32
+ant0.ch5.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant0.ch5.ref_frame0.pg_delay=0x34
+ant0.ch5.ref_frame1.pg_delay=0x34
+ant0.ch5.ref_frame2.pg_delay=0x34
+ant0.ch5.ref_frame3.pg_delay=0x34
+ant0.ch5.ref_frame4.pg_delay=0x34
+ant0.ch5.ref_frame5.pg_delay=0x34
+ant0.ch5.ref_frame6.pg_delay=0x34
+ant0.ch5.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant0.ch5.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant0.ch5.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+# ANT0 CH9 CONFIGURATION
+#45454545 32 0x34 0xFFFFFFFF
+#45454545 32 0x34 0xFFFFFFFF
+#3F473F3F 32 0x34 0xFFFFFFFF
+#3B3B3B3B 32 0x34 0xFFFFFFFF
+#3E3E3E3E 32 0x34 0xFFFFFFFF
+#37373737 32 0x34 0xFFFFFFFF
+#39393939 32 0x34 0xFFFFFFFF
+
+# tx power
+ant0.ch9.ref_frame0.tx_power_index=45:45:45:45
+ant0.ch9.ref_frame1.tx_power_index=45:45:45:45
+ant0.ch9.ref_frame2.tx_power_index=3F:3F:47:3F
+ant0.ch9.ref_frame3.tx_power_index=3B:3B:3B:3B
+ant0.ch9.ref_frame4.tx_power_index=3E:3E:3E:3E
+ant0.ch9.ref_frame5.tx_power_index=37:37:37:37
+ant0.ch9.ref_frame6.tx_power_index=39:39:39:39
+ant0.ch9.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant0.ch9.ref_frame0.post_tx_power_index=0x32
+ant0.ch9.ref_frame1.post_tx_power_index=0x32
+ant0.ch9.ref_frame2.post_tx_power_index=0x32
+ant0.ch9.ref_frame3.post_tx_power_index=0x32
+ant0.ch9.ref_frame4.post_tx_power_index=0x32
+ant0.ch9.ref_frame5.post_tx_power_index=0x32
+ant0.ch9.ref_frame6.post_tx_power_index=0x32
+ant0.ch9.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant0.ch9.ref_frame0.pg_delay=0x34
+ant0.ch9.ref_frame1.pg_delay=0x34
+ant0.ch9.ref_frame2.pg_delay=0x34
+ant0.ch9.ref_frame3.pg_delay=0x34
+ant0.ch9.ref_frame4.pg_delay=0x34
+ant0.ch9.ref_frame5.pg_delay=0x34
+ant0.ch9.ref_frame6.pg_delay=0x34
+ant0.ch9.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant0.ch9.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant0.ch9.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+# ANT1 CH9 CONFIGURATION
+#44444444 32 0x34 0xFFFFFFFF
+#4B4B4B4B 32 0x34 0xFFFFFFFF
+#41494141 32 0x34 0xFFFFFFFF
+#3A3A3A3A 32 0x34 0xFFFFFFFF
+#40404040 32 0x34 0xFFFFFFFF
+#3E3E3E3E 32 0x34 0xFFFFFFFF
+#34343434 32 0x34 0xFFFFFFFF
+
+# tx power
+ant1.ch9.ref_frame0.tx_power_index=44:44:44:44
+ant1.ch9.ref_frame1.tx_power_index=4B:4B:4B:4B
+ant1.ch9.ref_frame2.tx_power_index=41:41:49:41
+ant1.ch9.ref_frame3.tx_power_index=3A:3A:3A:3A
+ant1.ch9.ref_frame4.tx_power_index=40:40:40:40
+ant1.ch9.ref_frame5.tx_power_index=3E:3E:3E:3E
+ant1.ch9.ref_frame6.tx_power_index=34:34:34:34
+ant1.ch9.ref_frame7.tx_power_index=FF:FF:FF:FF
+
+# pp cw tx pwr
+ant1.ch9.ref_frame0.post_tx_power_index=0x32
+ant1.ch9.ref_frame1.post_tx_power_index=0x32
+ant1.ch9.ref_frame2.post_tx_power_index=0x32
+ant1.ch9.ref_frame3.post_tx_power_index=0x32
+ant1.ch9.ref_frame4.post_tx_power_index=0x32
+ant1.ch9.ref_frame5.post_tx_power_index=0x32
+ant1.ch9.ref_frame6.post_tx_power_index=0x32
+ant1.ch9.ref_frame7.post_tx_power_index=0xff
+
+# pg delay
+ant1.ch9.ref_frame0.pg_delay=0x34
+ant1.ch9.ref_frame1.pg_delay=0x34
+ant1.ch9.ref_frame2.pg_delay=0x34
+ant1.ch9.ref_frame3.pg_delay=0x34
+ant1.ch9.ref_frame4.pg_delay=0x34
+ant1.ch9.ref_frame5.pg_delay=0x34
+ant1.ch9.ref_frame6.pg_delay=0x34
+ant1.ch9.ref_frame7.pg_delay=0x34
+
+# max gating gain
+ant1.ch9.ref_frame0.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame1.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame2.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame3.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame4.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame5.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame6.max_gating_gain=0xFFFFFFFF
+ant1.ch9.ref_frame7.max_gating_gain=0xFFFFFFFF
+
+restricted_channels=0x0000
+alternate_pulse_shape=0x00
diff --git a/uwb/calibration.conf b/uwb/calibration.conf
new file mode 100644
index 0000000..a985e8a
--- /dev/null
+++ b/uwb/calibration.conf
@@ -0,0 +1,39 @@
+# common calibration file
+ant0.ch5.ant_delay=37:40:00:00
+ant0.ch9.ant_delay=37:40:00:00
+
+ant1.ch5.ant_delay=3a:40:00:00
+ant1.ch9.ant_delay=3a:40:00:00
+
+ant2.ch5.ant_delay=38:40:00:00
+ant2.ch9.ant_delay=38:40:00:00
+
+ant3.ch5.ant_delay=38:40:00:00
+ant3.ch9.ant_delay=38:40:00:00
+
+ant_grp1.ch9.pdoa.axisx.offset=e2:0c
+ant_grp1.ch9.pdoa.axisy.offset=00:00
+
+ant_grp2.ch9.pdoa.axisx.offset=00:00
+ant_grp2.ch9.pdoa.axisy.offset=7f:10
+
+xtal_trim=0x30
+
+# signed in 2s complement FF -> -0.25 dB
+ant0.ch5.pa_gain_offset=0x00
+ant0.ch9.pa_gain_offset=0x00
+
+ant1.ch5.pa_gain_offset=0x00
+ant1.ch9.pa_gain_offset=0x00
+
+ant2.ch5.pa_gain_offset=0x00
+ant2.ch9.pa_gain_offset=0x00
+
+ant3.ch5.pa_gain_offset=0x00
+ant3.ch9.pa_gain_offset=0x00
+
+#Coex
+wifi_coex_mode=01
+wifi_coex_time_gap_t1=01
+ch5.wifi_coex_enabled=01
+ch9.wifi_coex_enabled=01
diff --git a/uwb/configuration.conf b/uwb/configuration.conf
new file mode 100644
index 0000000..16b9f36
--- /dev/null
+++ b/uwb/configuration.conf
@@ -0,0 +1,122 @@
+[FIRA]ant_sets.ch5.range.rx_ant_set_nonranging = 0
+[FIRA]ant_sets.ch5.range.rx_ant_set_ranging = 0
+[FIRA]ant_sets.ch5.range.tx_ant_set_nonranging = 0
+[FIRA]ant_sets.ch5.range.tx_ant_set_ranging = 0
+[FIRA]ant_sets.ch9.range.rx_ant_set_nonranging = 0
+[FIRA]ant_sets.ch9.range.rx_ant_set_ranging = 0
+[FIRA]ant_sets.ch9.range.tx_ant_set_nonranging = 0
+[FIRA]ant_sets.ch9.range.tx_ant_set_ranging = 0
+[FIRA]ant_sets.ch9.azimuth.rx_ant_set_nonranging = 1
+[FIRA]ant_sets.ch9.azimuth.rx_ant_set_ranging = 1
+[FIRA]ant_sets.ch9.azimuth.tx_ant_set_nonranging = 1
+[FIRA]ant_sets.ch9.azimuth.tx_ant_set_ranging = 1
+[FIRA]ant_sets.ch9.elevation.rx_ant_set_nonranging = 2
+[FIRA]ant_sets.ch9.elevation.rx_ant_set_ranging = 2
+[FIRA]ant_sets.ch9.elevation.tx_ant_set_nonranging = 2
+[FIRA]ant_sets.ch9.elevation.tx_ant_set_ranging = 2
+[FIRA]ant_sets.ch9.azimuth_elevation.rx_ant_set_nonranging = 1
+[FIRA]ant_sets.ch9.azimuth_elevation.rx_ant_set_ranging_azimuth = 1
+[FIRA]ant_sets.ch9.azimuth_elevation.rx_ant_set_ranging_elevation = 2
+[FIRA]ant_sets.ch9.azimuth_elevation.tx_ant_set_nonranging = 1
+[FIRA]ant_sets.ch9.azimuth_elevation.tx_ant_set_ranging = 1
+
+[CCC]ant_sets.ch5.range.rx_ant_set_nonranging = 0
+[CCC]ant_sets.ch5.range.rx_ant_set_ranging = 0
+[CCC]ant_sets.ch5.range.tx_ant_set_nonranging = 0
+[CCC]ant_sets.ch5.range.tx_ant_set_ranging = 0
+[CCC]ant_sets.ch9.range.rx_ant_set_nonranging = 0
+[CCC]ant_sets.ch9.range.rx_ant_set_ranging = 0
+[CCC]ant_sets.ch9.range.tx_ant_set_nonranging = 0
+[CCC]ant_sets.ch9.range.tx_ant_set_ranging = 0
+
+# Antenna Configuration
+ant0.config=01
+ant1.config=02
+ant2.config=03
+ant3.config=04
+
+# Ranging
+ant_grp0.rf_config.rfoff=00
+ant_grp0.rf_config.tx=02
+ant_grp0.rf_config.tx_aoa=02
+ant_grp0.rf_config.rx_ip=04
+ant_grp0.rf_config.rx_sts0=04
+ant_grp0.rf_config.rx_sts1=04
+ant_grp0.rf_config.rx_sts2=04
+ant_grp0.rf_config.rx_sts3=04
+ant_grp0.lna_rxa=00
+ant_grp0.lna_rxb=01
+ant_grp0.rx_config=01
+ant_grp0.pdoa_segments=00:00:00:00:00:00
+ant_grp0.tx_power_control=01
+
+# PDoA Azimuth
+ant_grp1.rf_config.rfoff=00
+ant_grp1.rf_config.tx=03
+ant_grp1.rf_config.tx_aoa=03
+ant_grp1.rf_config.rx_ip=0e
+ant_grp1.rf_config.rx_sts0=0e
+ant_grp1.rf_config.rx_sts1=0e
+ant_grp1.rf_config.rx_sts2=0e
+ant_grp1.rf_config.rx_sts3=0e
+ant_grp1.lna_rxa=01
+ant_grp1.lna_rxb=01
+ant_grp1.rx_config=04
+ant_grp1.pdoa_segments=07:02:00:00:00:00
+ant_grp1.pdoa_type=00:00:00
+ant_grp1.tx_power_control=01
+ant_grp1.ch9.pdoa.axisx.lut_id=00
+ant_grp1.ch9.pdoa.axisy.lut_id=ff
+
+# PDoA Elevation
+ant_grp2.rf_config.rfoff=00
+ant_grp2.rf_config.tx=03
+ant_grp2.rf_config.tx_aoa=03
+ant_grp2.rf_config.rx_ip=0f
+ant_grp2.rf_config.rx_sts0=0f
+ant_grp2.rf_config.rx_sts1=0f
+ant_grp2.rf_config.rx_sts2=0f
+ant_grp2.rf_config.rx_sts3=0f
+ant_grp2.lna_rxa=01
+ant_grp2.lna_rxb=01
+ant_grp2.rx_config=04
+ant_grp2.pdoa_segments=07:02:00:00:00:00
+ant_grp2.pdoa_type=01:00:00
+ant_grp2.tx_power_control=01
+ant_grp2.ch9.pdoa.axisx.lut_id=ff
+ant_grp2.ch9.pdoa.axisy.lut_id=01
+
+pdoa_lut0.data=29:ee:8f:0c:71:ee:dd:0b:a8:ee:2b:0b:00:ef:77:0a:35:ef:c5:09:c5:ef:12:09:4a:f0:60:08:db:f1:fa:06:cf:f2:48:06:b6:f3:96:05:37:f7:2f:04:91:f8:7d:03:00:fa:cb:02:f8:fc:64:01:62:fe:b2:00:04:00:00:00:d9:01:4e:ff:d5:03:9c:fe:ac:05:e7:fd:87:08:83:fc:a2:09:d1:fb:c5:0a:1d:fb:6d:0d:b8:f9:a8:0e:06:f9:d5:0f:54:f8:7f:11:ee:f6:7d:12:3b:f6:25:13:89:f5:98:13:d5:f4:71:14:23:f4:14:15:71:f3
+pdoa_lut1.data=7b:f0:89:f5:06:f1:3b:f6:87:f2:ee:f6:fe:f3:a0:f7:2d:f5:54:f8:17:f6:06:f9:e1:f6:b8:f9:b2:f7:6a:fa:aa:f8:1d:fb:96:f9:d1:fb:b0:fa:83:fc:f2:fb:35:fd:68:fd:e7:fd:f4:fe:9c:fe:62:00:4e:ff:be:01:00:00:14:03:b2:00:5e:04:64:01:66:05:19:02:8d:06:cb:02:d5:07:7d:03:12:09:2f:04:35:0a:e3:04:44:0b:96:05:6f:0c:48:06:ba:0d:fa:06:9e:0e:ac:07:b2:0f:60:08:a6:10:12:09:6d:11:c5:09:ee:11:77:0a
+
+# Reference frames definition
+ref_frame0.phy_cfg=44:21:07 # BPRF SP1 with 125 bytes
+ref_frame0.payload_size=0x007d
+
+ref_frame1.phy_cfg=45:04:00 # HPRF Set #1 (SP0 with 6.8 Mbps) with 150 bytes
+ref_frame1.payload_size=0x0096
+
+ref_frame2.phy_cfg=44:01:00 # BPRF SP0 with 125 bytes
+ref_frame2.payload_size=0x007d
+
+ref_frame3.phy_cfg=44:22:07 # BPRF SP3
+ref_frame3.payload_size=0x0000
+
+ref_frame4.phy_cfg=25:05:00 # HPRF Set #3 (SP0 with 27.2 Mbps) with 150 bytes
+ref_frame4.payload_size=0x0096
+
+ref_frame5.phy_cfg=45:22:07 # HPRF Set #24 (SP3)
+ref_frame5.payload_size=0x0000
+
+ref_frame6.phy_cfg=25:22:03 # HPRF Set #28 (SP3)
+ref_frame6.payload_size=0x0000
+
+ref_frame7.phy_cfg=25:2d:03 # HPRF DRHM_HR CL7
+ref_frame7.payload_size=0x0C68
+
+# Post tones
+post_tx.pattern_data=DD:DD:DD:DD:77:77:77:77
+post_tx.pattern_repetitions=0x0002
+
+# Ipatov / STS time difference threshold
+ip_sts_sanity_thres_q2=0x48
diff --git a/uwb/uwb_calibration.mk b/uwb/uwb_calibration.mk
index 38e4128..64e2b06 100644
--- a/uwb/uwb_calibration.mk
+++ b/uwb/uwb_calibration.mk
@@ -13,9 +13,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-LOCAL_UWB_CAL_DIR=device/google/shusky/uwb
+PRODUCT_PACKAGES += \
+ configuration.conf \
+ calibration.conf \
+ calibration-default.conf \
+ calibration-CE.conf \
+ calibration-FCC.conf \
+ calibration-JP.conf \
+ calibration-TW.conf \
+ calibration-RESTRICTED.conf
-PRODUCT_COPY_FILES += \
- $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration.conf \
- $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-unknown.conf \
- $(LOCAL_UWB_CAL_DIR)/UWB-calibration.conf:$(TARGET_COPY_OUT_VENDOR)/etc/UWB-calibration-default.conf \