Merge Android 14 QPR2 to AOSP main

Bug: 319669529
Merged-In: Ib4f988604c5d6275a36e6e0431a9c214682c23df
Change-Id: I9d9ac0a8a57e5ce259f7a0c9713c9e0efc481997
This commit is contained in:
Xin Li 2024-03-06 09:29:46 -08:00
commit fdfc8cbe63
8 changed files with 226 additions and 52 deletions

2
OWNERS
View file

@ -1,4 +1,4 @@
per-file powerhint.json = jychen@google.com,jenhaochen@google.com,wvw@google.com,joaodias@google.com 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 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

2
PREUPLOAD.cfg Normal file
View file

@ -0,0 +1,2 @@
[Builtin Hooks]
jsonlint = true

View file

@ -20,6 +20,15 @@ else
TARGET_SCREEN_DENSITY := 420 TARGET_SCREEN_DENSITY := 420
endif endif
RELEASE_GOOGLE_PRODUCT_RADIO_DIR := $(RELEASE_GOOGLE_BLUEJAY_RADIO_DIR)
ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q1
else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/24Q2
else
RELEASE_GOOGLE_PRODUCT_BOOTLOADER_DIR := bootloader/trunk
endif
# Enable load module in parallel # Enable load module in parallel
BOARD_BOOTCONFIG += androidboot.load_modules_parallel=true BOARD_BOOTCONFIG += androidboot.load_modules_parallel=true

View file

@ -14,6 +14,9 @@
# limitations under the License. # 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/bluejay-kernel TARGET_KERNEL_DIR ?= device/google/bluejay-kernel
TARGET_BOARD_KERNEL_HEADERS := device/google/bluejay-kernel/kernel-headers TARGET_BOARD_KERNEL_HEADERS := device/google/bluejay-kernel/kernel-headers
@ -24,23 +27,31 @@ $(call inherit-product-if-exists, vendor/google_devices/bluejay/proprietary/devi
$(call inherit-product-if-exists, vendor/google_devices/bluejay/proprietary/bluejay/device-vendor-bluejay.mk) $(call inherit-product-if-exists, vendor/google_devices/bluejay/proprietary/bluejay/device-vendor-bluejay.mk)
$(call inherit-product-if-exists, vendor/google_devices/bluejay/proprietary/WallpapersBluejay.mk) $(call inherit-product-if-exists, vendor/google_devices/bluejay/proprietary/WallpapersBluejay.mk)
GOODIX_CONFIG_BUILD_VERSION := g7_trusty
DEVICE_PACKAGE_OVERLAYS += device/google/bluejay/bluejay/overlay DEVICE_PACKAGE_OVERLAYS += device/google/bluejay/bluejay/overlay
include device/google/gs101/fingerprint/extension/fingerprint.extension.mk include device/google/gs101/fingerprint/extension/fingerprint.extension.mk
include device/google/bluejay-sepolicy/bluejay-sepolicy.mk include device/google/bluejay-sepolicy/bluejay-sepolicy.mk
include device/google/bluejay/audio/bluejay/audio-tables.mk include device/google/bluejay/audio/bluejay/audio-tables.mk
include device/google/gs101/device-shipping-common.mk include device/google/gs101/device-shipping-common.mk
include device/google/gs101/fingerprint/udfps_common.mk
include device/google/gs101/telephony/pktrouter.mk include device/google/gs101/telephony/pktrouter.mk
include hardware/google/pixel/vibrator/cs40l26/device.mk include hardware/google/pixel/vibrator/cs40l26/device.mk
include device/google/gs-common/bcmbt/bluetooth.mk include device/google/gs-common/bcmbt/bluetooth.mk
include device/google/gs-common/touch/stm/stm11.mk include device/google/gs-common/touch/stm/stm11.mk
ifeq ($(filter factory_bluejay, $(TARGET_PRODUCT)),) # Fingerprint HAL
include device/google/gs101/fingerprint/udfps_shipping.mk GOODIX_CONFIG_BUILD_VERSION := g7_trusty
ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/bluejay/prebuilts/firmware/fingerprint/24Q1
else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/bluejay/prebuilts/firmware/fingerprint/24Q2
else else
include device/google/gs101/fingerprint/udfps_factory.mk PRODUCT_SOONG_NAMESPACES += vendor/google_devices/bluejay/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 endif
# go/lyric-soong-variables # go/lyric-soong-variables
@ -124,7 +135,7 @@ PRODUCT_SOONG_NAMESPACES += \
# Increment the SVN for any official public releases # Increment the SVN for any official public releases
PRODUCT_VENDOR_PROPERTIES += \ PRODUCT_VENDOR_PROPERTIES += \
ro.vendor.build.svn=52 ro.vendor.build.svn=54
# DCK properties based on target # DCK properties based on target
PRODUCT_PROPERTY_OVERRIDES += \ PRODUCT_PROPERTY_OVERRIDES += \
@ -133,6 +144,13 @@ PRODUCT_PROPERTY_OVERRIDES += \
# Trusty liboemcrypto.so # Trusty liboemcrypto.so
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/bluejay/prebuilts PRODUCT_SOONG_NAMESPACES += vendor/google_devices/bluejay/prebuilts
ifneq (,$(filter AP1%,$(RELEASE_PLATFORM_VERSION)))
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/bluejay/prebuilts/trusty/24Q1
else ifneq (,$(filter AP2%,$(RELEASE_PLATFORM_VERSION)))
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/bluejay/prebuilts/trusty/24Q2
else
PRODUCT_SOONG_NAMESPACES += vendor/google_devices/bluejay/prebuilts/trusty/trunk
endif
# Display # Display
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.lbe.supported=1 PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.lbe.supported=1
@ -148,13 +166,13 @@ PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.primarydisplay.lhbm.frames_to_reach
# Bluetooth Tx power caps for bluejay # Bluetooth Tx power caps for bluejay
PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/bluetooth_power_limits.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits.csv \ device/google/bluejay/bluetooth_power_limits.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits.csv \
$(LOCAL_PATH)/bluetooth_power_limits_GB17L_JP.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_JP.csv \ device/google/bluejay/bluetooth_power_limits_GB17L_JP.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_JP.csv \
$(LOCAL_PATH)/bluetooth_power_limits_GX7AS_CA.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_CA.csv \ device/google/bluejay/bluetooth_power_limits_GX7AS_CA.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_CA.csv \
$(LOCAL_PATH)/bluetooth_power_limits_GB62Z_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GB62Z_US.csv \ device/google/bluejay/bluetooth_power_limits_GB62Z_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GB62Z_US.csv \
$(LOCAL_PATH)/bluetooth_power_limits_GX7AS_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GX7AS_US.csv \ device/google/bluejay/bluetooth_power_limits_GX7AS_US.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GX7AS_US.csv \
$(LOCAL_PATH)/bluetooth_power_limits_G1AZG_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G1AZG_EU.csv \ device/google/bluejay/bluetooth_power_limits_G1AZG_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_G1AZG_EU.csv \
$(LOCAL_PATH)/bluetooth_power_limits_GB62Z_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GB62Z_EU.csv device/google/bluejay/bluetooth_power_limits_GB62Z_EU.csv:$(TARGET_COPY_OUT_VENDOR)/etc/bluetooth_power_limits_GB62Z_EU.csv
# Bluetooth # Bluetooth
PRODUCT_PRODUCT_PROPERTIES += \ PRODUCT_PRODUCT_PROPERTIES += \

View file

@ -35,7 +35,7 @@
SuplVersion="2" SuplVersion="2"
SuplMinorVersion="0" SuplMinorVersion="0"
SuplOtdoaCapable="true" SuplOtdoaCapable="true"
SuplOtdoaCapable2="false" SuplOtdoaCapable2="true"
SuplGlonassCapable = "true" SuplGlonassCapable = "true"
SuplGalileoCapable = "true" SuplGalileoCapable = "true"
SuplBdsCapable = "true" SuplBdsCapable = "true"

View file

@ -34,7 +34,7 @@
SuplVersion="2" SuplVersion="2"
SuplMinorVersion="0" SuplMinorVersion="0"
SuplOtdoaCapable="true" SuplOtdoaCapable="true"
SuplOtdoaCapable2="false" SuplOtdoaCapable2="true"
SuplGlonassCapable = "true" SuplGlonassCapable = "true"
SuplGalileoCapable = "true" SuplGalileoCapable = "true"
SuplBdsCapable = "true" SuplBdsCapable = "true"

View file

@ -46,6 +46,16 @@
], ],
"ResetOnInit": true "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", "Name": "CPUMidClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq", "Path": "/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq",
@ -73,6 +83,16 @@
], ],
"ResetOnInit": true "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", "Name": "CPUBigClusterMaxFreq",
"Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq", "Path": "/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq",
@ -100,6 +120,16 @@
], ],
"ResetOnInit": true "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", "Name": "GPUMinFreq",
"Path": "/sys/devices/platform/1c500000.mali/hint_min_freq", "Path": "/sys/devices/platform/1c500000.mali/hint_min_freq",
@ -135,11 +165,22 @@
"Path": "/proc/vendor_sched/dvfs_headroom", "Path": "/proc/vendor_sched/dvfs_headroom",
"Values": [ "Values": [
"1280", "1280",
"1100",
"1100 1078 1024" "1100 1078 1024"
], ],
"DefaultIndex": 0, "DefaultIndex": 0,
"ResetOnInit": true "ResetOnInit": true
}, },
{
"Name": "CPUTaperedDVFSHeadroomEnable",
"Path": "/proc/vendor_sched/tapered_dvfs_headroom_enable",
"Values": [
"0",
"1"
],
"DefaultIndex": 0,
"ResetOnInit": true
},
{ {
"Name": "MIFTargetLoad", "Name": "MIFTargetLoad",
"Path": "/sys/class/devfreq/17000010.devfreq_mif/interactive/target_load", "Path": "/sys/class/devfreq/17000010.devfreq_mif/interactive/target_load",
@ -151,7 +192,7 @@
}, },
{ {
"Name": "TAUClampBoost", "Name": "TAUClampBoost",
"Path": "/proc/vendor_sched/ta_uclamp_min", "Path": "/proc/vendor_sched/groups/ta/uclamp_min",
"Values": [ "Values": [
"692", "692",
"1" "1"
@ -160,7 +201,7 @@
}, },
{ {
"Name": "FGUClampBoost", "Name": "FGUClampBoost",
"Path": "/proc/vendor_sched/fg_uclamp_min", "Path": "/proc/vendor_sched/groups/fg/uclamp_min",
"Values": [ "Values": [
"202", "202",
"0" "0"
@ -169,7 +210,7 @@
}, },
{ {
"Name": "MLUclampBoost", "Name": "MLUclampBoost",
"Path": "/proc/vendor_sched/nnapi_uclamp_min", "Path": "/proc/vendor_sched/groups/nnapi/uclamp_min",
"Values": [ "Values": [
"225", "225",
"640" "640"
@ -188,7 +229,7 @@
}, },
{ {
"Name": "CDPreferIdle", "Name": "CDPreferIdle",
"Path": "/proc/vendor_sched/cam_prefer_idle", "Path": "/proc/vendor_sched/groups/cam/prefer_idle",
"Values": [ "Values": [
"0", "0",
"1" "1"
@ -237,7 +278,7 @@
}, },
{ {
"Name": "TAPreferHighCap", "Name": "TAPreferHighCap",
"Path": "/proc/vendor_sched/ta_prefer_high_cap", "Path": "/proc/vendor_sched/groups/ta/prefer_high_cap",
"Values": [ "Values": [
"1", "1",
"0" "0"
@ -246,7 +287,7 @@
}, },
{ {
"Name": "TAPreferIdle", "Name": "TAPreferIdle",
"Path": "/proc/vendor_sched/ta_prefer_idle", "Path": "/proc/vendor_sched/groups/ta/prefer_idle",
"Values": [ "Values": [
"0", "0",
"1" "1"
@ -255,7 +296,7 @@
}, },
{ {
"Name": "FGPreferIdle", "Name": "FGPreferIdle",
"Path": "/proc/vendor_sched/fg_prefer_idle", "Path": "/proc/vendor_sched/groups/fg/prefer_idle",
"Values": [ "Values": [
"1", "1",
"0" "0"
@ -265,7 +306,7 @@
}, },
{ {
"Name": "CDPreferHighCap", "Name": "CDPreferHighCap",
"Path": "/proc/vendor_sched/cam_prefer_high_cap", "Path": "/proc/vendor_sched/groups/cam/prefer_high_cap",
"Values": [ "Values": [
"1", "1",
"0" "0"
@ -501,7 +542,7 @@
}, },
{ {
"Name": "Dex2oatGroup", "Name": "Dex2oatGroup",
"Path": "/proc/vendor_sched/dex2oat_ug", "Path": "/proc/vendor_sched/groups/dex2oat/ug",
"Values": [ "Values": [
"1", "1",
"0" "0"
@ -547,6 +588,36 @@
"Duration": 5000, "Duration": 5000,
"Value": "1" "Value": "1"
}, },
{
"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", "PowerHint": "LAUNCH",
"Node": "CPUBigClusterMaxFreq", "Node": "CPUBigClusterMaxFreq",
@ -618,6 +689,66 @@
"Duration": 2000, "Duration": 2000,
"Value": "9999999" "Value": "9999999"
}, },
{
"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": "692"
},
{
"PowerHint": "DISPLAY_CHANGE",
"Node": "FGUClampBoost",
"Duration": 5000,
"Value": "202"
},
{
"PowerHint": "DISPLAY_CHANGE",
"Node": "MemFreq",
"Duration": 5000,
"Value": "3172000"
},
{
"PowerHint": "DISPLAY_CHANGE",
"Node": "GPUPowerPolicy",
"Duration": 5000,
"Value": "always_on"
},
{
"PowerHint": "DISPLAY_CHANGE",
"Node": "NPITaskPacking",
"Duration": 5000,
"Value": "0"
},
{ {
"PowerHint": "CPU_LOAD_RESET", "PowerHint": "CPU_LOAD_RESET",
"Node": "MemFreq", "Node": "MemFreq",
@ -1477,6 +1608,36 @@
"Duration": 0, "Duration": 0,
"Value": "400000" "Value": "400000"
}, },
{
"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", "PowerHint": "THERMAL_VIRTUAL-SKIN-HINT_LIGHT",
"Node": "PMU_POLL", "Node": "PMU_POLL",

View file

@ -261,8 +261,8 @@
"VirtualSensor":true, "VirtualSensor":true,
"TriggerSensor":"neutral_therm", "TriggerSensor":"neutral_therm",
"Formula":"MAXIMUM", "Formula":"MAXIMUM",
"Combination":["VIRTUAL-NEUTRAL-SKIN2", "VIRTUAL-NEUTRAL", "VIRTUAL-QUIET-NEUTRAL"], "Combination":["VIRTUAL-SKIN"],
"Coefficient":["1.0", "1.0", "1.0"], "Coefficient":["1.0"],
"HotThreshold":["NAN", 37.0, 43.0, 45.0, 47.0, 52.0, 55.0], "HotThreshold":["NAN", 37.0, 43.0, 45.0, 47.0, 52.0, 55.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.9, 1.9, 1.9], "HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.9, 1.9, 1.9],
"Multiplier":0.001, "Multiplier":0.001,
@ -277,8 +277,8 @@
"VirtualSensor":true, "VirtualSensor":true,
"TriggerSensor":"neutral_therm", "TriggerSensor":"neutral_therm",
"Formula":"MAXIMUM", "Formula":"MAXIMUM",
"Combination":["VIRTUAL-NEUTRAL-SKIN2", "VIRTUAL-NEUTRAL", "VIRTUAL-QUIET-NEUTRAL"], "Combination":["VIRTUAL-SKIN"],
"Coefficient":["1.0", "1.0", "1.0"], "Coefficient":["1.0"],
"HotThreshold":["NAN", 37.0, 39.0, 41.0, 46.5, 52.0, 140.0], "HotThreshold":["NAN", 37.0, 39.0, 41.0, 46.5, 52.0, 140.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.9, 1.9, 1.9], "HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.9, 1.9, 1.9],
"Multiplier":0.001, "Multiplier":0.001,
@ -333,8 +333,8 @@
"VirtualSensor":true, "VirtualSensor":true,
"TriggerSensor":"neutral_therm", "TriggerSensor":"neutral_therm",
"Formula":"MAXIMUM", "Formula":"MAXIMUM",
"Combination":["VIRTUAL-NEUTRAL-SKIN2", "VIRTUAL-NEUTRAL", "VIRTUAL-QUIET-NEUTRAL"], "Combination":["VIRTUAL-SKIN"],
"Coefficient":["1.0", "1.0", "1.0"], "Coefficient":["1.0"],
"HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 52.0, 140.0], "HotThreshold":["NAN", 37.0, 43.0, 45.0, 46.5, 52.0, 140.0],
"HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9], "HotHysteresis":[0.0, 1.9, 1.9, 1.9, 1.4, 1.9, 1.9],
"Multiplier":0.001, "Multiplier":0.001,
@ -397,16 +397,8 @@
"VirtualSensor":true, "VirtualSensor":true,
"TriggerSensor":"neutral_therm", "TriggerSensor":"neutral_therm",
"Formula":"MAXIMUM", "Formula":"MAXIMUM",
"Combination":[ "Combination":["VIRTUAL-SKIN"],
"VIRTUAL-NEUTRAL-SKIN2", "Coefficient":["1.0"],
"VIRTUAL-NEUTRAL",
"VIRTUAL-QUIET-NEUTRAL"
],
"Coefficient":[
"1.0",
"1.0",
"1.0"
],
"HotThreshold":[ "HotThreshold":[
"NAN", "NAN",
"39.0", "39.0",
@ -447,16 +439,8 @@
"VirtualSensor":true, "VirtualSensor":true,
"TriggerSensor":"neutral_therm", "TriggerSensor":"neutral_therm",
"Formula":"MAXIMUM", "Formula":"MAXIMUM",
"Combination":[ "Combination":["VIRTUAL-SKIN"],
"VIRTUAL-NEUTRAL-SKIN2", "Coefficient":["1.0"],
"VIRTUAL-NEUTRAL",
"VIRTUAL-QUIET-NEUTRAL"
],
"Coefficient":[
"1.0",
"1.0",
"1.0"
],
"HotThreshold":[ "HotThreshold":[
"NAN", "NAN",
"NAN", "NAN",
@ -1210,4 +1194,4 @@
} }
} }
} }
} }