Android 15.0.0 Release 6 (AP4A.241205.013)

-----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ1IssQAKCRDorT+BmrEO
 eH2QAJ4sG9Gc7S5h94K3D7N+X74auzh7NgCfY9XbuuDKhWOvXU/s2QSPE7X8XsE=
 =qEFp
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCgA1FiEEHrBYPudH862glXQBzJUERRm+ZmkFAmdY8BYXHG1rYmVzdGFz
 QGxpbmVhZ2Vvcy5vcmcACgkQzJUERRm+ZmmHmRAArVY14Hi/zkCSC9u6i/ko0Oxa
 lrAG8m1vt349tayywRfvxEK2B/iFBJgdpFfTdtXVc1BlD7MGd5BZvlicmQkX81WN
 4Pqgx4wzQMoXVFXvgO7+ByJoCCsKO6AP9D7m/2UdiidvgSOCEA3qtALPl02b9b5P
 fraQA8XI81Q5PnEskvu7V6QVUEwWNCSl3uNhm3EE4AuDTLM+KXvs7agBxSDxIry1
 fy5xbtJXjpk52nKIAAyacgeBs8hecN2KtkDahfE3SZx5Q8bs0rsrR+E2NxeOntu9
 YRBxPwGrxGQBqNuhYw4h0s8IPsqEjpVybT2D/r6m3059VjwWhL6gNdzKcbD+LZ4n
 a5/a+P6Cs787ndrkqkPoMYQVauZdB9ZP13nxRDETiBBD/oZRrU782rC89wFrWpgn
 bNp6dEGmc5NrxcxrCT2x0U3tCTFREwrTYIP5xijsITJYSgsQFm4jwBentLLvm0TA
 NglJ8JzxqTU+4t60qqOqQRDDW9cjcjhic60CXRp+gczj0rsGEfWr/gy4oBaVuLwJ
 WALKgo+dbLXCLja2c174etnBTzjLMYKIcOrB4ncTrJVvVIjZjSigEFHRnY49kg+4
 YlC8Q6ZzFe0SDktRyP/9a/yZG5XeXmzxwNepO1pgDC2cEzdZBICqz7d49US2j891
 ziZVm9BnLfi2UAVczNs=
 =FoIC
 -----END PGP SIGNATURE-----

Merge tag 'android-15.0.0_r6' into staging/lineage-22.0_merge-android-15.0.0_r6

Android 15.0.0 Release 6 (AP4A.241205.013)

# -----BEGIN PGP SIGNATURE-----
#
# iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZ1IssQAKCRDorT+BmrEO
# eH2QAJ4sG9Gc7S5h94K3D7N+X74auzh7NgCfY9XbuuDKhWOvXU/s2QSPE7X8XsE=
# =qEFp
# -----END PGP SIGNATURE-----
# gpg: Signature made Fri Dec  6 00:44:01 2024 EET
# gpg:                using DSA key 4340D13570EF945E83810964E8AD3F819AB10E78
# gpg: Good signature from "The Android Open Source Project <initial-contribution@android.com>" [marginal]
# gpg: initial-contribution@android.com: Verified 2483 signatures in the past
#      3 years.  Encrypted 4 messages in the past 2 years.
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 4340 D135 70EF 945E 8381  0964 E8AD 3F81 9AB1 0E78

# By Peter (YM) (2) and others
# Via Android Build Coastguard Worker (17) and others
* tag 'android-15.0.0_r6':
  Revert "Use mediadrm from private instead of tangorpro"
  Use mediadrm from private instead of tangorpro
  Add SOONG_NAMESPACES for mediaDrm plugin
  Symlink current prebuilt folder to android root
  Delete mapper4 manifest
  thermal: read thermistor temp from sysfs
  thermal:remove unused state2power value
  update OWNERS to include Android.bp
  thermal: Remove bcl related tzones
  tangorpro: Add build_flags based properties for SMR/EMR build
  Adpf:tangorpro: switch to multitier heuristic boost.
  audio: support spatial audio on speaker-safe

Change-Id: I3f4a0b28845fdc26464d1f06cd7c4ba82824d86f
This commit is contained in:
Michael Bestas 2024-12-11 03:51:18 +02:00
commit 58a5a65a9d
9 changed files with 44 additions and 337 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 for Pixel device makefiles, see go/pixel-device-mk-owner-checklist for details.
per-file *.mk,*/BoardConfig.mk=file:device/google/gs-common:main:/MK_OWNERS
per-file *.mk,*/BoardConfig.mk,{**/,}Android.bp=file:device/google/gs-common:main:/MK_OWNERS

View file

@ -187,7 +187,7 @@
<route type="mix" sink="Speaker"
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,ultrasound output,immersive_out"/>
<route type="mix" sink="Speaker Safe"
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,ultrasound output"/>
sources="primary output,deep buffer,raw,compressed_offload,mmap_no_irq_out,voip_rx,ultrasound output,immersive_out"/>
<route type="mix" sink="BT A2DP Out"
sources="primary output,deep buffer,compressed_offload,voip_rx,raw,mmap_no_irq_out,immersive_out"/>
<route type="mix" sink="BT A2DP Headphones"

View file

@ -1,7 +1,11 @@
// ----------------------------------------------------------------------------
// Builds android.hardware.drm-service.castkey
//
// TODO(b/366426322): Merge these targets into `device/google/gs-common`.
soong_namespace {
}
package {
// See: http://go/android-license-faq
// A large-scale-change added 'default_applicable_licenses' to import
@ -32,7 +36,10 @@ cc_defaults {
relative_install_path: "hw",
cflags: ["-Wall", "-Werror"],
cflags: [
"-Wall",
"-Werror",
],
include_dirs: [
"device/google/tangorpro/cast_auth/mediadrm/include",

View file

@ -259,7 +259,10 @@ PRODUCT_VENDOR_PROPERTIES += \
PRODUCT_SOONG_NAMESPACES += \
vendor/lib64
# TODO(b/366426322): Merge CastKey Drm plugin into `device/google/gs-common`.
# CastKey Drm plugin modules
PRODUCT_SOONG_NAMESPACES += \
device/google/tangorpro/cast_auth/mediadrm
PRODUCT_PACKAGES += \
android.hardware.drm-service.castkey
@ -283,6 +286,25 @@ PRODUCT_PROPERTY_OVERRIDES += \
PRODUCT_VENDOR_PROPERTIES += \
persist.vendor.camera.exif_reveal_make_model=true
# Set device family property for SMR
PRODUCT_PROPERTY_OVERRIDES += \
ro.build.device_family=T6P
# Set build properties for SMR builds
ifeq ($(RELEASE_IS_SMR), true)
ifneq (,$(RELEASE_BASE_OS_TANGORPRO))
PRODUCT_BASE_OS := $(RELEASE_BASE_OS_TANGORPRO)
endif
endif
# Set build properties for EMR builds
ifeq ($(RELEASE_IS_EMR), true)
ifneq (,$(RELEASE_BASE_OS_TANGORPRO))
PRODUCT_PROPERTY_OVERRIDES += \
ro.build.version.emergency_base_os=$(RELEASE_BASE_OS_TANGORPRO)
endif
endif
# Audio
PRODUCT_PROPERTY_OVERRIDES += \
ro.audio.multi_usb_mode=true

View file

@ -48,15 +48,6 @@
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.mapper</name>
<transport arch="32+64">passthrough</transport>
<version>4.0</version>
<interface>
<name>IMapper</name>
<instance>default</instance>
</interface>
</hal>
<hal format="hidl">
<name>android.hardware.graphics.composer</name>
<transport>hwbinder</transport>

View file

@ -1632,18 +1632,6 @@
"Duration": 50,
"Value": "1"
},
{
"PowerHint": "THERMAL_FLASH_LED_REDUCE_CRITICAL",
"Node": "LimitFlashCurrent",
"Duration": 0,
"Value": "100"
},
{
"PowerHint": "THERMAL_FLASH_LED_REDUCE_NONE",
"Node": "LimitFlashCurrent",
"Duration": 0,
"Value": "1500"
},
{
"PowerHint": "EXPENSIVE_RENDERING",
"Node": "PowerHALRenderingState",
@ -1894,11 +1882,12 @@
"TargetTimeFactor": 1.0,
"StaleTimeFactor": 15.0,
"HeuristicBoost_On": true,
"HBoostOnMissedCycles": 8,
"HBoostOffMaxAvgRatio": 4.0,
"HBoostOffMissedCycles": 5,
"HBoostPidPuFactor": 0.5,
"HBoostUclampMin": 722,
"HBoostModerateJankThreshold": 2,
"HBoostOffMaxAvgDurRatio": 4.0,
"HBoostSevereJankPidPu": 0.5,
"HBoostSevereJankThreshold": 8,
"HBoostUclampMinCeilingRange": [480, 722],
"HBoostUclampMinFloorRange": [230, 410],
"JankCheckTimeFactor": 1.2,
"LowFrameRateThreshold": 25,
"MaxRecordsNum": 300

View file

@ -38,6 +38,7 @@ BOARD_KERNEL_CMDLINE += swiotlb=noforce
include device/google/gs201/BoardConfig-common.mk
-include vendor/google_devices/gs201/prebuilts/BoardConfigVendor.mk
include device/google/gs-common/check_current_prebuilt/check_current_prebuilt.mk
-include vendor/google_devices/tangorpro/proprietary/BoardConfigVendor.mk
include device/google/tangorpro/sepolicy/tangorpro-sepolicy.mk
include device/google/tangorpro/wifi/BoardConfig-wifi.mk

View file

@ -8,21 +8,18 @@
{
"Name":"neutral_therm",
"Type":"UNKNOWN",
"TempPath":"/dev/thermal/tz-by-name/neutral_therm/tz_temp",
"Multiplier":0.001
},
{
"Name":"quiet_therm",
"Type":"UNKNOWN",
"HotThreshold":["NAN", "35.0", "NAN", "NAN", "NAN", "NAN", "NAN"],
"TempPath":"/dev/thermal/tz-by-name/quiet_therm/tz_temp",
"Multiplier":0.001
},
{
"Name":"charger_skin_therm",
"Type":"UNKNOWN",
"HotThreshold":["NAN", "39.0", "NAN", "NAN", "NAN", "NAN", "NAN"],
"TempPath":"/dev/thermal/tz-by-name/charger_skin_therm/tz_temp",
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000
@ -30,14 +27,12 @@
{
"Name":"disp_therm",
"Type":"UNKNOWN",
"TempPath":"/dev/thermal/tz-by-name/disp_therm/tz_temp",
"Multiplier":0.001
},
{
"Name":"usb_pwr_therm",
"Type":"UNKNOWN",
"HotThreshold":["NAN", "37.0", "NAN", "NAN", "NAN", "NAN", "NAN"],
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm/tz_temp",
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000
@ -45,7 +40,6 @@
{
"Name":"usb_pwr_therm2",
"Type":"UNKNOWN",
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm2/tz_temp",
"Multiplier":0.001
},
{

View file

@ -4,7 +4,6 @@
"Name":"neutral_therm",
"Type":"UNKNOWN",
"HotThreshold":["NAN", "50.0", "NAN", "NAN", "NAN", "NAN", "NAN"],
"TempPath":"/dev/thermal/tz-by-name/neutral_therm/tz_temp",
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000
@ -12,14 +11,12 @@
{
"Name":"quiet_therm",
"Type":"UNKNOWN",
"TempPath":"/dev/thermal/tz-by-name/quiet_therm/tz_temp",
"Multiplier":0.001
},
{
"Name":"charger_skin_therm",
"Type":"UNKNOWN",
"HotThreshold":["NAN", "39.0", "NAN", "NAN", "NAN", "NAN", "NAN"],
"TempPath":"/dev/thermal/tz-by-name/charger_skin_therm/tz_temp",
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000
@ -28,7 +25,6 @@
"Name":"disp_therm",
"Type":"UNKNOWN",
"HotThreshold":["NAN", "37.0", "NAN", "NAN", "NAN", "NAN", "NAN"],
"TempPath":"/dev/thermal/tz-by-name/disp_therm/tz_temp",
"Multiplier":0.001,
"PollingDelay":60000,
"PassiveDelay":7000
@ -42,7 +38,6 @@
"Name":"usb_pwr_therm",
"Type":"UNKNOWN",
"HotThreshold":["NAN", "37.0", "NAN", "NAN", "NAN", "NAN", "NAN"],
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm/tz_temp",
"Multiplier":0.001,
"PollingDelay":300000,
"PassiveDelay":7000
@ -50,7 +45,6 @@
{
"Name":"usb_pwr_therm2",
"Type":"UNKNOWN",
"TempPath":"/dev/thermal/tz-by-name/usb_pwr_therm2/tz_temp",
"Multiplier":0.001
},
{
@ -343,319 +337,28 @@
"Name":"ISP",
"Type":"NPU",
"Multiplier":0.001
},
{
"Name":"battery_cycle",
"Type":"BCL_VOLTAGE",
"Multiplier":1
},
{
"Name":"critical-battery-cell",
"Type":"BCL_VOLTAGE",
"VirtualSensor":true,
"Formula":"COUNT_THRESHOLD",
"TriggerSensor": "vdroop1",
"Combination":["battery", "battery_cycle", "vdroop1"],
"Coefficient":[-10000, 400, 1000],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", "NAN", 3.00, "NAN"],
"Multiplier":1,
"Monitor":true
},
{
"Name":"FLASH_LED_REDUCE",
"Type":"UNKNOWN",
"VirtualSensor":true,
"Formula":"COUNT_THRESHOLD",
"TriggerSensor": "vdroop1",
"Combination":["battery", "battery_cycle", "vdroop1"],
"Coefficient":[-10000, 400, 1000],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 3.00, "NAN", "NAN"],
"Multiplier":1,
"Monitor":true,
"SendPowerHint":true
},
{
"Name":"soc",
"Type":"BCL_PERCENTAGE",
"HotThreshold":["NAN", "NAN", 70, "NAN", "NAN", "NAN", "NAN"],
"Multiplier":1
},
{
"Name":"BCL_TPU_LOW_TEMP",
"Type":"BCL_CURRENT",
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"TriggerSensor": "ocp_tpu",
"Combination":["ocp_tpu", "battery"],
"Coefficient":[1, -10],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 13000, "NAN", "NAN"],
"Multiplier":1,
"Monitor":true,
"BindedCdevInfo": [
{
"CdevRequest": "tpu_cooling",
"LimitInfo": [0, 0, 0, 0, 7, 7, 7]
}
]
},
{
"Name":"BCL_GPU_LOW_TEMP",
"Type":"BCL_CURRENT",
"VirtualSensor":true,
"Formula":"WEIGHTED_AVG",
"TriggerSensor": "ocp_gpu",
"Combination":["ocp_gpu", "battery"],
"Coefficient":[1, -10],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 13000, "NAN", "NAN"],
"Multiplier":1,
"Monitor":true,
"BindedCdevInfo": [
{
"CdevRequest": "thermal-gpufreq-0",
"LimitInfo": [0, 0, 0, 0, 11, 11, 11]
}
]
},
{
"Name":"BCL_BATOILO_GPU_LOW_TEMP",
"Type":"BCL_CURRENT",
"VirtualSensor":true,
"Formula":"COUNT_THRESHOLD",
"TriggerSensor": "batoilo",
"Combination":["batoilo", "ocp_gpu", "battery"],
"Coefficient":[5000, 12000, -1000 ],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 3.0, "NAN", "NAN"],
"Multiplier":1,
"Monitor":true,
"BindedCdevInfo": [
{
"CdevRequest": "thermal-gpufreq-0",
"LimitInfo": [0, 0, 0, 0, 11, 11, 11]
}
]
},
{
"Name":"BCL_BATOILO_TPU_LOW_TEMP",
"Type":"BCL_CURRENT",
"VirtualSensor":true,
"Formula":"COUNT_THRESHOLD",
"TriggerSensor": "batoilo",
"Combination":["batoilo", "ocp_tpu", "battery"],
"Coefficient":[5000, 12000, -1000],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 3.0, "NAN", "NAN"],
"Multiplier":1,
"Monitor":true,
"BindedCdevInfo": [
{
"CdevRequest": "tpu_cooling",
"LimitInfo": [0, 0, 0, 0, 7, 7, 7]
}
]
},
{
"Name":"BCL_BATOILO_GPU",
"Type":"BCL_CURRENT",
"VirtualSensor":true,
"Formula":"COUNT_THRESHOLD",
"TriggerSensor": "batoilo",
"Combination":["batoilo", "ocp_gpu"],
"Coefficient":[5000, 12000],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 2.0, "NAN", "NAN"],
"Multiplier":1,
"Monitor":true,
"BindedCdevInfo": [
{
"CdevRequest": "thermal-gpufreq-0",
"LimitInfo": [0, 0, 0, 0, 5, 5, 5]
}
]
},
{
"Name":"BCL_BATOILO_TPU",
"Type":"BCL_CURRENT",
"VirtualSensor":true,
"Formula":"COUNT_THRESHOLD",
"TriggerSensor": "batoilo",
"Combination":[
"batoilo",
"ocp_tpu"
],
"Coefficient":[5000, 12000],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 2.0, "NAN", "NAN"],
"Multiplier":1,
"Monitor":true,
"BindedCdevInfo": [
{
"CdevRequest": "tpu_cooling",
"LimitInfo": [0, 0, 0, 0, 6, 6, 6]
}
]
},
{
"Name":"batoilo",
"Type":"BCL_CURRENT",
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 5000, "NAN", "NAN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"Monitor":true,
"PollingDelay":0,
"PassiveDelay":60000,
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-2",
"LimitInfo": [0, 0, 0, 0, 7, 7, 7]
},
{
"CdevRequest": "thermal-gpufreq-0",
"LimitInfo": [0, 0, 0, 0, 4, 4, 4]
},
{
"CdevRequest": "tpu_cooling",
"LimitInfo": [0, 0, 0, 0, 5, 5, 5]
}
]
},
{
"Name":"BCL_AUDIO_BAACL",
"Type":"BCL_VOLTAGE",
"VirtualSensor":true,
"Formula":"COUNT_THRESHOLD",
"TriggerSensor": "soc",
"Combination":["battery", "soc"],
"Coefficient":[-45000, 70],
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 2.0, "NAN", "NAN"],
"Multiplier":1,
"Monitor":true
},
{
"Name":"vdroop1",
"Type":"BCL_VOLTAGE",
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 1000, "NAN", "NAN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"Monitor":true,
"PollingDelay":0,
"PassiveDelay":60000,
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-2",
"LimitInfo": [0, 0, 0, 0, 7, 7, 7]
},
{
"CdevRequest": "thermal-gpufreq-0",
"LimitInfo": [0, 0, 0, 0, 3, 3, 3]
},
{
"CdevRequest": "tpu_cooling",
"LimitInfo": [0, 0, 0, 0, 3, 3, 3]
}
]
},
{
"Name":"vdroop2",
"Type":"BCL_VOLTAGE",
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 1200, "NAN", "NAN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"Monitor":true,
"PollingDelay":0,
"PassiveDelay":60000,
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-2",
"LimitInfo": [0, 0, 0, 0, 7, 7, 7]
},
{
"CdevRequest": "thermal-gpufreq-0",
"LimitInfo": [0, 0, 0, 0, 5, 5, 5]
},
{
"CdevRequest": "tpu_cooling",
"LimitInfo": [0, 0, 0, 0, 3, 3, 3]
}
]
},
{
"Name":"smpl_gm",
"Type":"BCL_VOLTAGE",
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 1100, "NAN", "NAN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"Monitor":true,
"PollingDelay":0,
"PassiveDelay":60000,
"BindedCdevInfo": [
{
"CdevRequest": "thermal-cpufreq-2",
"LimitInfo": [0, 0, 0, 0, 7, 7, 7]
},
{
"CdevRequest": "thermal-gpufreq-0",
"LimitInfo": [0, 0, 0, 0, 4, 4, 4]
},
{
"CdevRequest": "tpu_cooling",
"LimitInfo": [0, 0, 0, 0, 3, 3, 3]
}
]
},
{
"Name":"ocp_cpu1",
"Type":"BCL_CURRENT",
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 8000, "NAN", "NAN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"Hidden":true
},
{
"Name":"ocp_cpu2",
"Type":"BCL_CURRENT",
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 12000, "NAN", "NAN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"Hidden":true
},
{
"Name":"ocp_tpu",
"Type":"BCL_CURRENT",
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 12000, "NAN", "NAN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"Hidden":true
},
{
"Name":"ocp_gpu",
"Type":"BCL_CURRENT",
"HotThreshold":["NAN", "NAN", "NAN", "NAN", 12000, "NAN", "NAN"],
"HotHysteresis":[0.0, 0.0, 0.0, 0.0, 100, 0.0, 0.0],
"Multiplier":1,
"Hidden":true
}
],
"CoolingDevices":[
{
"Name":"thermal-cpufreq-0",
"Type":"CPU",
"WritePath":"/dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote",
"State2Power":[1100, 1050, 1000, 950, 900, 850, 800, 750, 700, 650, 600]
"WritePath":"/dev/thermal/cdev-by-name/thermal-cpufreq-0/user_vote"
},
{
"Name":"thermal-cpufreq-1",
"Type":"CPU",
"WritePath":"/dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote",
"State2Power":[1400, 1350, 1300, 1250, 1200, 1150, 1100, 1050, 1000, 950, 900, 850, 800, 750]
"WritePath":"/dev/thermal/cdev-by-name/thermal-cpufreq-1/user_vote"
},
{
"Name":"thermal-cpufreq-2",
"Type":"CPU",
"WritePath":"/dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote",
"State2Power":[1450, 1400, 1350, 1300, 1250, 1200, 1150, 1100, 1050, 1000, 950, 900, 850, 800, 750]
"WritePath":"/dev/thermal/cdev-by-name/thermal-cpufreq-2/user_vote"
},
{
"Name":"thermal-gpufreq-0",
"Type":"GPU",
"WritePath":"/dev/thermal/cdev-by-name/thermal-gpufreq-0/user_vote",
"State2Power":[4371, 3543, 3085, 2293, 1927, 1707, 1394, 1171, 967, 768, 592, 433]
"WritePath":"/dev/thermal/cdev-by-name/thermal-gpufreq-0/user_vote"
},
{
"Name":"tpu_cooling",