[automerger skipped] Revert^2 "pantah: Replace NFC app with NFC apex" am: 61abf7319e am: 704a52bfb4 am: b23abea540 -s ours

am skip reason: Merged-In I4da74311505445715132b84afb557ec7e126abac with SHA-1 aa3c94e272 is already in history

Original change: https://android-review.googlesource.com/c/device/google/pantah/+/2864190

Change-Id: I14686bd3bdf6f476c747f9db4ba7aa796f5ab657
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/OWNERS b/OWNERS
index 61b3e45..e434a1c 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,4 +1,4 @@
 per-file powerhint-*.json = jychen@google.com,jenhaochen@google.com,wvw@google.com,joaodias@google.com
 
 # per-file for Pixel device makefiles, see go/pixel-device-mk-owner-checklist for details.
-per-file *.mk,*/BoardConfig.mk=file:device/google/gs-common: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/audio/cheetah/aidl_config/audio_platform_configuration.xml b/audio/cheetah/aidl_config/audio_platform_configuration.xml
index a3144da..66fbad8 100644
--- a/audio/cheetah/aidl_config/audio_platform_configuration.xml
+++ b/audio/cheetah/aidl_config/audio_platform_configuration.xml
@@ -46,15 +46,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" />
diff --git a/audio/cheetah/aidl_config/mixer_paths_aidl.xml b/audio/cheetah/aidl_config/mixer_paths_aidl.xml
index bb9574b..6a766b1 100644
--- a/audio/cheetah/aidl_config/mixer_paths_aidl.xml
+++ b/audio/cheetah/aidl_config/mixer_paths_aidl.xml
@@ -404,6 +404,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>
@@ -464,6 +472,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>
@@ -524,6 +540,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>
@@ -589,6 +613,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>
@@ -649,6 +681,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>
@@ -721,6 +761,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>
@@ -831,6 +879,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" />
@@ -865,6 +921,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>
@@ -889,6 +953,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>
@@ -913,6 +981,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>
 
@@ -947,6 +1019,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>
@@ -987,6 +1067,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>
@@ -1051,6 +1135,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">
@@ -1220,6 +1308,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/panther/aidl_config/audio_platform_configuration.xml b/audio/panther/aidl_config/audio_platform_configuration.xml
index a3144da..66fbad8 100644
--- a/audio/panther/aidl_config/audio_platform_configuration.xml
+++ b/audio/panther/aidl_config/audio_platform_configuration.xml
@@ -46,15 +46,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" />
diff --git a/audio/panther/aidl_config/mixer_paths_aidl.xml b/audio/panther/aidl_config/mixer_paths_aidl.xml
index bb9574b..6a766b1 100644
--- a/audio/panther/aidl_config/mixer_paths_aidl.xml
+++ b/audio/panther/aidl_config/mixer_paths_aidl.xml
@@ -404,6 +404,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>
@@ -464,6 +472,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>
@@ -524,6 +540,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>
@@ -589,6 +613,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>
@@ -649,6 +681,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>
@@ -721,6 +761,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>
@@ -831,6 +879,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" />
@@ -865,6 +921,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>
@@ -889,6 +953,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>
@@ -913,6 +981,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>
 
@@ -947,6 +1019,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>
@@ -987,6 +1067,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>
@@ -1051,6 +1135,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">
@@ -1220,6 +1308,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/bluetooth/le_audio_codec_capabilities.xml b/bluetooth/le_audio_codec_capabilities.xml
index 89d0de6..5853138 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"/>
@@ -57,6 +60,9 @@
     <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="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_32_2" codecConfiguration="LC3_32k_2" strategyConfiguration="STEREO_TWO_CISES_PER_DEVICE"/>
     <configuration name="OneChanMono_32_2" codecConfiguration="LC3_32k_2" strategyConfiguration="MONO_ONE_CIS_PER_DEVICE"/>
@@ -68,6 +74,7 @@
     <codecConfiguration name="LC3_16k_2" codec="LC3" samplingFrequency="16000" frameDurationUs="10000" octetsPerCodecFrame="40"/>
     <codecConfiguration name="LC3_24k_2" codec="LC3" samplingFrequency="24000" frameDurationUs="10000" octetsPerCodecFrame="60"/>
     <codecConfiguration name="LC3_32k_2" codec="LC3" samplingFrequency="32000" frameDurationUs="10000" octetsPerCodecFrame="80"/>
+    <codecConfiguration name="LC3_48k_2" codec="LC3" samplingFrequency="48000" frameDurationUs="10000" octetsPerCodecFrame="100"/>
     <codecConfiguration name="LC3_48k_4" codec="LC3" samplingFrequency="48000" frameDurationUs="10000" octetsPerCodecFrame="120"/>
   </codecConfigurationList>
   <strategyConfigurationList>
diff --git a/cheetah/BoardConfig.mk b/cheetah/BoardConfig.mk
index 5880d5b..c5976fc 100644
--- a/cheetah/BoardConfig.mk
+++ b/cheetah/BoardConfig.mk
@@ -17,6 +17,13 @@
 # Enable load module in parallel
 BOARD_BOOTCONFIG += androidboot.load_modules_parallel=true
 
+RELEASE_GOOGLE_PRODUCT_RADIO_DIR := $(RELEASE_GOOGLE_CHEETAH_RADIO_DIR)
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q1
+else
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/trunk
+endif
+
 # The modules which need to be loaded in sequential
 BOARD_KERNEL_CMDLINE += exynos_drm.load_sequential=1
 
diff --git a/cheetah/rro_overlays/NfcOverlay/Android.bp b/cheetah/rro_overlays/NfcOverlay/Android.bp
new file mode 100644
index 0000000..83a878d
--- /dev/null
+++ b/cheetah/rro_overlays/NfcOverlay/Android.bp
@@ -0,0 +1,9 @@
+package {
+    default_applicable_licenses: ["device_google_pantah_license"],
+}
+
+runtime_resource_overlay {
+    name: "NfcOverlayCheetah",
+    sdk_version: "current",
+    product_specific: true
+}
diff --git a/cheetah/rro_overlays/NfcOverlay/AndroidManifest.xml b/cheetah/rro_overlays/NfcOverlay/AndroidManifest.xml
new file mode 100644
index 0000000..5241aa4
--- /dev/null
+++ b/cheetah/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/cheetah/rro_overlays/NfcOverlay/OWNERS b/cheetah/rro_overlays/NfcOverlay/OWNERS
new file mode 100644
index 0000000..35e9713
--- /dev/null
+++ b/cheetah/rro_overlays/NfcOverlay/OWNERS
@@ -0,0 +1,2 @@
+# Bug component: 48448
+include platform/packages/apps/Nfc:/OWNERS
diff --git a/cheetah/rro_overlays/NfcOverlay/res/values/config.xml b/cheetah/rro_overlays/NfcOverlay/res/values/config.xml
new file mode 100644
index 0000000..0055264
--- /dev/null
+++ b/cheetah/rro_overlays/NfcOverlay/res/values/config.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<resources>
+  <bool name="nfcc_always_on_allowed">true</bool>
+  <bool name="polling_disable_allowed">true</bool>
+  <string-array name="config_skuSupportsSecureNfc" translatable="false">
+    <item>GP4BC</item>
+    <item>GE2AE</item>
+    <item>GFE4J</item>
+  </string-array>
+  <bool name="tag_intent_app_pref_supported">true</bool>
+  <!-- NFC Antenna Location API -->
+  <integer name="device_width">75</integer>
+  <integer name="device_height">160</integer>
+  <bool name="device_foldable">false</bool>
+  <integer-array name="antenna_x">
+    <item>38</item>
+  </integer-array>
+  <integer-array name="antenna_y">
+    <item>100</item>
+  </integer-array>
+</resources>
diff --git a/cloudripper/BoardConfig.mk b/cloudripper/BoardConfig.mk
index e69540e..0c97cee 100644
--- a/cloudripper/BoardConfig.mk
+++ b/cloudripper/BoardConfig.mk
@@ -15,6 +15,11 @@
 #
 TARGET_BOARD_INFO_FILE := device/google/pantah/board-info.txt
 TARGET_BOOTLOADER_BOARD_NAME := cloudripper
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q1
+else
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/trunk
+endif
 TARGET_SCREEN_DENSITY := 440
 BOARD_USES_GENERIC_AUDIO := true
 USES_DEVICE_GOOGLE_CLOUDRIPPER := true
diff --git a/device-cheetah.mk b/device-cheetah.mk
index 61b50d6..15381b8 100644
--- a/device-cheetah.mk
+++ b/device-cheetah.mk
@@ -14,6 +14,9 @@
 # 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/pantah-kernel
 TARGET_BOARD_KERNEL_HEADERS := device/google/pantah-kernel/kernel-headers
 
@@ -110,7 +113,8 @@
 PRODUCT_PACKAGES += \
 	$(RELEASE_PACKAGE_NFC_STACK) \
 	Tag \
-	android.hardware.nfc-service.st
+	android.hardware.nfc-service.st \
+	NfcOverlayCheetah
 
 # SecureElement
 PRODUCT_PACKAGES += \
@@ -210,6 +214,10 @@
 PRODUCT_COPY_FILES += \
     device/google/pantah/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 EWP test tool
 PRODUCT_PACKAGES_DEBUG += \
     ewp_tool
@@ -266,11 +274,11 @@
 
 # Fingerprint HAL
 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_PACKAGES += \
@@ -281,6 +289,11 @@
 
 # Trusty liboemcrypto.so
 PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts/trusty/24Q1
+else
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts/trusty/trunk
+endif
 
 # Location
 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
@@ -341,7 +354,7 @@
 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.214 \
     ro.vendor.vibrator.hal.loc.coeff=2.7 \
     persist.vendor.vibrator.hal.context.enable=false \
@@ -364,7 +377,6 @@
 
 # RKPD
 PRODUCT_PRODUCT_PROPERTIES += \
-    remote_provisioning.enable_rkpd=true \
     remote_provisioning.hostname=remoteprovisioning.googleapis.com \
 
 ##Audio Vendor property
diff --git a/device-cloudripper.mk b/device-cloudripper.mk
index 145de08..0347420 100644
--- a/device-cloudripper.mk
+++ b/device-cloudripper.mk
@@ -14,6 +14,9 @@
 # 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/pantah-kernel
 TARGET_BOARD_KERNEL_HEADERS := device/google/pantah-kernel/kernel-headers
 
@@ -152,6 +155,11 @@
 
 # Trusty liboemcrypto.so
 PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts/trusty/24Q1
+else
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts/trusty/trunk
+endif
 
 # Location
 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
diff --git a/device-panther.mk b/device-panther.mk
index c7bcc21..969a6c6 100644
--- a/device-panther.mk
+++ b/device-panther.mk
@@ -14,6 +14,9 @@
 # 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/pantah-kernel
 TARGET_BOARD_KERNEL_HEADERS := device/google/pantah-kernel/kernel-headers
 
@@ -89,7 +92,8 @@
 PRODUCT_PACKAGES += \
 	$(RELEASE_PACKAGE_NFC_STACK) \
 	Tag \
-	android.hardware.nfc-service.st
+	android.hardware.nfc-service.st \
+	NfcOverlayPanther
 
 # SecureElement
 PRODUCT_PACKAGES += \
@@ -180,6 +184,11 @@
 PRODUCT_COPY_FILES += \
     device/google/pantah/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 EWP test tool
 PRODUCT_PACKAGES_DEBUG += \
     ewp_tool
@@ -245,11 +254,11 @@
 
 # Fingerprint HAL
 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
 
 # Display
@@ -264,6 +273,11 @@
 
 # Trusty liboemcrypto.so
 PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts/trusty/24Q1
+else
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts/trusty/trunk
+endif
 
 # Location
 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
@@ -326,7 +340,7 @@
 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.195 \
     ro.vendor.vibrator.hal.loc.coeff=2.65 \
     persist.vendor.vibrator.hal.context.enable=false \
@@ -347,7 +361,6 @@
 
 # RKPD
 PRODUCT_PRODUCT_PROPERTIES += \
-    remote_provisioning.enable_rkpd=true \
     remote_provisioning.hostname=remoteprovisioning.googleapis.com \
 
 ##Audio Vendor property
diff --git a/device-ravenclaw.mk b/device-ravenclaw.mk
index 0f3af6d..9906272 100644
--- a/device-ravenclaw.mk
+++ b/device-ravenclaw.mk
@@ -14,6 +14,9 @@
 # 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/pantah-kernel
 TARGET_BOARD_KERNEL_HEADERS := device/google/pantah-kernel/kernel-headers
 
@@ -142,11 +145,16 @@
 
 # Fingerprint HAL
 GOODIX_CONFIG_BUILD_VERSION := g6_trusty
-include device/google/gs101/fingerprint/udfps_common.mk
-ifeq ($(filter factory%, $(TARGET_PRODUCT)),)
-include device/google/gs101/fingerprint/udfps_shipping.mk
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts/firmware/fingerprint/24Q1
 else
-include device/google/gs101/fingerprint/udfps_factory.mk
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts/firmware/fingerprint/trunk
+endif
+$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_common.mk)
+ifeq ($(filter factory%, $(TARGET_PRODUCT)),)
+$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_shipping.mk)
+else
+$(call inherit-product-if-exists, vendor/goodix/udfps/configuration/udfps_factory.mk)
 endif
 
 # WiFi Overlay
@@ -158,6 +166,11 @@
 
 # Trusty liboemcrypto.so
 PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts/trusty/24Q1
+else
+PRODUCT_SOONG_NAMESPACES += vendor/google_devices/pantah/prebuilts/trusty/trunk
+endif
 
 # Location
 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
diff --git a/location/gps.xml b/location/gps.xml
index 3e9b0df..4dd4ceb 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.c10 b/location/gps.xml.c10
index 26a55f7..f603aa9 100644
--- a/location/gps.xml.c10
+++ b/location/gps.xml.c10
@@ -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.p10 b/location/gps.xml.p10
index 0215c9e..92376f0 100644
--- a/location/gps.xml.p10
+++ b/location/gps.xml.p10
@@ -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 d85da72..d64ba54 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.c10 b/location/gps_user.xml.c10
index 1a369a6..6a15fe9 100644
--- a/location/gps_user.xml.c10
+++ b/location/gps_user.xml.c10
@@ -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.p10 b/location/gps_user.xml.p10
index c1e5d59..839aed3 100644
--- a/location/gps_user.xml.p10
+++ b/location/gps_user.xml.p10
@@ -34,7 +34,7 @@
        SuplVersion="2"
        SuplMinorVersion="0"
        SuplOtdoaCapable="true"
-       SuplOtdoaCapable2="false"
+       SuplOtdoaCapable2="true"
        SuplGlonassCapable = "true"
        SuplGalileoCapable = "true"
        SuplBdsCapable = "true"
diff --git a/panther/BoardConfig.mk b/panther/BoardConfig.mk
index d8b7444..d985330 100644
--- a/panther/BoardConfig.mk
+++ b/panther/BoardConfig.mk
@@ -20,6 +20,13 @@
 # The modules which need to be loaded in sequential
 BOARD_KERNEL_CMDLINE += exynos_drm.load_sequential=1
 
+RELEASE_GOOGLE_PRODUCT_RADIO_DIR := $(RELEASE_GOOGLE_PANTHER_RADIO_DIR)
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q1
+else
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/trunk
+endif
+
 ifdef PHONE_CAR_BOARD_PRODUCT
     include device/google_car/$(PHONE_CAR_BOARD_PRODUCT)/BoardConfig.mk
 else
diff --git a/panther/rro_overlays/NfcOverlay/Android.bp b/panther/rro_overlays/NfcOverlay/Android.bp
new file mode 100644
index 0000000..a1d3b96
--- /dev/null
+++ b/panther/rro_overlays/NfcOverlay/Android.bp
@@ -0,0 +1,9 @@
+package {
+    default_applicable_licenses: ["device_google_pantah_license"],
+}
+
+runtime_resource_overlay {
+    name: "NfcOverlayPanther",
+    sdk_version: "current",
+    product_specific: true
+}
diff --git a/panther/rro_overlays/NfcOverlay/AndroidManifest.xml b/panther/rro_overlays/NfcOverlay/AndroidManifest.xml
new file mode 100644
index 0000000..5241aa4
--- /dev/null
+++ b/panther/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/panther/rro_overlays/NfcOverlay/OWNERS b/panther/rro_overlays/NfcOverlay/OWNERS
new file mode 100644
index 0000000..35e9713
--- /dev/null
+++ b/panther/rro_overlays/NfcOverlay/OWNERS
@@ -0,0 +1,2 @@
+# Bug component: 48448
+include platform/packages/apps/Nfc:/OWNERS
diff --git a/panther/rro_overlays/NfcOverlay/res/values/config.xml b/panther/rro_overlays/NfcOverlay/res/values/config.xml
new file mode 100644
index 0000000..d5bfd3d
--- /dev/null
+++ b/panther/rro_overlays/NfcOverlay/res/values/config.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<resources>
+  <bool name="nfcc_always_on_allowed">false</bool>
+  <bool name="polling_disable_allowed">true</bool>
+  <string-array name="config_skuSupportsSecureNfc" translatable="false">
+    <item>GQML3</item>
+    <item>GVU6C</item>
+    <item>G03Z5</item>
+  </string-array>
+  <bool name="tag_intent_app_pref_supported">true</bool>
+  <!-- NFC Antenna Location API -->
+  <integer name="device_width">70</integer>
+  <integer name="device_height">150</integer>
+  <bool name="device_foldable">false</bool>
+  <integer-array name="antenna_x">
+    <item>38</item>
+  </integer-array>
+  <integer-array name="antenna_y">
+    <item>97</item>
+  </integer-array>
+</resources>
diff --git a/powerhint-cheetah-a0.json b/powerhint-cheetah-a0.json
index 665c384..c98446c 100644
--- a/powerhint-cheetah-a0.json
+++ b/powerhint-cheetah-a0.json
@@ -49,6 +49,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPULittleClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "5000",
+        "500"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUMidClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq",
       "Values": [
@@ -81,6 +91,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUMidClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUBigClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq",
       "Values": [
@@ -115,6 +135,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUBigClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "GPUMinFreq",
       "Path": "/sys/devices/platform/28000000.mali/hint_min_freq",
       "Values": [
@@ -148,6 +178,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUTaperedDVFSHeadroomEnable",
+      "Path": "/proc/vendor_sched/tapered_dvfs_headroom_enable",
+      "Values": [
+        "0",
+        "1"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "MIFTargetLoad",
       "Path": "/sys/class/devfreq/17000010.devfreq_mif/interactive/target_load",
       "Values": [
@@ -159,7 +199,7 @@
     },
     {
       "Name": "CAMUClampBoost",
-      "Path": "/proc/vendor_sched/cam_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/cam/uclamp_min",
       "Values": [
         "765",
         "0"
@@ -168,7 +208,7 @@
     },
     {
       "Name": "TAUClampBoost",
-      "Path": "/proc/vendor_sched/ta_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/ta/uclamp_min",
       "Values": [
         "765",
         "1",
@@ -178,7 +218,7 @@
     },
     {
       "Name": "FGUClampBoost",
-      "Path": "/proc/vendor_sched/fg_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/fg/uclamp_min",
       "Values": [
         "159",
         "0"
@@ -187,7 +227,7 @@
     },
     {
       "Name": "MLUclampBoost",
-      "Path": "/proc/vendor_sched/nnapi_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/nnapi/uclamp_min",
       "Values": [
           "225",
           "813"
@@ -206,7 +246,7 @@
     },
     {
       "Name": "CDPreferIdle",
-      "Path": "/proc/vendor_sched/cam_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -255,7 +295,7 @@
     },
     {
       "Name": "TAPreferHighCap",
-      "Path": "/proc/vendor_sched/ta_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -264,7 +304,7 @@
     },
     {
       "Name": "TAPreferIdle",
-      "Path": "/proc/vendor_sched/ta_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -273,7 +313,7 @@
     },
     {
       "Name": "FGPreferIdle",
-      "Path": "/proc/vendor_sched/fg_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/fg/prefer_idle",
       "Values": [
         "1",
         "0"
@@ -283,7 +323,7 @@
     },
     {
       "Name": "CDPreferHighCap",
-      "Path": "/proc/vendor_sched/cam_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -646,12 +686,6 @@
     },
     {
       "PowerHint": "LAUNCH",
-      "Node": "FGPreferIdle",
-      "Duration": 5000,
-      "Value": "1"
-    },
-    {
-      "PowerHint": "LAUNCH",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 5000,
       "Value": "9999999"
@@ -670,6 +704,48 @@
     },
     {
       "PowerHint": "LAUNCH",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 5000,
+      "Value": "1280"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 5000,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "5000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "TAPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "FGPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
       "Node": "TAUClampBoost",
       "Duration": 5000,
       "Value": "765"
@@ -1749,6 +1825,36 @@
       "Value": "572000"
     },
     {
+      "PowerHint": "GAME",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 0,
+      "Value": "1100"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "500"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
       "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
       "Node": "PMU_POLL",
       "Duration": 0,
diff --git a/powerhint-cheetah.json b/powerhint-cheetah.json
index 618d59a..6a209c1 100644
--- a/powerhint-cheetah.json
+++ b/powerhint-cheetah.json
@@ -62,6 +62,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPULittleClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "5000",
+        "500"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUMidClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq",
       "Values": [
@@ -94,6 +104,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUMidClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUBigClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq",
       "Values": [
@@ -128,6 +148,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUBigClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "GPUDvfsPeriod",
       "Path": "/sys/devices/platform/28000000.mali/dvfs_period",
       "Values": [
@@ -166,6 +196,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUTaperedDVFSHeadroomEnable",
+      "Path": "/proc/vendor_sched/tapered_dvfs_headroom_enable",
+      "Values": [
+        "0",
+        "1"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "MIFTargetLoad",
       "Path": "/sys/class/devfreq/17000010.devfreq_mif/interactive/target_load",
       "Values": [
@@ -177,7 +217,7 @@
     },
     {
       "Name": "CAMUClampBoost",
-      "Path": "/proc/vendor_sched/cam_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/cam/uclamp_min",
       "Values": [
         "765",
         "0"
@@ -186,7 +226,7 @@
     },
     {
       "Name": "TAUClampBoost",
-      "Path": "/proc/vendor_sched/ta_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/ta/uclamp_min",
       "Values": [
         "765",
         "1"
@@ -195,7 +235,7 @@
     },
     {
       "Name": "FGUClampBoost",
-      "Path": "/proc/vendor_sched/fg_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/fg/uclamp_min",
       "Values": [
         "159",
         "0"
@@ -204,7 +244,7 @@
     },
     {
       "Name": "MLUclampBoost",
-      "Path": "/proc/vendor_sched/nnapi_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/nnapi/uclamp_min",
       "Values": [
           "225",
           "813"
@@ -223,7 +263,7 @@
     },
     {
       "Name": "CDPreferIdle",
-      "Path": "/proc/vendor_sched/cam_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -272,7 +312,7 @@
     },
     {
       "Name": "TAPreferHighCap",
-      "Path": "/proc/vendor_sched/ta_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -281,7 +321,7 @@
     },
     {
       "Name": "TAPreferIdle",
-      "Path": "/proc/vendor_sched/ta_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -290,7 +330,7 @@
     },
     {
       "Name": "FGPreferIdle",
-      "Path": "/proc/vendor_sched/fg_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/fg/prefer_idle",
       "Values": [
         "1",
         "0"
@@ -300,7 +340,7 @@
     },
     {
       "Name": "CDPreferHighCap",
-      "Path": "/proc/vendor_sched/cam_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -647,7 +687,7 @@
     },
     {
       "Name": "Dex2oatGroup",
-      "Path": "/proc/vendor_sched/dex2oat_ug",
+      "Path": "/proc/vendor_sched/groups/dex2oat/ug",
       "Values": [
         "1",
         "0"
@@ -695,12 +735,6 @@
     },
     {
       "PowerHint": "LAUNCH",
-      "Node": "FGPreferIdle",
-      "Duration": 5000,
-      "Value": "1"
-    },
-    {
-      "PowerHint": "LAUNCH",
       "Type": "DoHint",
       "Value": "LAUNCH_GPU"
     },
@@ -724,6 +758,48 @@
     },
     {
       "PowerHint": "LAUNCH",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 5000,
+      "Value": "1280"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 5000,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "5000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "TAPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "FGPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
       "Node": "TAUClampBoost",
       "Duration": 5000,
       "Value": "765"
@@ -781,6 +857,71 @@
       "Value": "0"
     },
     {
+      "PowerHint": "DISPLAY_CHANGE",
+      "Node": "ReducePreferIdle",
+      "Duration": 5000,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "DISPLAY_CHANGE_GPU",
+      "Node": "GPUDvfsPeriod",
+      "Duration": 1000,
+      "Value": "10"
+    },
+    {
+      "PowerHint": "DISPLAY_CHANGE",
+      "Node": "FGPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "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": "3172000"
+    },
+    {
+      "PowerHint": "DISPLAY_CHANGE",
+      "Node": "NPITaskPacking",
+      "Duration": 5000,
+      "Value": "0"
+    },
+    {
       "PowerHint": "CPU_LOAD_RESET",
       "Node": "GPUMinFreq",
       "Duration": 50,
@@ -1904,6 +2045,36 @@
       "Value": "572000"
     },
     {
+      "PowerHint": "GAME",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 0,
+      "Value": "1100"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "500"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
       "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT",
       "Node": "PMU_POLL",
       "Duration": 0,
diff --git a/powerhint-cloudripper.json b/powerhint-cloudripper.json
index 68d5c41..6d10711 100644
--- a/powerhint-cloudripper.json
+++ b/powerhint-cloudripper.json
@@ -42,6 +42,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPULittleClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "5000",
+        "500"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUMidClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq",
       "Values": [
@@ -65,6 +75,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUMidClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUBigClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq",
       "Values": [
@@ -87,6 +107,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUBigClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "GPUMinFreq",
       "Path": "/sys/devices/platform/28000000.mali/hint_min_freq",
       "Values": [
@@ -120,6 +150,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUTaperedDVFSHeadroomEnable",
+      "Path": "/proc/vendor_sched/tapered_dvfs_headroom_enable",
+      "Values": [
+        "0",
+        "1"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "MIFTargetLoad",
       "Path": "/sys/class/devfreq/17000010.devfreq_mif/interactive/target_load",
       "Values": [
@@ -130,7 +170,7 @@
     },
     {
       "Name": "TAUClampBoost",
-      "Path": "/proc/vendor_sched/ta_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/ta/uclamp_min",
       "Values": [
         "0",
 	"692",
@@ -144,7 +184,7 @@
     },
     {
       "Name": "FGUClampBoost",
-      "Path": "/proc/vendor_sched/fg_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/fg/uclamp_min",
       "Values": [
         "159",
         "0"
@@ -153,7 +193,7 @@
     },
     {
       "Name": "CDPreferIdle",
-      "Path": "/proc/vendor_sched/cam_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -198,7 +238,7 @@
     },
     {
       "Name": "TAPreferHighCap",
-      "Path": "/proc/vendor_sched/ta_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -207,7 +247,7 @@
     },
     {
       "Name": "TAPreferIdle",
-      "Path": "/proc/vendor_sched/ta_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -216,7 +256,7 @@
     },
     {
       "Name": "FGPreferIdle",
-      "Path": "/proc/vendor_sched/fg_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/fg/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -225,7 +265,7 @@
     },
     {
       "Name": "CDPreferHighCap",
-      "Path": "/proc/vendor_sched/cam_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -414,6 +454,48 @@
     },
     {
       "PowerHint": "LAUNCH",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 5000,
+      "Value": "1280"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 5000,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "5000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "TAPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "FGPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
       "Node": "TAUClampBoost",
       "Duration": 5000,
       "Value": "692"
@@ -1093,6 +1175,36 @@
       "Value": "572000"
     },
     {
+      "PowerHint": "GAME",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 0,
+      "Value": "1100"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "500"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
       "PowerHint": "FP_BOOST",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 1000,
diff --git a/powerhint-panther-a0.json b/powerhint-panther-a0.json
index 478619f..5737a14 100644
--- a/powerhint-panther-a0.json
+++ b/powerhint-panther-a0.json
@@ -48,6 +48,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPULittleClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "5000",
+        "500"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUMidClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq",
       "Values": [
@@ -76,6 +86,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUMidClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUBigClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq",
       "Values": [
@@ -104,6 +124,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUBigClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "GPUMinFreq",
       "Path": "/sys/devices/platform/28000000.mali/hint_min_freq",
       "Values": [
@@ -137,6 +167,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUTaperedDVFSHeadroomEnable",
+      "Path": "/proc/vendor_sched/tapered_dvfs_headroom_enable",
+      "Values": [
+        "0",
+        "1"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "MIFTargetLoad",
       "Path": "/sys/class/devfreq/17000010.devfreq_mif/interactive/target_load",
       "Values": [
@@ -148,7 +188,7 @@
     },
     {
       "Name": "CAMUClampBoost",
-      "Path": "/proc/vendor_sched/cam_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/cam/uclamp_min",
       "Values": [
         "765",
         "0"
@@ -157,7 +197,7 @@
     },
     {
       "Name": "TAUClampBoost",
-      "Path": "/proc/vendor_sched/ta_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/ta/uclamp_min",
       "Values": [
         "765",
         "1",
@@ -167,7 +207,7 @@
     },
     {
       "Name": "FGUClampBoost",
-      "Path": "/proc/vendor_sched/fg_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/fg/uclamp_min",
       "Values": [
         "159",
         "0"
@@ -176,7 +216,7 @@
     },
     {
       "Name": "MLUclampBoost",
-      "Path": "/proc/vendor_sched/nnapi_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/nnapi/uclamp_min",
       "Values": [
           "225",
           "813"
@@ -195,7 +235,7 @@
     },
     {
       "Name": "CDPreferIdle",
-      "Path": "/proc/vendor_sched/cam_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -244,7 +284,7 @@
     },
     {
       "Name": "TAPreferHighCap",
-      "Path": "/proc/vendor_sched/ta_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -253,7 +293,7 @@
     },
     {
       "Name": "TAPreferIdle",
-      "Path": "/proc/vendor_sched/ta_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -262,7 +302,7 @@
     },
     {
       "Name": "FGPreferIdle",
-      "Path": "/proc/vendor_sched/fg_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/fg/prefer_idle",
       "Values": [
         "1",
         "0"
@@ -272,7 +312,7 @@
     },
     {
       "Name": "CDPreferHighCap",
-      "Path": "/proc/vendor_sched/cam_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -635,12 +675,6 @@
     },
     {
       "PowerHint": "LAUNCH",
-      "Node": "FGPreferIdle",
-      "Duration": 5000,
-      "Value": "1"
-    },
-    {
-      "PowerHint": "LAUNCH",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 5000,
       "Value": "9999999"
@@ -659,6 +693,48 @@
     },
     {
       "PowerHint": "LAUNCH",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 5000,
+      "Value": "1280"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 5000,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "5000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "TAPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "FGPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
       "Node": "TAUClampBoost",
       "Duration": 5000,
       "Value": "765"
@@ -1636,6 +1712,36 @@
       "Value": "572000"
     },
     {
+      "PowerHint": "GAME",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 0,
+      "Value": "1100"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "500"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
       "PowerHint": "THERMAL_VIRTUAL-SKIN_LIGHT",
       "Node": "PMU_POLL",
       "Duration": 0,
diff --git a/powerhint-panther.json b/powerhint-panther.json
index 849ef07..2141e41 100644
--- a/powerhint-panther.json
+++ b/powerhint-panther.json
@@ -61,6 +61,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPULittleClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "5000",
+        "500"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUMidClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq",
       "Values": [
@@ -89,6 +99,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUMidClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUBigClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq",
       "Values": [
@@ -117,6 +137,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUBigClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "ReducePreferIdle",
       "Path": "/proc/vendor_sched/reduce_prefer_idle",
       "Values": [
@@ -146,6 +176,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUTaperedDVFSHeadroomEnable",
+      "Path": "/proc/vendor_sched/tapered_dvfs_headroom_enable",
+      "Values": [
+        "0",
+        "1"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "MIFTargetLoad",
       "Path": "/sys/class/devfreq/17000010.devfreq_mif/interactive/target_load",
       "Values": [
@@ -157,7 +197,7 @@
     },
     {
       "Name": "CAMUClampBoost",
-      "Path": "/proc/vendor_sched/cam_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/cam/uclamp_min",
       "Values": [
         "765",
         "0"
@@ -166,7 +206,7 @@
     },
     {
       "Name": "TAUClampBoost",
-      "Path": "/proc/vendor_sched/ta_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/ta/uclamp_min",
       "Values": [
         "765",
         "1"
@@ -175,7 +215,7 @@
     },
     {
       "Name": "FGUClampBoost",
-      "Path": "/proc/vendor_sched/fg_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/fg/uclamp_min",
       "Values": [
         "159",
         "0"
@@ -184,7 +224,7 @@
     },
     {
       "Name": "MLUclampBoost",
-      "Path": "/proc/vendor_sched/nnapi_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/nnapi/uclamp_min",
       "Values": [
           "225",
           "813"
@@ -203,7 +243,7 @@
     },
     {
       "Name": "CDPreferIdle",
-      "Path": "/proc/vendor_sched/cam_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -252,7 +292,7 @@
     },
     {
       "Name": "TAPreferHighCap",
-      "Path": "/proc/vendor_sched/ta_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -261,7 +301,7 @@
     },
     {
       "Name": "TAPreferIdle",
-      "Path": "/proc/vendor_sched/ta_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -270,7 +310,7 @@
     },
     {
       "Name": "FGPreferIdle",
-      "Path": "/proc/vendor_sched/fg_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/fg/prefer_idle",
       "Values": [
         "1",
         "0"
@@ -280,7 +320,7 @@
     },
     {
       "Name": "CDPreferHighCap",
-      "Path": "/proc/vendor_sched/cam_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -627,7 +667,7 @@
     },
     {
       "Name": "Dex2oatGroup",
-      "Path": "/proc/vendor_sched/dex2oat_ug",
+      "Path": "/proc/vendor_sched/groups/dex2oat/ug",
       "Values": [
         "1",
         "0"
@@ -669,12 +709,6 @@
     },
     {
       "PowerHint": "LAUNCH",
-      "Node": "FGPreferIdle",
-      "Duration": 5000,
-      "Value": "1"
-    },
-    {
-      "PowerHint": "LAUNCH",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 5000,
       "Value": "9999999"
@@ -693,6 +727,48 @@
     },
     {
       "PowerHint": "LAUNCH",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 5000,
+      "Value": "1280"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 5000,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "5000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "TAPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "FGPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
       "Node": "TAUClampBoost",
       "Duration": 5000,
       "Value": "765"
@@ -750,6 +826,60 @@
       "Value": "0"
     },
     {
+      "PowerHint": "DISPLAY_CHANGE",
+      "Node": "ReducePreferIdle",
+      "Duration": 5000,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "DISPLAY_CHANGE",
+      "Node": "FGPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "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": "3172000"
+    },
+    {
+      "PowerHint": "DISPLAY_CHANGE",
+      "Node": "NPITaskPacking",
+      "Duration": 5000,
+      "Value": "0"
+    },
+    {
       "PowerHint": "CPU_LOAD_RESET",
       "Node": "GPUMinFreq",
       "Duration": 50,
@@ -1771,6 +1901,36 @@
       "Value": "572000"
     },
     {
+      "PowerHint": "GAME",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 0,
+      "Value": "1100"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "500"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
       "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT",
       "Node": "PMU_POLL",
       "Duration": 0,
diff --git a/powerhint-ravenclaw.json b/powerhint-ravenclaw.json
index d1148b1..d01f39c 100644
--- a/powerhint-ravenclaw.json
+++ b/powerhint-ravenclaw.json
@@ -42,6 +42,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPULittleClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu0/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "5000",
+        "500"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUMidClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq",
       "Values": [
@@ -65,6 +75,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUMidClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu4/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "CPUBigClusterMaxFreq",
       "Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq",
       "Values": [
@@ -87,6 +107,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUBigClusterDownRateLimitUs",
+      "Path": "/sys/devices/system/cpu/cpu6/cpufreq/sched_pixel/down_rate_limit_us",
+      "Values": [
+        "20000",
+        "3000"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "GPUMinFreq",
       "Path": "/sys/devices/platform/28000000.mali/hint_min_freq",
       "Values": [
@@ -120,6 +150,16 @@
       "ResetOnInit": true
     },
     {
+      "Name": "CPUTaperedDVFSHeadroomEnable",
+      "Path": "/proc/vendor_sched/tapered_dvfs_headroom_enable",
+      "Values": [
+        "0",
+        "1"
+      ],
+      "DefaultIndex": 0,
+      "ResetOnInit": true
+    },
+    {
       "Name": "MIFTargetLoad",
       "Path": "/sys/class/devfreq/17000010.devfreq_mif/interactive/target_load",
       "Values": [
@@ -130,7 +170,7 @@
     },
     {
       "Name": "TAUClampBoost",
-      "Path": "/proc/vendor_sched/ta_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/ta/uclamp_min",
       "Values": [
         "0",
 	"692",
@@ -144,7 +184,7 @@
     },
     {
       "Name": "FGUClampBoost",
-      "Path": "/proc/vendor_sched/fg_uclamp_min",
+      "Path": "/proc/vendor_sched/groups/fg/uclamp_min",
       "Values": [
         "159",
         "0"
@@ -153,7 +193,7 @@
     },
     {
       "Name": "CDPreferIdle",
-      "Path": "/proc/vendor_sched/cam_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -198,7 +238,7 @@
     },
     {
       "Name": "TAPreferHighCap",
-      "Path": "/proc/vendor_sched/ta_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -207,7 +247,7 @@
     },
     {
       "Name": "TAPreferIdle",
-      "Path": "/proc/vendor_sched/ta_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/ta/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -216,7 +256,7 @@
     },
     {
       "Name": "FGPreferIdle",
-      "Path": "/proc/vendor_sched/fg_prefer_idle",
+      "Path": "/proc/vendor_sched/groups/fg/prefer_idle",
       "Values": [
         "0",
         "1"
@@ -225,7 +265,7 @@
     },
     {
       "Name": "CDPreferHighCap",
-      "Path": "/proc/vendor_sched/cam_prefer_high_cap",
+      "Path": "/proc/vendor_sched/groups/cam/prefer_high_cap",
       "Values": [
         "1",
         "0"
@@ -414,6 +454,48 @@
     },
     {
       "PowerHint": "LAUNCH",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 5000,
+      "Value": "1280"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 5000,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "5000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 5000,
+      "Value": "20000"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "TAPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
+      "Node": "FGPreferIdle",
+      "Duration": 5000,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "LAUNCH",
       "Node": "TAUClampBoost",
       "Duration": 5000,
       "Value": "692"
@@ -1093,6 +1175,36 @@
       "Value": "572000"
     },
     {
+      "PowerHint": "GAME",
+      "Node": "CPUDVFSHeadroom",
+      "Duration": 0,
+      "Value": "1100"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUTaperedDVFSHeadroomEnable",
+      "Duration": 0,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPULittleClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "500"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUMidClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
+      "PowerHint": "GAME",
+      "Node": "CPUBigClusterDownRateLimitUs",
+      "Duration": 0,
+      "Value": "3000"
+    },
+    {
       "PowerHint": "FP_BOOST",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 1000,
diff --git a/ravenclaw/BoardConfig.mk b/ravenclaw/BoardConfig.mk
index caa2afc..a724a26 100644
--- a/ravenclaw/BoardConfig.mk
+++ b/ravenclaw/BoardConfig.mk
@@ -15,6 +15,11 @@
 #
 TARGET_BOARD_INFO_FILE := device/google/pantah/board-info.txt
 TARGET_BOOTLOADER_BOARD_NAME := ravenclaw
+ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q1
+else
+RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/trunk
+endif
 TARGET_SCREEN_DENSITY := 560
 BOARD_USES_GENERIC_AUDIO := true
 USES_DEVICE_GOOGLE_CLOUDRIPPER := true
diff --git a/thermal_info_config_cheetah.json b/thermal_info_config_cheetah.json
index 6ef7ea7..a492fd2 100644
--- a/thermal_info_config_cheetah.json
+++ b/thermal_info_config_cheetah.json
@@ -143,8 +143,8 @@
             "VirtualSensor":true,
             "TriggerSensor":"quiet_therm",
             "Formula":"MAXIMUM",
-            "Combination":["VIRTUAL-GNSS-DISP", "VIRTUAL-USB2-QUIET", "VIRTUAL-QUIET-USB2", "VIRTUAL-NEUTRAL-QUIET"],
-            "Coefficient":[1.0, 1.0, 1.0, 1.0],
+            "Combination":["VIRTUAL-SKIN"],
+            "Coefficient":[1.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,
@@ -159,8 +159,8 @@
             "VirtualSensor":true,
             "TriggerSensor":"quiet_therm",
             "Formula":"MAXIMUM",
-            "Combination":["VIRTUAL-GNSS-DISP", "VIRTUAL-USB2-QUIET", "VIRTUAL-QUIET-USB2", "VIRTUAL-NEUTRAL-QUIET"],
-            "Coefficient":[1.0, 1.0, 1.0, 1.0],
+            "Combination":["VIRTUAL-SKIN"],
+            "Coefficient":[1.0],
             "HotThreshold":["NAN", 37.0, 39.0, 41.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,
@@ -214,8 +214,8 @@
             "VirtualSensor":true,
             "TriggerSensor":"quiet_therm",
             "Formula":"MAXIMUM",
-            "Combination":["VIRTUAL-GNSS-DISP", "VIRTUAL-USB2-QUIET", "VIRTUAL-QUIET-USB2", "VIRTUAL-NEUTRAL-QUIET"],
-            "Coefficient":[1.0, 1.0, 1.0, 1.0],
+            "Combination":["VIRTUAL-SKIN"],
+            "Coefficient":[1.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,
diff --git a/thermal_info_config_panther.json b/thermal_info_config_panther.json
index f0abf68..b786da2 100644
--- a/thermal_info_config_panther.json
+++ b/thermal_info_config_panther.json
@@ -143,8 +143,8 @@
             "VirtualSensor":true,
             "TriggerSensor":"quiet_therm",
             "Formula":"MAXIMUM",
-            "Combination":["VIRTUAL-QUIET-QI", "VIRTUAL-USB-QUIET", "VIRTUAL-QUIET-DISP", "VIRTUAL-NEUTRAL-QUIET"],
-            "Coefficient":[1.0, 1.0, 1.0, 1.0],
+            "Combination":["VIRTUAL-SKIN"],
+            "Coefficient":[1.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,
@@ -159,8 +159,8 @@
             "VirtualSensor":true,
             "TriggerSensor":"quiet_therm",
             "Formula":"MAXIMUM",
-            "Combination":["VIRTUAL-QUIET-QI", "VIRTUAL-USB-QUIET", "VIRTUAL-QUIET-DISP", "VIRTUAL-NEUTRAL-QUIET"],
-            "Coefficient":[1.0, 1.0, 1.0, 1.0],
+            "Combination":["VIRTUAL-SKIN"],
+            "Coefficient":[1.0],
             "HotThreshold":["NAN", 37.0, 39.0, 41.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,
@@ -214,8 +214,8 @@
             "VirtualSensor":true,
             "TriggerSensor":"quiet_therm",
             "Formula":"MAXIMUM",
-            "Combination":["VIRTUAL-QUIET-QI", "VIRTUAL-USB-QUIET", "VIRTUAL-QUIET-DISP", "VIRTUAL-NEUTRAL-QUIET"],
-            "Coefficient":[1.0, 1.0, 1.0, 1.0],
+            "Combination":["VIRTUAL-SKIN"],
+            "Coefficient":[1.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,
@@ -319,8 +319,8 @@
             "VirtualSensor":true,
             "TriggerSensor":"quiet_therm",
             "Formula":"MAXIMUM",
-            "Combination":["VIRTUAL-QUIET-QI", "VIRTUAL-USB-QUIET", "VIRTUAL-QUIET-DISP", "VIRTUAL-NEUTRAL-QUIET"],
-            "Coefficient":[1.0, 1.0, 1.0, 1.0],
+            "Combination":["VIRTUAL-SKIN"],
+            "Coefficient":[1.0],
             "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,