Merge "Add Samsung Galaxy Buds 3 pro to the LE audio allow list" into main
diff --git a/audio/husky/aidl_config/audio_platform_configuration.xml b/audio/husky/aidl_config/audio_platform_configuration.xml
index b34566d..226cf26 100644
--- a/audio/husky/aidl_config/audio_platform_configuration.xml
+++ b/audio/husky/aidl_config/audio_platform_configuration.xml
@@ -107,6 +107,212 @@
     </enablement>
   </spatialCapture>
 
+  <microphones>
+    <microphone id="builtin_mic_1" location="MAINBODY" group="0" indexInTheGroup="0"
+      directionality="OMNI">
+      <device type="IN_MICROPHONE" address="bottom" />
+      <sensitivity levelDbfs="37.0" maxSplDb="132.5" minSplDb="28.5" />
+      <position x="0.0269" y="0.0058" z="0.0079" />
+      <orientation x="0.0" y="0.0" z="1.0" />
+      <frequencyResponse>
+        <point frequencyHz="100.00" levelDb="-0.78" />
+        <point frequencyHz="106.00" levelDb="-0.71" />
+        <point frequencyHz="112.00" levelDb="-0.64" />
+        <point frequencyHz="118.00" levelDb="-0.60" />
+        <point frequencyHz="125.00" levelDb="-0.55" />
+        <point frequencyHz="132.00" levelDb="-0.50" />
+        <point frequencyHz="140.00" levelDb="-0.47" />
+        <point frequencyHz="150.00" levelDb="-0.42" />
+        <point frequencyHz="160.00" levelDb="-0.39" />
+        <point frequencyHz="170.00" levelDb="-0.36" />
+        <point frequencyHz="180.00" levelDb="-0.34" />
+        <point frequencyHz="190.00" levelDb="-0.33" />
+        <point frequencyHz="200.00" levelDb="-0.32" />
+        <point frequencyHz="212.00" levelDb="-0.29" />
+        <point frequencyHz="224.00" levelDb="-0.28" />
+        <point frequencyHz="236.00" levelDb="-0.28" />
+        <point frequencyHz="250.00" levelDb="-0.27" />
+        <point frequencyHz="265.00" levelDb="-0.25" />
+        <point frequencyHz="280.00" levelDb="-0.25" />
+        <point frequencyHz="300.00" levelDb="-0.24" />
+        <point frequencyHz="315.00" levelDb="-0.23" />
+        <point frequencyHz="335.00" levelDb="-0.23" />
+        <point frequencyHz="355.00" levelDb="-0.22" />
+        <point frequencyHz="375.00" levelDb="-0.22" />
+        <point frequencyHz="400.00" levelDb="-0.19" />
+        <point frequencyHz="425.00" levelDb="-0.17" />
+        <point frequencyHz="450.00" levelDb="-0.15" />
+        <point frequencyHz="475.00" levelDb="-0.15" />
+        <point frequencyHz="500.00" levelDb="-0.14" />
+        <point frequencyHz="530.00" levelDb="-0.14" />
+        <point frequencyHz="560.00" levelDb="-0.12" />
+        <point frequencyHz="600.00" levelDb="-0.11" />
+        <point frequencyHz="630.00" levelDb="-0.10" />
+        <point frequencyHz="670.00" levelDb="-0.10" />
+        <point frequencyHz="710.00" levelDb="-0.08" />
+        <point frequencyHz="750.00" levelDb="-0.07" />
+        <point frequencyHz="800.00" levelDb="-0.07" />
+        <point frequencyHz="850.00" levelDb="-0.04" />
+        <point frequencyHz="900.00" levelDb="-0.03" />
+        <point frequencyHz="950.00" levelDb="-0.01" />
+        <point frequencyHz="1000.00" levelDb="0.00" />
+        <point frequencyHz="1060.00" levelDb="0.04" />
+        <point frequencyHz="1120.00" levelDb="0.06" />
+        <point frequencyHz="1180.00" levelDb="0.07" />
+        <point frequencyHz="1250.00" levelDb="0.08" />
+        <point frequencyHz="1320.00" levelDb="0.13" />
+        <point frequencyHz="1400.00" levelDb="0.09" />
+        <point frequencyHz="1500.00" levelDb="0.14" />
+        <point frequencyHz="1600.00" levelDb="0.19" />
+        <point frequencyHz="1700.00" levelDb="0.23" />
+        <point frequencyHz="1800.00" levelDb="0.28" />
+        <point frequencyHz="1900.00" levelDb="0.29" />
+        <point frequencyHz="2000.00" levelDb="0.31" />
+        <point frequencyHz="2120.00" levelDb="0.37" />
+        <point frequencyHz="2240.00" levelDb="0.88" />
+        <point frequencyHz="2360.00" levelDb="0.86" />
+        <point frequencyHz="2500.00" levelDb="0.77" />
+        <point frequencyHz="2650.00" levelDb="0.78" />
+        <point frequencyHz="2800.00" levelDb="0.84" />
+        <point frequencyHz="3000.00" levelDb="0.86" />
+        <point frequencyHz="3150.00" levelDb="1.05" />
+        <point frequencyHz="3350.00" levelDb="1.12" />
+        <point frequencyHz="3550.00" levelDb="1.18" />
+        <point frequencyHz="3750.00" levelDb="1.25" />
+        <point frequencyHz="4000.00" levelDb="1.43" />
+        <point frequencyHz="4250.00" levelDb="1.66" />
+        <point frequencyHz="4500.00" levelDb="1.83" />
+        <point frequencyHz="4750.00" levelDb="2.02" />
+        <point frequencyHz="5000.00" levelDb="2.23" />
+        <point frequencyHz="5300.00" levelDb="2.59" />
+        <point frequencyHz="5600.00" levelDb="2.84" />
+        <point frequencyHz="6000.00" levelDb="3.35" />
+        <point frequencyHz="6300.00" levelDb="4.01" />
+        <point frequencyHz="6700.00" levelDb="6.82" />
+        <point frequencyHz="7100.00" levelDb="6.62" />
+        <point frequencyHz="7500.00" levelDb="6.42" />
+        <point frequencyHz="8000.00" levelDb="7.30" />
+        <point frequencyHz="8500.00" levelDb="8.23" />
+        <point frequencyHz="9000.00" levelDb="7.54" />
+        <point frequencyHz="9500.00" levelDb="12.68" />
+        <point frequencyHz="10000.00" levelDb="13.76" />
+        <point frequencyHz="10600.00" levelDb="18.69" />
+        <point frequencyHz="11200.00" levelDb="19.68" />
+        <point frequencyHz="11800.00" levelDb="20.90" />
+        <point frequencyHz="12500.00" levelDb="23.70" />
+        <point frequencyHz="13200.00" levelDb="25.10" />
+        <point frequencyHz="14000.00" levelDb="21.65" />
+        <point frequencyHz="15000.00" levelDb="16.18" />
+        <point frequencyHz="16000.00" levelDb="18.84" />
+        <point frequencyHz="17000.00" levelDb="25.44" />
+        <point frequencyHz="18000.00" levelDb="23.48" />
+        <point frequencyHz="19000.00" levelDb="23.22" />
+        <point frequencyHz="20000.00" levelDb="24.89" />
+      </frequencyResponse>
+    </microphone>
+    <microphone id="builtin_mic_2" location="MAINBODY" group="0" indexInTheGroup="1"
+      directionality="OMNI">
+      <device type="IN_MICROPHONE_BACK" address="back" />
+      <sensitivity levelDbfs="-37.0" maxSplDb="132.5" minSplDb="28.5" />
+      <position x="0.0546" y="0.1456" z="0.00415" />
+      <orientation x="0.0" y="1.0" z="0.0" />
+      <frequencyResponse>
+        <point frequencyHz="106.00" levelDb="-0.75" />
+        <point frequencyHz="112.00" levelDb="-0.74" />
+        <point frequencyHz="118.00" levelDb="-0.69" />
+        <point frequencyHz="125.00" levelDb="-0.65" />
+        <point frequencyHz="132.00" levelDb="-0.62" />
+        <point frequencyHz="140.00" levelDb="-0.61" />
+        <point frequencyHz="150.00" levelDb="-0.56" />
+        <point frequencyHz="160.00" levelDb="-0.53" />
+        <point frequencyHz="170.00" levelDb="-0.50" />
+        <point frequencyHz="180.00" levelDb="-0.47" />
+        <point frequencyHz="190.00" levelDb="-0.43" />
+        <point frequencyHz="200.00" levelDb="-0.40" />
+        <point frequencyHz="212.00" levelDb="-0.37" />
+        <point frequencyHz="224.00" levelDb="-0.36" />
+        <point frequencyHz="236.00" levelDb="-0.33" />
+        <point frequencyHz="250.00" levelDb="-0.30" />
+        <point frequencyHz="265.00" levelDb="-0.28" />
+        <point frequencyHz="280.00" levelDb="-0.25" />
+        <point frequencyHz="300.00" levelDb="-0.24" />
+        <point frequencyHz="315.00" levelDb="-0.24" />
+        <point frequencyHz="335.00" levelDb="-0.24" />
+        <point frequencyHz="355.00" levelDb="-0.25" />
+        <point frequencyHz="375.00" levelDb="-0.24" />
+        <point frequencyHz="400.00" levelDb="-0.12" />
+        <point frequencyHz="425.00" levelDb="-0.10" />
+        <point frequencyHz="450.00" levelDb="-0.08" />
+        <point frequencyHz="475.00" levelDb="-0.09" />
+        <point frequencyHz="500.00" levelDb="-0.07" />
+        <point frequencyHz="530.00" levelDb="-0.07" />
+        <point frequencyHz="560.00" levelDb="-0.06" />
+        <point frequencyHz="600.00" levelDb="-0.06" />
+        <point frequencyHz="630.00" levelDb="-0.06" />
+        <point frequencyHz="670.00" levelDb="-0.05" />
+        <point frequencyHz="710.00" levelDb="-0.04" />
+        <point frequencyHz="750.00" levelDb="-0.05" />
+        <point frequencyHz="800.00" levelDb="-0.04" />
+        <point frequencyHz="850.00" levelDb="-0.01" />
+        <point frequencyHz="900.00" levelDb="0.02" />
+        <point frequencyHz="950.00" levelDb="0.02" />
+        <point frequencyHz="1000.00" levelDb="0.00" />
+        <point frequencyHz="1060.00" levelDb="0.02" />
+        <point frequencyHz="1120.00" levelDb="0.03" />
+        <point frequencyHz="1180.00" levelDb="0.07" />
+        <point frequencyHz="1250.00" levelDb="0.10" />
+        <point frequencyHz="1320.00" levelDb="0.10" />
+        <point frequencyHz="1400.00" levelDb="0.13" />
+        <point frequencyHz="1500.00" levelDb="0.01" />
+        <point frequencyHz="1600.00" levelDb="0.01" />
+        <point frequencyHz="1700.00" levelDb="0.10" />
+        <point frequencyHz="1800.00" levelDb="0.11" />
+        <point frequencyHz="1900.00" levelDb="0.19" />
+        <point frequencyHz="2000.00" levelDb="0.24" />
+        <point frequencyHz="2120.00" levelDb="0.38" />
+        <point frequencyHz="2240.00" levelDb="0.46" />
+        <point frequencyHz="2360.00" levelDb="0.26" />
+        <point frequencyHz="2500.00" levelDb="0.27" />
+        <point frequencyHz="2650.00" levelDb="0.43" />
+        <point frequencyHz="2800.00" levelDb="0.76" />
+        <point frequencyHz="3000.00" levelDb="0.75" />
+        <point frequencyHz="3150.00" levelDb="1.09" />
+        <point frequencyHz="3350.00" levelDb="1.09" />
+        <point frequencyHz="3550.00" levelDb="0.94" />
+        <point frequencyHz="3750.00" levelDb="1.06" />
+        <point frequencyHz="4000.00" levelDb="1.21" />
+        <point frequencyHz="4250.00" levelDb="1.47" />
+        <point frequencyHz="4500.00" levelDb="1.45" />
+        <point frequencyHz="4750.00" levelDb="1.36" />
+        <point frequencyHz="5000.00" levelDb="2.07" />
+        <point frequencyHz="5300.00" levelDb="2.85" />
+        <point frequencyHz="5600.00" levelDb="2.90" />
+        <point frequencyHz="6000.00" levelDb="3.85" />
+        <point frequencyHz="6300.00" levelDb="4.65" />
+        <point frequencyHz="6700.00" levelDb="5.84" />
+        <point frequencyHz="7100.00" levelDb="5.46" />
+        <point frequencyHz="7500.00" levelDb="6.15" />
+        <point frequencyHz="8000.00" levelDb="7.50" />
+        <point frequencyHz="8500.00" levelDb="8.30" />
+        <point frequencyHz="9000.00" levelDb="10.62" />
+        <point frequencyHz="9500.00" levelDb="12.70" />
+        <point frequencyHz="10000.00" levelDb="16.65" />
+        <point frequencyHz="10600.00" levelDb="20.95" />
+        <point frequencyHz="11200.00" levelDb="25.41" />
+        <point frequencyHz="11800.00" levelDb="26.32" />
+        <point frequencyHz="12500.00" levelDb="20.20" />
+        <point frequencyHz="13200.00" levelDb="16.60" />
+        <point frequencyHz="14000.00" levelDb="11.24" />
+        <point frequencyHz="15000.00" levelDb="7.85" />
+        <point frequencyHz="16000.00" levelDb="7.62" />
+        <point frequencyHz="17000.00" levelDb="20.19" />
+        <point frequencyHz="18000.00" levelDb="7.32" />
+        <point frequencyHz="19000.00" levelDb="2.87" />
+        <point frequencyHz="20000.00" levelDb="5.18" />
+      </frequencyResponse>
+    </microphone>
+  </microphones>
+
   <xi:include href="audio_policy_volumes.xml" />
   <xi:include href="default_volume_tables.xml" />
 </audioPlatformConfiguration>
diff --git a/audio/shiba/aidl_config/audio_platform_configuration.xml b/audio/shiba/aidl_config/audio_platform_configuration.xml
index b34566d..226cf26 100644
--- a/audio/shiba/aidl_config/audio_platform_configuration.xml
+++ b/audio/shiba/aidl_config/audio_platform_configuration.xml
@@ -107,6 +107,212 @@
     </enablement>
   </spatialCapture>
 
+  <microphones>
+    <microphone id="builtin_mic_1" location="MAINBODY" group="0" indexInTheGroup="0"
+      directionality="OMNI">
+      <device type="IN_MICROPHONE" address="bottom" />
+      <sensitivity levelDbfs="37.0" maxSplDb="132.5" minSplDb="28.5" />
+      <position x="0.0269" y="0.0058" z="0.0079" />
+      <orientation x="0.0" y="0.0" z="1.0" />
+      <frequencyResponse>
+        <point frequencyHz="100.00" levelDb="-0.78" />
+        <point frequencyHz="106.00" levelDb="-0.71" />
+        <point frequencyHz="112.00" levelDb="-0.64" />
+        <point frequencyHz="118.00" levelDb="-0.60" />
+        <point frequencyHz="125.00" levelDb="-0.55" />
+        <point frequencyHz="132.00" levelDb="-0.50" />
+        <point frequencyHz="140.00" levelDb="-0.47" />
+        <point frequencyHz="150.00" levelDb="-0.42" />
+        <point frequencyHz="160.00" levelDb="-0.39" />
+        <point frequencyHz="170.00" levelDb="-0.36" />
+        <point frequencyHz="180.00" levelDb="-0.34" />
+        <point frequencyHz="190.00" levelDb="-0.33" />
+        <point frequencyHz="200.00" levelDb="-0.32" />
+        <point frequencyHz="212.00" levelDb="-0.29" />
+        <point frequencyHz="224.00" levelDb="-0.28" />
+        <point frequencyHz="236.00" levelDb="-0.28" />
+        <point frequencyHz="250.00" levelDb="-0.27" />
+        <point frequencyHz="265.00" levelDb="-0.25" />
+        <point frequencyHz="280.00" levelDb="-0.25" />
+        <point frequencyHz="300.00" levelDb="-0.24" />
+        <point frequencyHz="315.00" levelDb="-0.23" />
+        <point frequencyHz="335.00" levelDb="-0.23" />
+        <point frequencyHz="355.00" levelDb="-0.22" />
+        <point frequencyHz="375.00" levelDb="-0.22" />
+        <point frequencyHz="400.00" levelDb="-0.19" />
+        <point frequencyHz="425.00" levelDb="-0.17" />
+        <point frequencyHz="450.00" levelDb="-0.15" />
+        <point frequencyHz="475.00" levelDb="-0.15" />
+        <point frequencyHz="500.00" levelDb="-0.14" />
+        <point frequencyHz="530.00" levelDb="-0.14" />
+        <point frequencyHz="560.00" levelDb="-0.12" />
+        <point frequencyHz="600.00" levelDb="-0.11" />
+        <point frequencyHz="630.00" levelDb="-0.10" />
+        <point frequencyHz="670.00" levelDb="-0.10" />
+        <point frequencyHz="710.00" levelDb="-0.08" />
+        <point frequencyHz="750.00" levelDb="-0.07" />
+        <point frequencyHz="800.00" levelDb="-0.07" />
+        <point frequencyHz="850.00" levelDb="-0.04" />
+        <point frequencyHz="900.00" levelDb="-0.03" />
+        <point frequencyHz="950.00" levelDb="-0.01" />
+        <point frequencyHz="1000.00" levelDb="0.00" />
+        <point frequencyHz="1060.00" levelDb="0.04" />
+        <point frequencyHz="1120.00" levelDb="0.06" />
+        <point frequencyHz="1180.00" levelDb="0.07" />
+        <point frequencyHz="1250.00" levelDb="0.08" />
+        <point frequencyHz="1320.00" levelDb="0.13" />
+        <point frequencyHz="1400.00" levelDb="0.09" />
+        <point frequencyHz="1500.00" levelDb="0.14" />
+        <point frequencyHz="1600.00" levelDb="0.19" />
+        <point frequencyHz="1700.00" levelDb="0.23" />
+        <point frequencyHz="1800.00" levelDb="0.28" />
+        <point frequencyHz="1900.00" levelDb="0.29" />
+        <point frequencyHz="2000.00" levelDb="0.31" />
+        <point frequencyHz="2120.00" levelDb="0.37" />
+        <point frequencyHz="2240.00" levelDb="0.88" />
+        <point frequencyHz="2360.00" levelDb="0.86" />
+        <point frequencyHz="2500.00" levelDb="0.77" />
+        <point frequencyHz="2650.00" levelDb="0.78" />
+        <point frequencyHz="2800.00" levelDb="0.84" />
+        <point frequencyHz="3000.00" levelDb="0.86" />
+        <point frequencyHz="3150.00" levelDb="1.05" />
+        <point frequencyHz="3350.00" levelDb="1.12" />
+        <point frequencyHz="3550.00" levelDb="1.18" />
+        <point frequencyHz="3750.00" levelDb="1.25" />
+        <point frequencyHz="4000.00" levelDb="1.43" />
+        <point frequencyHz="4250.00" levelDb="1.66" />
+        <point frequencyHz="4500.00" levelDb="1.83" />
+        <point frequencyHz="4750.00" levelDb="2.02" />
+        <point frequencyHz="5000.00" levelDb="2.23" />
+        <point frequencyHz="5300.00" levelDb="2.59" />
+        <point frequencyHz="5600.00" levelDb="2.84" />
+        <point frequencyHz="6000.00" levelDb="3.35" />
+        <point frequencyHz="6300.00" levelDb="4.01" />
+        <point frequencyHz="6700.00" levelDb="6.82" />
+        <point frequencyHz="7100.00" levelDb="6.62" />
+        <point frequencyHz="7500.00" levelDb="6.42" />
+        <point frequencyHz="8000.00" levelDb="7.30" />
+        <point frequencyHz="8500.00" levelDb="8.23" />
+        <point frequencyHz="9000.00" levelDb="7.54" />
+        <point frequencyHz="9500.00" levelDb="12.68" />
+        <point frequencyHz="10000.00" levelDb="13.76" />
+        <point frequencyHz="10600.00" levelDb="18.69" />
+        <point frequencyHz="11200.00" levelDb="19.68" />
+        <point frequencyHz="11800.00" levelDb="20.90" />
+        <point frequencyHz="12500.00" levelDb="23.70" />
+        <point frequencyHz="13200.00" levelDb="25.10" />
+        <point frequencyHz="14000.00" levelDb="21.65" />
+        <point frequencyHz="15000.00" levelDb="16.18" />
+        <point frequencyHz="16000.00" levelDb="18.84" />
+        <point frequencyHz="17000.00" levelDb="25.44" />
+        <point frequencyHz="18000.00" levelDb="23.48" />
+        <point frequencyHz="19000.00" levelDb="23.22" />
+        <point frequencyHz="20000.00" levelDb="24.89" />
+      </frequencyResponse>
+    </microphone>
+    <microphone id="builtin_mic_2" location="MAINBODY" group="0" indexInTheGroup="1"
+      directionality="OMNI">
+      <device type="IN_MICROPHONE_BACK" address="back" />
+      <sensitivity levelDbfs="-37.0" maxSplDb="132.5" minSplDb="28.5" />
+      <position x="0.0546" y="0.1456" z="0.00415" />
+      <orientation x="0.0" y="1.0" z="0.0" />
+      <frequencyResponse>
+        <point frequencyHz="106.00" levelDb="-0.75" />
+        <point frequencyHz="112.00" levelDb="-0.74" />
+        <point frequencyHz="118.00" levelDb="-0.69" />
+        <point frequencyHz="125.00" levelDb="-0.65" />
+        <point frequencyHz="132.00" levelDb="-0.62" />
+        <point frequencyHz="140.00" levelDb="-0.61" />
+        <point frequencyHz="150.00" levelDb="-0.56" />
+        <point frequencyHz="160.00" levelDb="-0.53" />
+        <point frequencyHz="170.00" levelDb="-0.50" />
+        <point frequencyHz="180.00" levelDb="-0.47" />
+        <point frequencyHz="190.00" levelDb="-0.43" />
+        <point frequencyHz="200.00" levelDb="-0.40" />
+        <point frequencyHz="212.00" levelDb="-0.37" />
+        <point frequencyHz="224.00" levelDb="-0.36" />
+        <point frequencyHz="236.00" levelDb="-0.33" />
+        <point frequencyHz="250.00" levelDb="-0.30" />
+        <point frequencyHz="265.00" levelDb="-0.28" />
+        <point frequencyHz="280.00" levelDb="-0.25" />
+        <point frequencyHz="300.00" levelDb="-0.24" />
+        <point frequencyHz="315.00" levelDb="-0.24" />
+        <point frequencyHz="335.00" levelDb="-0.24" />
+        <point frequencyHz="355.00" levelDb="-0.25" />
+        <point frequencyHz="375.00" levelDb="-0.24" />
+        <point frequencyHz="400.00" levelDb="-0.12" />
+        <point frequencyHz="425.00" levelDb="-0.10" />
+        <point frequencyHz="450.00" levelDb="-0.08" />
+        <point frequencyHz="475.00" levelDb="-0.09" />
+        <point frequencyHz="500.00" levelDb="-0.07" />
+        <point frequencyHz="530.00" levelDb="-0.07" />
+        <point frequencyHz="560.00" levelDb="-0.06" />
+        <point frequencyHz="600.00" levelDb="-0.06" />
+        <point frequencyHz="630.00" levelDb="-0.06" />
+        <point frequencyHz="670.00" levelDb="-0.05" />
+        <point frequencyHz="710.00" levelDb="-0.04" />
+        <point frequencyHz="750.00" levelDb="-0.05" />
+        <point frequencyHz="800.00" levelDb="-0.04" />
+        <point frequencyHz="850.00" levelDb="-0.01" />
+        <point frequencyHz="900.00" levelDb="0.02" />
+        <point frequencyHz="950.00" levelDb="0.02" />
+        <point frequencyHz="1000.00" levelDb="0.00" />
+        <point frequencyHz="1060.00" levelDb="0.02" />
+        <point frequencyHz="1120.00" levelDb="0.03" />
+        <point frequencyHz="1180.00" levelDb="0.07" />
+        <point frequencyHz="1250.00" levelDb="0.10" />
+        <point frequencyHz="1320.00" levelDb="0.10" />
+        <point frequencyHz="1400.00" levelDb="0.13" />
+        <point frequencyHz="1500.00" levelDb="0.01" />
+        <point frequencyHz="1600.00" levelDb="0.01" />
+        <point frequencyHz="1700.00" levelDb="0.10" />
+        <point frequencyHz="1800.00" levelDb="0.11" />
+        <point frequencyHz="1900.00" levelDb="0.19" />
+        <point frequencyHz="2000.00" levelDb="0.24" />
+        <point frequencyHz="2120.00" levelDb="0.38" />
+        <point frequencyHz="2240.00" levelDb="0.46" />
+        <point frequencyHz="2360.00" levelDb="0.26" />
+        <point frequencyHz="2500.00" levelDb="0.27" />
+        <point frequencyHz="2650.00" levelDb="0.43" />
+        <point frequencyHz="2800.00" levelDb="0.76" />
+        <point frequencyHz="3000.00" levelDb="0.75" />
+        <point frequencyHz="3150.00" levelDb="1.09" />
+        <point frequencyHz="3350.00" levelDb="1.09" />
+        <point frequencyHz="3550.00" levelDb="0.94" />
+        <point frequencyHz="3750.00" levelDb="1.06" />
+        <point frequencyHz="4000.00" levelDb="1.21" />
+        <point frequencyHz="4250.00" levelDb="1.47" />
+        <point frequencyHz="4500.00" levelDb="1.45" />
+        <point frequencyHz="4750.00" levelDb="1.36" />
+        <point frequencyHz="5000.00" levelDb="2.07" />
+        <point frequencyHz="5300.00" levelDb="2.85" />
+        <point frequencyHz="5600.00" levelDb="2.90" />
+        <point frequencyHz="6000.00" levelDb="3.85" />
+        <point frequencyHz="6300.00" levelDb="4.65" />
+        <point frequencyHz="6700.00" levelDb="5.84" />
+        <point frequencyHz="7100.00" levelDb="5.46" />
+        <point frequencyHz="7500.00" levelDb="6.15" />
+        <point frequencyHz="8000.00" levelDb="7.50" />
+        <point frequencyHz="8500.00" levelDb="8.30" />
+        <point frequencyHz="9000.00" levelDb="10.62" />
+        <point frequencyHz="9500.00" levelDb="12.70" />
+        <point frequencyHz="10000.00" levelDb="16.65" />
+        <point frequencyHz="10600.00" levelDb="20.95" />
+        <point frequencyHz="11200.00" levelDb="25.41" />
+        <point frequencyHz="11800.00" levelDb="26.32" />
+        <point frequencyHz="12500.00" levelDb="20.20" />
+        <point frequencyHz="13200.00" levelDb="16.60" />
+        <point frequencyHz="14000.00" levelDb="11.24" />
+        <point frequencyHz="15000.00" levelDb="7.85" />
+        <point frequencyHz="16000.00" levelDb="7.62" />
+        <point frequencyHz="17000.00" levelDb="20.19" />
+        <point frequencyHz="18000.00" levelDb="7.32" />
+        <point frequencyHz="19000.00" levelDb="2.87" />
+        <point frequencyHz="20000.00" levelDb="5.18" />
+      </frequencyResponse>
+    </microphone>
+  </microphones>
+
   <xi:include href="audio_policy_volumes.xml" />
   <xi:include href="default_volume_tables.xml" />
 </audioPlatformConfiguration>
diff --git a/bluetooth/bt_vendor_overlay.conf b/bluetooth/bt_vendor_overlay.conf
index df3cab7..172d66d 100644
--- a/bluetooth/bt_vendor_overlay.conf
+++ b/bluetooth/bt_vendor_overlay.conf
@@ -40,3 +40,5 @@
 BtA2dpOffloadCap = sbc-aac-aptx-aptxhd-ldac-opus
 
 BtOpusEnabled = true
+
+BtHalRecoveryByRestart = true
diff --git a/conf/init.husky.rc b/conf/init.husky.rc
index ffd9bd8..3479e7c 100644
--- a/conf/init.husky.rc
+++ b/conf/init.husky.rc
@@ -41,6 +41,7 @@
 # Bluetooth
 on post-fs-data
     chown bluetooth system /proc/bluetooth/timesync
+    chown bluetooth system /proc/bluetooth/sleep/wakelock_ctrl
 
 # Start the twoshay touch service
 on property:vendor.device.modules.ready=1
diff --git a/conf/init.shiba.rc b/conf/init.shiba.rc
index b30f54f..f19c3e2 100644
--- a/conf/init.shiba.rc
+++ b/conf/init.shiba.rc
@@ -37,6 +37,7 @@
 # Bluetooth
 on post-fs-data
     chown bluetooth system /proc/bluetooth/timesync
+    chown bluetooth system /proc/bluetooth/sleep/wakelock_ctrl
 
 # Start the twoshay touch service
 on property:vendor.device.modules.ready=1
diff --git a/device-husky.mk b/device-husky.mk
index 417ab87..59556cc 100644
--- a/device-husky.mk
+++ b/device-husky.mk
@@ -225,11 +225,10 @@
 	bluetooth.profile.ccp.server.enabled?=true \
 	bluetooth.profile.vcp.controller.enabled?=true
 
-ifeq ($(RELEASE_PIXEL_BROADCAST_ENABLED), true)
+# Bluetooth LE Audio Broadcast
 PRODUCT_PRODUCT_PROPERTIES += \
 	bluetooth.profile.bap.broadcast.assist.enabled=true \
 	bluetooth.profile.bap.broadcast.source.enabled=true
-endif
 
 # Bluetooth LE Audio enable hardware offloading
 PRODUCT_PRODUCT_PROPERTIES += \
diff --git a/device-shiba.mk b/device-shiba.mk
index e74a5d1..0953a66 100644
--- a/device-shiba.mk
+++ b/device-shiba.mk
@@ -213,11 +213,10 @@
 	bluetooth.profile.ccp.server.enabled?=true \
 	bluetooth.profile.vcp.controller.enabled?=true
 
-ifeq ($(RELEASE_PIXEL_BROADCAST_ENABLED), true)
+# Bluetooth LE Audio Broadcast
 PRODUCT_PRODUCT_PROPERTIES += \
 	bluetooth.profile.bap.broadcast.assist.enabled=true \
 	bluetooth.profile.bap.broadcast.source.enabled=true
-endif
 
 # Bluetooth LE Audio enable hardware offloading
 PRODUCT_PRODUCT_PROPERTIES += \
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 893d3ba..a543d1a 100644
--- a/husky/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/husky/overlay/frameworks/base/core/res/res/values/config.xml
@@ -300,9 +300,6 @@
 
     <bool name="config_safe_sound_dosage_enabled">true</bool>
 
-    <!-- The max vibration strength allowed in audio haptic channels. -->
-    <item name="config_hapticChannelMaxVibrationAmplitude" format="float" type="dimen">0.335</item>
-
     <!-- The maximum range of gamma adjustment possible using the screen
          auto-brightness adjustment setting. -->
     <fraction name="config_autoBrightnessAdjustmentMaxGamma">105%</fraction>
diff --git a/nfc/libnfc-hal-st.conf b/nfc/libnfc-hal-st.conf
index 51dfb91..0709eb5 100644
--- a/nfc/libnfc-hal-st.conf
+++ b/nfc/libnfc-hal-st.conf
@@ -156,7 +156,7 @@
 ###############################################################################
 # Configure the ACTIVE_RW timer
 # Default 0x00, set 0x01 to enable it
-# STNFC_ACTIVERW_TIMER=0x01
+STNFC_ACTIVERW_TIMER=0x01
 
 ###############################################################################
 # Core configuration settings
diff --git a/perf/powerhint-husky.json b/perf/powerhint-husky.json
index ee5d996..973dd45 100644
--- a/perf/powerhint-husky.json
+++ b/perf/powerhint-husky.json
@@ -97,6 +97,7 @@
       "Values": [
         "9999999",
         "1548000",
+        "1425000",
         "1197000",
         "0"
       ],
@@ -136,6 +137,7 @@
         "9999999",
         "2245000",
         "2130000",
+        "1572000",
         "1836000",
         "0"
       ],
@@ -177,6 +179,7 @@
         "2687000",
         "2363000",
         "2147000",
+        "1745000",
         "1885000",
         "0"
       ],
@@ -1605,6 +1608,24 @@
       "Value": "0"
     },
     {
+      "PowerHint": "CAMERA_MULTICAM_BOOST",
+      "Node": "CDPreferIdle",
+      "Duration": 100,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "CAMERA_MULTICAM_BOOST",
+      "Node": "AutoPreferIdle",
+      "Duration": 100,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "CAMERA_MULTICAM_BOOST",
+      "Node": "PMU_POLL",
+      "Duration": 100,
+      "Value": "0"
+    },
+    {
       "PowerHint": "GCA_CAMERA_SHOT_BIGCPU_RANK1",
       "Node": "TAPreferHighCap",
       "Duration": 3000,
@@ -2058,7 +2079,7 @@
       "PowerHint": "CAMERA_STREAMING_HIGH",
       "Node": "CDPreferHighCap",
       "Duration": 0,
-      "Value": "0"
+      "Value": "1"
     },
     {
       "PowerHint": "CAMERA_STREAMING_HIGH",
@@ -2606,37 +2627,37 @@
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1745000"
     },
     {
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPUBigClusterMinFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1745000"
     },
     {
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPUMidClusterMaxFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1572000"
     },
     {
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPUMidClusterMinFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1572000"
     },
     {
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPULittleClusterMaxFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1425000"
     },
     {
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPULittleClusterMinFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1425000"
     },
     {
       "PowerHint": "LOW_POWER_LITTLE_CLUSTER_50",
@@ -2875,7 +2896,7 @@
       "PowerHint": "GAME",
       "Node": "AutoPreferIdle",
       "Duration": 0,
-      "Value": "1"
+      "Value": "0"
     },
     {
       "PowerHint": "GAME",
diff --git a/perf/powerhint-ripcurrent.json b/perf/powerhint-ripcurrent.json
index d7270a9..ff4043f 100644
--- a/perf/powerhint-ripcurrent.json
+++ b/perf/powerhint-ripcurrent.json
@@ -1572,6 +1572,24 @@
       "Value": "0"
     },
     {
+      "PowerHint": "CAMERA_MULTICAM_BOOST",
+      "Node": "CDPreferIdle",
+      "Duration": 100,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "CAMERA_MULTICAM_BOOST",
+      "Node": "AutoPreferIdle",
+      "Duration": 100,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "CAMERA_MULTICAM_BOOST",
+      "Node": "PMU_POLL",
+      "Duration": 100,
+      "Value": "0"
+    },
+    {
       "PowerHint": "GCA_CAMERA_SHOT_BIGCPU",
       "Node": "TAPreferHighCap",
       "Duration": 3000,
@@ -1911,7 +1929,7 @@
       "PowerHint": "CAMERA_STREAMING_HIGH",
       "Node": "CDPreferHighCap",
       "Duration": 0,
-      "Value": "0"
+      "Value": "1"
     },
     {
       "PowerHint": "CAMERA_STREAMING_HIGH",
diff --git a/perf/powerhint-shiba.json b/perf/powerhint-shiba.json
index 1d3185a..afdab3d 100644
--- a/perf/powerhint-shiba.json
+++ b/perf/powerhint-shiba.json
@@ -97,6 +97,7 @@
       "Values": [
         "9999999",
         "1548000",
+        "1425000",
         "1197000",
         "0"
       ],
@@ -132,6 +133,7 @@
       "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq",
       "Values": [
         "9999999",
+        "1572000",
         "1836000",
         "0"
       ],
@@ -168,6 +170,7 @@
       "Path": "/sys/devices/system/cpu/cpu8/cpufreq/scaling_min_freq",
       "Values": [
         "9999999",
+        "1745000",
         "1885000",
         "0"
       ],
@@ -1612,6 +1615,24 @@
       "Value": "0"
     },
     {
+      "PowerHint": "CAMERA_MULTICAM_BOOST",
+      "Node": "CDPreferIdle",
+      "Duration": 100,
+      "Value": "1"
+    },
+    {
+      "PowerHint": "CAMERA_MULTICAM_BOOST",
+      "Node": "AutoPreferIdle",
+      "Duration": 100,
+      "Value": "0"
+    },
+    {
+      "PowerHint": "CAMERA_MULTICAM_BOOST",
+      "Node": "PMU_POLL",
+      "Duration": 100,
+      "Value": "0"
+    },
+    {
       "PowerHint": "GCA_CAMERA_SHOT_BIGCPU",
       "Node": "TAPreferHighCap",
       "Duration": 3000,
@@ -1963,7 +1984,7 @@
       "PowerHint": "CAMERA_STREAMING_HIGH",
       "Node": "CDPreferHighCap",
       "Duration": 0,
-      "Value": "0"
+      "Value": "1"
     },
     {
       "PowerHint": "CAMERA_STREAMING_HIGH",
@@ -2139,7 +2160,7 @@
       "Duration": 0,
       "Value": "cam1"
     },
-   {
+    {
       "PowerHint": "CAMERA_STREAMING_STANDARD",
       "Node": "CPUUtilThreshold",
       "Duration": 0,
@@ -2511,37 +2532,37 @@
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPUBigClusterMaxFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1745000"
     },
     {
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPUBigClusterMinFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1745000"
     },
     {
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPUMidClusterMaxFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1572000"
     },
     {
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPUMidClusterMinFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1572000"
     },
     {
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPULittleClusterMaxFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1425000"
     },
     {
       "PowerHint": "FIXED_PERFORMANCE",
       "Node": "CPULittleClusterMinFreq",
       "Duration": 0,
-      "Value": "9999999"
+      "Value": "1425000"
     },
     {
       "PowerHint": "LOW_POWER_LITTLE_CLUSTER_50",
@@ -2768,7 +2789,7 @@
       "PowerHint": "GAME",
       "Node": "AutoPreferIdle",
       "Duration": 0,
-      "Value": "1"
+      "Value": "0"
     },
     {
       "PowerHint": "GAME",
diff --git a/ripcurrent/overlay/frameworks/base/core/res/res/values/config.xml b/ripcurrent/overlay/frameworks/base/core/res/res/values/config.xml
index 40dd9d6..97d8b95 100644
--- a/ripcurrent/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/ripcurrent/overlay/frameworks/base/core/res/res/values/config.xml
@@ -231,6 +231,4 @@
           <item>283</item>
      </integer-array>
 
-    <!-- The max vibration strength allowed in audio haptic channels. -->
-    <item name="config_hapticChannelMaxVibrationAmplitude" format="float" type="dimen">0.335</item>
 </resources>
diff --git a/rro_overlays/WifiOverlay/res/values/config.xml b/rro_overlays/WifiOverlay/res/values/config.xml
index 6519607..3c8427b 100644
--- a/rro_overlays/WifiOverlay/res/values/config.xml
+++ b/rro_overlays/WifiOverlay/res/values/config.xml
@@ -187,4 +187,6 @@
          false: firmware roaming will not be affected. -->
     <bool translatable="false" name ="config_wifiDisableFirmwareRoamingInIdleMode">true</bool>
 
+    <!-- Boolean indicating whether to trigger bugreport for WiFi subsystem restart issue -->
+    <bool translatable="false" name ="config_wifi_subsystem_restart_bugreport_enabled">false</bool>
 </resources>
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 fcbbc46..b2a1a13 100644
--- a/shiba/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/shiba/overlay/frameworks/base/core/res/res/values/config.xml
@@ -294,9 +294,6 @@
 
     <bool name="config_safe_sound_dosage_enabled">true</bool>
 
-    <!-- The max vibration strength allowed in audio haptic channels. -->
-    <item name="config_hapticChannelMaxVibrationAmplitude" format="float" type="dimen">0.335</item>
-
     <!-- The maximum range of gamma adjustment possible using the screen
          auto-brightness adjustment setting. -->
     <fraction name="config_autoBrightnessAdjustmentMaxGamma">105%</fraction>
diff --git a/thermal/Android.bp b/thermal/Android.bp
deleted file mode 100644
index fed2086..0000000
--- a/thermal/Android.bp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-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
deleted file mode 100644
index 7b01306..0000000
--- a/thermal/thermal_config_test.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#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 66b949d..1ba87af 100644
--- a/thermal/thermal_info_config_charge_husky.json
+++ b/thermal/thermal_info_config_charge_husky.json
@@ -127,13 +127,23 @@
             "Multiplier":1
         },
         {
-            "Name":"IS_WLC",
+            "Name":"WLC_CHECK",
             "Type":"UNKNOWN",
             "Hidden":true,
             "VirtualSensor":true,
             "Formula":"COUNT_THRESHOLD",
-            "Combination":["thb_hda"],
-            "Coefficient":[1],
+            "Combination":["thb_hda", "thb_hda"],
+            "Coefficient":[1, -51],
+            "Multiplier":1
+        },
+        {
+            "Name":"NO_WLC",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"COUNT_THRESHOLD",
+            "Combination":["WLC_CHECK"],
+            "Coefficient":[-2],
             "Multiplier":1
         },
         {
@@ -153,8 +163,9 @@
             "VirtualSensor":true,
             "TriggerSensor":["north_therm", "cam_therm", "soc_therm", "charge_therm", "disp_therm", "quiet_therm", "usb_pwr_therm"],
             "Formula":"WEIGHTED_AVG",
-            "Combination":["VIRTUAL-SKIN-CHARGE", "IS_WLC"],
-            "Coefficient":[1.0, -1000000],
+            "Combination":["VIRTUAL-SKIN-CHARGE"],
+            "Coefficient":["NO_WLC"],
+            "CoefficientType": ["SENSOR"],
             "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,
@@ -329,8 +340,8 @@
             "Name":"PARTIAL_SYSTEM_POWER",
             "VirtualRails":true,
             "Formula":"WEIGHTED_AVG",
-            "Combination":["S1S_VDD_CAM", "S2S_VDD_G3D", "S4S_VDD2H_MEM", "S5S_VDDQ_MEM", "S8S_VDD_G3D_L2", "S9S_VDD_AOC", "L2S_PLL_MIPI_UFS", "L21S_VDD2L_MEM", "VSYS_PWR_DISPLAY", "VSYS_PWR_WLAN_BT", "S1M_VDD_MIF", "S2M_VDD_CPUCL2", "S3M_VDD_CPUCL1", "S4M_VDD_CPUCL0", "S5M_VDD_INT", "S6M_LLDO1", "S7M_VDD_TPU", "S8M_LLDO2", "L22M_DISP", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE"],
-            "Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
+            "Combination":["S1S_VDD_CAM", "S2S_VDD_G3D", "S4S_VDD2H_MEM", "S5S_VDDQ_MEM", "S8S_VDD_G3D_L2", "S9S_VDD_AOC", "L2S_PLL_MIPI_UFS", "L21S_VDD2L_MEM", "VSYS_PWR_DISPLAY", "VSYS_PWR_WLAN_BT", "S1M_VDD_MIF", "S2M_VDD_CPUCL2", "S3M_VDD_CPUCL1", "S4M_VDD_CPUCL0", "S5M_VDD_INT", "S6M_LLDO1", "S7M_VDD_TPU", "S8M_LLDO2", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE"],
+            "Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
             "PowerSampleDelay":7000,
             "PowerSampleCount":5
         }
diff --git a/thermal/thermal_info_config_charge_shiba.json b/thermal/thermal_info_config_charge_shiba.json
index 25fa05d..08aaa96 100644
--- a/thermal/thermal_info_config_charge_shiba.json
+++ b/thermal/thermal_info_config_charge_shiba.json
@@ -160,13 +160,23 @@
             "Multiplier":1
         },
         {
-            "Name":"IS_WLC",
+            "Name":"WLC_CHECK",
             "Type":"UNKNOWN",
             "Hidden":true,
             "VirtualSensor":true,
             "Formula":"COUNT_THRESHOLD",
-            "Combination":["thb_hda"],
-            "Coefficient":[1],
+            "Combination":["thb_hda", "thb_hda"],
+            "Coefficient":[1, -51],
+            "Multiplier":1
+        },
+        {
+            "Name":"NO_WLC",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"COUNT_THRESHOLD",
+            "Combination":["WLC_CHECK"],
+            "Coefficient":[-2],
             "Multiplier":1
         },
         {
@@ -186,8 +196,9 @@
             "VirtualSensor":true,
             "TriggerSensor":["north_therm", "cam_therm", "soc_therm", "charge_therm", "disp_therm", "neutral_therm", "quiet_therm", "usb_pwr_therm"],
             "Formula":"WEIGHTED_AVG",
-            "Combination":["VIRTUAL-SKIN-CHARGE", "IS_WLC"],
-            "Coefficient":[1.0, -1000000],
+            "Combination":["VIRTUAL-SKIN-CHARGE"],
+            "Coefficient":["NO_WLC"],
+            "CoefficientType": ["SENSOR"],
             "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,
@@ -362,8 +373,8 @@
             "Name":"PARTIAL_SYSTEM_POWER",
             "VirtualRails":true,
             "Formula":"WEIGHTED_AVG",
-            "Combination":["S1S_VDD_CAM", "S2S_VDD_G3D", "S4S_VDD2H_MEM", "S5S_VDDQ_MEM", "S8S_VDD_G3D_L2", "S9S_VDD_AOC", "L2S_PLL_MIPI_UFS", "L21S_VDD2L_MEM", "VSYS_PWR_DISPLAY", "VSYS_PWR_WLAN_BT", "S1M_VDD_MIF", "S2M_VDD_CPUCL2", "S3M_VDD_CPUCL1", "S4M_VDD_CPUCL0", "S5M_VDD_INT", "S6M_LLDO1", "S7M_VDD_TPU", "S8M_LLDO2", "L22M_DISP", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE"],
-            "Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
+            "Combination":["S1S_VDD_CAM", "S2S_VDD_G3D", "S4S_VDD2H_MEM", "S5S_VDDQ_MEM", "S8S_VDD_G3D_L2", "S9S_VDD_AOC", "L2S_PLL_MIPI_UFS", "L21S_VDD2L_MEM", "VSYS_PWR_DISPLAY", "VSYS_PWR_WLAN_BT", "S1M_VDD_MIF", "S2M_VDD_CPUCL2", "S3M_VDD_CPUCL1", "S4M_VDD_CPUCL0", "S5M_VDD_INT", "S6M_LLDO1", "S7M_VDD_TPU", "S8M_LLDO2", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE"],
+            "Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
             "PowerSampleDelay":7000,
             "PowerSampleCount":5
         }
diff --git a/thermal/thermal_info_config_husky.json b/thermal/thermal_info_config_husky.json
index 29c24cd..e325805 100644
--- a/thermal/thermal_info_config_husky.json
+++ b/thermal/thermal_info_config_husky.json
@@ -717,13 +717,23 @@
             "Multiplier":1
         },
         {
-            "Name":"IS_WLC",
+            "Name":"WLC_CHECK",
             "Type":"UNKNOWN",
             "Hidden":true,
             "VirtualSensor":true,
             "Formula":"COUNT_THRESHOLD",
-            "Combination":["thb_hda"],
-            "Coefficient":[1],
+            "Combination":["thb_hda", "thb_hda"],
+            "Coefficient":[1, -51],
+            "Multiplier":1
+        },
+        {
+            "Name":"NO_WLC",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"COUNT_THRESHOLD",
+            "Combination":["WLC_CHECK"],
+            "Coefficient":[-2],
             "Multiplier":1
         },
         {
@@ -743,8 +753,9 @@
             "VirtualSensor":true,
             "TriggerSensor":["north_therm", "cam_therm", "soc_therm", "charge_therm", "disp_therm", "quiet_therm", "usb_pwr_therm"],
             "Formula":"WEIGHTED_AVG",
-            "Combination":["VIRTUAL-SKIN-CHARGE", "IS_WLC"],
-            "Coefficient":[1.0, -1000000],
+            "Combination":["VIRTUAL-SKIN-CHARGE"],
+            "Coefficient":["NO_WLC"],
+            "CoefficientType": ["SENSOR"],
             "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,
@@ -1051,8 +1062,8 @@
             "Name":"PARTIAL_SYSTEM_POWER",
             "VirtualRails":true,
             "Formula":"WEIGHTED_AVG",
-            "Combination":["S1S_VDD_CAM", "S2S_VDD_G3D", "S4S_VDD2H_MEM", "S5S_VDDQ_MEM", "S8S_VDD_G3D_L2", "S9S_VDD_AOC", "L2S_PLL_MIPI_UFS", "L21S_VDD2L_MEM", "VSYS_PWR_DISPLAY", "VSYS_PWR_WLAN_BT", "S1M_VDD_MIF", "S2M_VDD_CPUCL2", "S3M_VDD_CPUCL1", "S4M_VDD_CPUCL0", "S5M_VDD_INT", "S6M_LLDO1", "S7M_VDD_TPU", "S8M_LLDO2", "L22M_DISP", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE"],
-            "Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
+            "Combination":["S1S_VDD_CAM", "S2S_VDD_G3D", "S4S_VDD2H_MEM", "S5S_VDDQ_MEM", "S8S_VDD_G3D_L2", "S9S_VDD_AOC", "L2S_PLL_MIPI_UFS", "L21S_VDD2L_MEM", "VSYS_PWR_DISPLAY", "VSYS_PWR_WLAN_BT", "S1M_VDD_MIF", "S2M_VDD_CPUCL2", "S3M_VDD_CPUCL1", "S4M_VDD_CPUCL0", "S5M_VDD_INT", "S6M_LLDO1", "S7M_VDD_TPU", "S8M_LLDO2", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE"],
+            "Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
             "PowerSampleDelay":7000,
             "PowerSampleCount":5
         }
diff --git a/thermal/thermal_info_config_shiba.json b/thermal/thermal_info_config_shiba.json
index 82c6fbc..fd0e438 100644
--- a/thermal/thermal_info_config_shiba.json
+++ b/thermal/thermal_info_config_shiba.json
@@ -729,13 +729,23 @@
             "Multiplier":1
         },
         {
-            "Name":"IS_WLC",
+            "Name":"WLC_CHECK",
             "Type":"UNKNOWN",
             "Hidden":true,
             "VirtualSensor":true,
             "Formula":"COUNT_THRESHOLD",
-            "Combination":["thb_hda"],
-            "Coefficient":[1],
+            "Combination":["thb_hda", "thb_hda"],
+            "Coefficient":[1, -51],
+            "Multiplier":1
+        },
+        {
+            "Name":"NO_WLC",
+            "Type":"UNKNOWN",
+            "Hidden":true,
+            "VirtualSensor":true,
+            "Formula":"COUNT_THRESHOLD",
+            "Combination":["WLC_CHECK"],
+            "Coefficient":[-2],
             "Multiplier":1
         },
         {
@@ -755,8 +765,9 @@
             "VirtualSensor":true,
             "TriggerSensor":["north_therm", "cam_therm", "soc_therm", "charge_therm", "disp_therm", "neutral_therm", "quiet_therm", "usb_pwr_therm"],
             "Formula":"WEIGHTED_AVG",
-            "Combination":["VIRTUAL-SKIN-CHARGE", "IS_WLC"],
-            "Coefficient":[1.0, -1000000],
+            "Combination":["VIRTUAL-SKIN-CHARGE"],
+            "Coefficient":["NO_WLC"],
+            "CoefficientType": ["SENSOR"],
             "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,
@@ -1084,8 +1095,8 @@
             "Name":"PARTIAL_SYSTEM_POWER",
             "VirtualRails":true,
             "Formula":"WEIGHTED_AVG",
-            "Combination":["S1S_VDD_CAM", "S2S_VDD_G3D", "S4S_VDD2H_MEM", "S5S_VDDQ_MEM", "S8S_VDD_G3D_L2", "S9S_VDD_AOC", "L2S_PLL_MIPI_UFS", "L21S_VDD2L_MEM", "VSYS_PWR_DISPLAY", "VSYS_PWR_WLAN_BT", "S1M_VDD_MIF", "S2M_VDD_CPUCL2", "S3M_VDD_CPUCL1", "S4M_VDD_CPUCL0", "S5M_VDD_INT", "S6M_LLDO1", "S7M_VDD_TPU", "S8M_LLDO2", "L22M_DISP", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE"],
-            "Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
+            "Combination":["S1S_VDD_CAM", "S2S_VDD_G3D", "S4S_VDD2H_MEM", "S5S_VDDQ_MEM", "S8S_VDD_G3D_L2", "S9S_VDD_AOC", "L2S_PLL_MIPI_UFS", "L21S_VDD2L_MEM", "VSYS_PWR_DISPLAY", "VSYS_PWR_WLAN_BT", "S1M_VDD_MIF", "S2M_VDD_CPUCL2", "S3M_VDD_CPUCL1", "S4M_VDD_CPUCL0", "S5M_VDD_INT", "S6M_LLDO1", "S7M_VDD_TPU", "S8M_LLDO2", "VSYS_PWR_MODEM", "VSYS_PWR_RFFE"],
+            "Coefficient":[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
             "PowerSampleDelay":7000,
             "PowerSampleCount":5
         }
diff --git a/thermal/thermal_info_config_test.h b/thermal/thermal_info_config_test.h
deleted file mode 100644
index 1864420..0000000
--- a/thermal/thermal_info_config_test.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#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