summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-11-28 23:27:17 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-11-28 23:27:17 +0000
commit69ef91719eaaeb56e822676db399af6f5cbb517c (patch)
treede38e07982d873ff4f3408f14e14f5b14024dbe6
parent90ff559173b147a631f2282c3c187a1c3e3e5e8d (diff)
parentd922c8a7c9c778f1ce0fca42d8fde7f6428099fd (diff)
downloaddevice_google_wahoo-69ef91719eaaeb56e822676db399af6f5cbb517c.tar.gz
device_google_wahoo-69ef91719eaaeb56e822676db399af6f5cbb517c.tar.bz2
device_google_wahoo-69ef91719eaaeb56e822676db399af6f5cbb517c.zip
Change-Id: I8ce9230c0685d7805f6a4aa30aa8a7d4c79aaf46
-rw-r--r--Android.bp1
-rw-r--r--android_filesystem_config.h5
-rw-r--r--audio_policy_configuration.xml4
-rw-r--r--default-permissions.xml4
-rwxr-xr-xdevice.mk55
-rwxr-xr-xdumpstate/DumpstateDevice.cpp4
-rw-r--r--init.hardware.diag.rc.userdebug14
-rw-r--r--init.hardware.rc17
-rw-r--r--init.hardware.usb.rc10
-rwxr-xr-xinit.insmod.sh6
-rw-r--r--manifest.xml11
-rw-r--r--media_codecs_performance.xml170
-rwxr-xr-xoverlay/frameworks/base/core/res/res/values/config.xml2
-rw-r--r--p2p_supplicant_overlay.conf1
-rwxr-xr-x[-rw-r--r--]sec_config2
-rw-r--r--sepolicy/private/seapp_contexts3
-rw-r--r--sepolicy/vendor/certs/tango.x509.pem39
-rw-r--r--sepolicy/vendor/device.te1
-rw-r--r--sepolicy/vendor/file.te1
-rw-r--r--sepolicy/vendor/file_contexts1
-rw-r--r--sepolicy/vendor/genfs_contexts1
-rw-r--r--sepolicy/vendor/hal_camera_default.te1
-rw-r--r--sepolicy/vendor/hal_dumpstate_impl.te6
-rw-r--r--sepolicy/vendor/hal_thermal_default.te4
-rw-r--r--sepolicy/vendor/logger_app.te1
-rw-r--r--sepolicy/vendor/property.te1
-rw-r--r--sepolicy/vendor/property_contexts1
-rw-r--r--sepolicy/vendor/seapp_contexts4
-rw-r--r--sepolicy/vendor/ssr_setup.te4
-rw-r--r--sepolicy/vendor/system_app.te5
-rw-r--r--sepolicy/vendor/thermal-engine.te7
-rw-r--r--sepolicy/vendor/wcnss_filter.te7
-rw-r--r--system.prop20
-rw-r--r--thermal/Android.bp20
-rw-r--r--thermal/Android.mk37
-rw-r--r--thermal/Thermal.cpp68
-rw-r--r--thermal/Thermal.h25
-rw-r--r--thermal/android.hardware.thermal@1.0-service.wahoo.rc4
-rw-r--r--thermal/service.cpp63
-rw-r--r--thermal/thermal-helper.cpp14
-rw-r--r--thermal/thermal-helper.h10
41 files changed, 367 insertions, 287 deletions
diff --git a/Android.bp b/Android.bp
index 6efaac11..9f2d303a 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,4 +1,5 @@
subdirs = [
+ "thermal",
"vr",
"vibrator",
"wifi_offload",
diff --git a/android_filesystem_config.h b/android_filesystem_config.h
index 775a7171..a580f881 100644
--- a/android_filesystem_config.h
+++ b/android_filesystem_config.h
@@ -21,9 +21,8 @@
#include <private/android_filesystem_config.h>
-static const struct fs_path_config android_device_dirs[] = {
- { 00771, AID_SYSTEM, AID_SYSTEM, 0, "bt_firmware"},
-};
+#define NO_ANDROID_FILESYSTEM_CONFIG_DEVICE_DIRS
+/* static const struct fs_path_config android_device_dirs[] = { }; */
/* Rules for files.
** These rules are applied based on "first match", so they
diff --git a/audio_policy_configuration.xml b/audio_policy_configuration.xml
index d74d187d..07daa6c8 100644
--- a/audio_policy_configuration.xml
+++ b/audio_policy_configuration.xml
@@ -69,9 +69,9 @@
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="voip_rx" role="source"
- flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_VOIP_RX">
+ flags="AUDIO_OUTPUT_FLAG_VOIP_RX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
- samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO"/>
+ samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_8_24_BIT"
diff --git a/default-permissions.xml b/default-permissions.xml
index 92b0613b..5c373157 100644
--- a/default-permissions.xml
+++ b/default-permissions.xml
@@ -53,8 +53,12 @@
<exception
package="com.verizon.mips.services">
+ <!-- Call -->
+ <permission name="android.permission.PROCESS_OUTGOING_CALLS" fixed="false"/>
<!-- Phone -->
<permission name="android.permission.READ_PHONE_STATE" fixed="false"/>
+ <!-- SMS -->
+ <permission name="android.permission.RECEIVE_SMS" fixed="false"/>
</exception>
<exception
diff --git a/device.mk b/device.mk
index b860a82f..1d52ca2b 100755
--- a/device.mk
+++ b/device.mk
@@ -21,6 +21,10 @@ PRODUCT_COPY_FILES += \
device/google/wahoo/default-permissions.xml:$(TARGET_COPY_OUT_VENDOR)/etc/default-permissions/default-permissions.xml \
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml
+# Set the SVN for the targeted MR release
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.vendor.build.svn=4
+
# Enforce privapp-permissions whitelist
PRODUCT_PROPERTY_OVERRIDES += \
ro.control_privapp_permissions=enforce
@@ -67,7 +71,9 @@ PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/init.qcom.devstart.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qcom.devstart.sh \
$(LOCAL_PATH)/init.qcom.ipastart.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.qcom.ipastart.sh \
$(LOCAL_PATH)/init.insmod.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.insmod.sh \
- $(LOCAL_PATH)/init.ramoops.sh:$(TARGET_COPY_OUT_SYSTEM)/bin/init.ramoops.sh
+ $(LOCAL_PATH)/init.ramoops.sh:$(TARGET_COPY_OUT_SYSTEM)/bin/init.ramoops.sh \
+ frameworks/native/services/vr/virtual_touchpad/idc/vr-virtual-touchpad-0.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/vr-virtual-touchpad-0.idc \
+ frameworks/native/services/vr/virtual_touchpad/idc/vr-virtual-touchpad-1.idc:$(TARGET_COPY_OUT_VENDOR)/usr/idc/vr-virtual-touchpad-1.idc
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES += \
@@ -181,6 +187,10 @@ PRODUCT_PROPERTY_OVERRIDES += \
PRODUCT_PROPERTY_OVERRIDES += \
ro.opengles.version=196610
+# b/68017541
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.qcom.adreno.qgl.ShaderStorageImageExtendedFormats=0
+
# Enable camera EIS3.0
PRODUCT_PROPERTY_OVERRIDES += \
persist.camera.is_type=5 \
@@ -207,6 +217,7 @@ PRODUCT_PROPERTY_OVERRIDES += \
persist.radio.data_ltd_sys_ind=1 \
persist.radio.is_wps_enabled=true \
persist.radio.videopause.mode=1 \
+ persist.radio.sap_silent_pin=1 \
persist.radio.sib16_support=1 \
persist.radio.data_con_rprt=true \
persist.radio.always_send_plmn=true \
@@ -221,6 +232,29 @@ PRODUCT_PROPERTY_OVERRIDES += \
PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.extension_library=libqti-perfd-client.so
+# settings to enable Device Orientation Sensors
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.qti.sensors.dev_ori=true
+
+# settings to disable unused secondary wakeup
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.qti.sensors.wu=false
+
+# settings to disable unused algorithms
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.qti.sdk.sensors.gestures=false \
+ ro.qti.sensors.amd=false \
+ ro.qti.sensors.cmc=false \
+ ro.qti.sensors.facing=false \
+ ro.qti.sensors.pedometer=false \
+ ro.qti.sensors.rmd=false \
+ ro.qti.sensors.scrn_ortn=false
+
+# use SMGR supplied version of step detector and counter
+PRODUCT_PROPERTY_OVERRIDES += \
+ ro.qti.sensors.step_counter=false \
+ ro.qti.sensors.step_detector=false
+
# camera gyro and laser sensor
PRODUCT_PROPERTY_OVERRIDES += \
persist.camera.gyro.android=20 \
@@ -278,11 +312,6 @@ PRODUCT_PACKAGES += \
android.hardware.bluetooth@1.0-impl \
android.hardware.bluetooth@1.0-service
-# Neuralnetworks HAL
-PRODUCT_PACKAGES += \
- android.hardware.neuralnetworks@1.0-impl-hvx \
- android.hardware.neuralnetworks@1.0-service-hvx
-
# DRM HAL
PRODUCT_PACKAGES += \
android.hardware.drm@1.0-impl \
@@ -353,7 +382,7 @@ PRODUCT_PACKAGES += \
# Thermal packages
PRODUCT_PACKAGES += \
- android.hardware.thermal@1.0-service.wahoo
+ android.hardware.thermal@1.1-impl-wahoo
#GNSS HAL
PRODUCT_PACKAGES += \
@@ -432,10 +461,6 @@ PRODUCT_COPY_FILES += \
# PRODUCT_COPY_FILES += \
# frameworks/native/data/etc/android.hardware.audio.pro.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.audio.pro.xml
-# Thermal packages
-PRODUCT_PACKAGES += \
- thermal.default
-
ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_PACKAGES += \
tinyplay \
@@ -581,6 +606,14 @@ PRODUCT_PROPERTY_OVERRIDES += \
PRODUCT_PROPERTY_OVERRIDES += \
persist.camera.perfd.enable=true
+# Enable Gcam FD Ensemble
+PRODUCT_PROPERTY_OVERRIDES += \
+ persist.camera.gcam.fd.ensemble=1
+
# Preopt SystemUI
PRODUCT_DEXPREOPT_SPEED_APPS += \
SystemUIGoogle
+
+# audio effects config
+PRODUCT_PROPERTY_OVERRIDES += \
+ fmas.hdph_sgain=0
diff --git a/dumpstate/DumpstateDevice.cpp b/dumpstate/DumpstateDevice.cpp
index 2e908638..efcf8bcf 100755
--- a/dumpstate/DumpstateDevice.cpp
+++ b/dumpstate/DumpstateDevice.cpp
@@ -182,6 +182,10 @@ Return<void> DumpstateDevice::dumpstateBoard(const hidl_handle& handle) {
DumpFileToFd(fd, "SoC serial number", "/sys/devices/soc0/serial_number");
DumpFileToFd(fd, "CPU present", "/sys/devices/system/cpu/present");
DumpFileToFd(fd, "CPU online", "/sys/devices/system/cpu/online");
+ DumpFileToFd(fd, "UFS model", "/sys/block/sda/device/model");
+ DumpFileToFd(fd, "UFS rev", "/sys/block/sda/device/rev");
+ DumpFileToFd(fd, "UFS size", "/sys/block/sda/size");
+ RunCommandToFd(fd, "UFS health", {"/vendor/bin/sh", "-c", "for f in $(find /sys/kernel/debug/ufshcd0 -type f); do if [[ -r $f && -f $f ]]; then echo --- $f; cat $f; fi; done"});
DumpFileToFd(fd, "INTERRUPTS", "/proc/interrupts");
DumpFileToFd(fd, "RPM Stats", "/d/rpm_stats");
DumpFileToFd(fd, "Power Management Stats", "/d/rpm_master_stats");
diff --git a/init.hardware.diag.rc.userdebug b/init.hardware.diag.rc.userdebug
index 16d7e834..a2835567 100644
--- a/init.hardware.diag.rc.userdebug
+++ b/init.hardware.diag.rc.userdebug
@@ -384,3 +384,17 @@ service cnss_diag_txt /vendor/bin/cnss_diag -s -f -m /data/vendor/wifi/cnss_diag
on property:debug.htc.ramdump.crash=true
write /proc/sysrq-trigger "c"
+
+on property:sys.logger.bluetooth=true
+ setprop persist.service.bdroid.snooplog true
+ setprop persist.service.bdroid.fwsnoop true
+
+on property:sys.logger.bluetooth=false
+ setprop persist.service.bdroid.snooplog false
+ setprop persist.service.bdroid.fwsnoop false
+
+on property:persist.bluetooth.btsnoopenable=true
+ setprop persist.service.bdroid.soclog true
+
+on property:persist.bluetooth.btsnoopenable=false
+ setprop persist.service.bdroid.soclog false
diff --git a/init.hardware.rc b/init.hardware.rc
index 4ffe8b0a..8ab2ba29 100644
--- a/init.hardware.rc
+++ b/init.hardware.rc
@@ -230,6 +230,7 @@ on property:sys.user.0.ce_available=true
on property:sys.ramoops.decrypted=true
mount pstore pstore /sys/fs/pstore
+ chown system log /sys/fs/pstore
chown system log /sys/fs/pstore/console-ramoops
chmod 0440 /sys/fs/pstore/console-ramoops
chown system log /sys/fs/pstore/console-ramoops-0
@@ -582,6 +583,19 @@ on property:sys.boot_completed=1
write /dev/cpuset/application/background/cpus 0-1
write /dev/cpuset/application/cpus 0-1,4-5
+ # UFS health
+ chmod 755 /sys/kernel/debug/ufshcd0
+ chown 644 /sys/kernel/debug/ufshcd0/err_state
+ chmod 644 /sys/kernel/debug/ufshcd0/power_mode
+ chmod 644 /sys/kernel/debug/ufshcd0/host_regs
+ chmod 644 /sys/kernel/debug/ufshcd0/show_hba
+ chmod 644 /sys/kernel/debug/ufshcd0/dump_device_desc
+ chmod 644 /sys/kernel/debug/ufshcd0/dump_health_desc
+ chmod 755 /sys/kernel/debug/ufshcd0/stats
+ chmod 644 /sys/kernel/debug/ufshcd0/stats/req_stats
+ chmod 644 /sys/kernel/debug/ufshcd0/stats/query_stats
+ chmod 644 /sys/kernel/debug/ufshcd0/stats/err_stats
+
on property:init.svc.per_mgr=running
start per_proxy
@@ -609,9 +623,8 @@ service ss_ramdump /vendor/bin/subsystem_ramdump
on property:persist.sys.ssr.enable_ramdumps=1
write /sys/module/subsystem_restart/parameters/enable_ramdumps 1
- mkdir /data/vendor/ssrdump 761 root system
+ mkdir /data/vendor/ssrdump 771 root system
mkdir /data/vendor/ramdump 771 root system
- mkdir /data/vendor/ramdump/bluetooth 771 root system
start ss_ramdump
on property:persist.sys.ssr.enable_ramdumps=0
diff --git a/init.hardware.usb.rc b/init.hardware.usb.rc
index 7b8b6924..0ecc976e 100644
--- a/init.hardware.usb.rc
+++ b/init.hardware.usb.rc
@@ -39,6 +39,7 @@ on boot
mkdir /config/usb_gadget/g1/configs/b.1 0770 shell shell
mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770 shell shell
write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
+ write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
mkdir /dev/usb-ffs 0775 shell shell
mkdir /dev/usb-ffs/adb 0770 shell shell
mount functionfs adb /dev/usb-ffs/adb uid=2000,gid=2000
@@ -50,15 +51,22 @@ on boot
setprop sys.usb.configfs 1
setprop sys.usb.controller "a800000.dwc3"
write /sys/module/libcomposite/parameters/disable_l1_for_hs "y"
+ symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
+ write /config/usb_gadget/g1/functions/gsi.rndis/rndis_wceis 1
+
+on property:sys.usb.config=none && property:sys.usb.configfs=1
+ write /config/usb_gadget/g1/os_desc/use 0
on property:sys.usb.ffs.mtp.ready=1 && property:sys.usb.config=mtp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x4ee1
+ write /config/usb_gadget/g1/os_desc/use 1
symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
on property:sys.usb.ffs.ready=1 && property:sys.usb.ffs.mtp.ready=1 && property:sys.usb.config=mtp,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x4ee2
+ write /config/usb_gadget/g1/os_desc/use 1
symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
on property:sys.usb.config=rndis && property:sys.usb.configfs=1
@@ -74,11 +82,13 @@ on property:sys.usb.ffs.ready=1 && property:sys.usb.config=rndis,adb && property
on property:sys.usb.ffs.mtp.ready=1 && property:sys.usb.config=ptp && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x4ee5
+ write /config/usb_gadget/g1/os_desc/use 1
symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
on property:sys.usb.ffs.ready=1 && property:sys.usb.ffs.mtp.ready=1 && property:sys.usb.config=ptp,adb && property:sys.usb.configfs=1
write /config/usb_gadget/g1/idVendor 0x18d1
write /config/usb_gadget/g1/idProduct 0x4ee6
+ write /config/usb_gadget/g1/os_desc/use 1
symlink /config/usb_gadget/g1/functions/ffs.mtp /config/usb_gadget/g1/configs/b.1/f1
on property:sys.usb.config=adb && property:sys.usb.configfs=1
diff --git a/init.insmod.sh b/init.insmod.sh
index d98037cf..46e9363b 100755
--- a/init.insmod.sh
+++ b/init.insmod.sh
@@ -7,7 +7,11 @@
### ... ###
#########################################
-cfg_file="/vendor/etc/init.insmod.cfg"
+if [[ -e "/vendor/etc/init.insmod_charger.cfg" && "$(getprop ro.boot.mode)" == "charger" ]]; then
+ cfg_file="/vendor/etc/init.insmod_charger.cfg"
+else
+ cfg_file="/vendor/etc/init.insmod.cfg"
+fi
if [ -f $cfg_file ]; then
while IFS=" " read -r action name
diff --git a/manifest.xml b/manifest.xml
index b3868372..c553bb36 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -190,15 +190,6 @@
</interface>
</hal>
<hal format="hidl">
- <name>android.hardware.neuralnetworks</name>
- <transport>hwbinder</transport>
- <version>1.0</version>
- <interface>
- <name>IDevice</name>
- <instance>hvx</instance>
- </interface>
- </hal>
- <hal format="hidl">
<name>android.hardware.nfc</name>
<transport>hwbinder</transport>
<version>1.0</version>
@@ -295,7 +286,7 @@
<hal format="hidl">
<name>android.hardware.thermal</name>
<transport>hwbinder</transport>
- <version>1.0</version>
+ <version>1.1</version>
<interface>
<name>IThermal</name>
<instance>default</instance>
diff --git a/media_codecs_performance.xml b/media_codecs_performance.xml
index 2be2167f..7f1b2545 100644
--- a/media_codecs_performance.xml
+++ b/media_codecs_performance.xml
@@ -14,138 +14,138 @@
limitations under the License.
-->
-<!-- Generated file for wahoo using measurements between OPM1.170803.002/OPD1.170810.002 and OPM1.170904.001 -->
+<!-- Generated file for wahoo using measurements between OPM1.170815.001 and OPM1.170912.002 -->
<MediaCodecs>
+ <!-- Measurements between OPD1.170804.003 and OPM1.170908.002 -->
<Encoders>
<MediaCodec name="OMX.qcom.video.encoder.h263" type="video/3gpp" update="true">
- <Limit name="measured-frame-rate-176x144" range="391-391" /> <!-- N=224 v98%=1.1 -->
- <Limit name="measured-frame-rate-352x288" range="417-426" /> <!-- N=224 v98%=1.2 -->
+ <Limit name="measured-frame-rate-176x144" range="390-390" /> <!-- N=228 v98%=1.2 -->
+ <Limit name="measured-frame-rate-352x288" range="416-424" /> <!-- N=228 v98%=1.2 -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.avc" type="video/avc" update="true">
- <Limit name="measured-frame-rate-320x240" range="427-431" /> <!-- N=224 v98%=1.2 -->
- <Limit name="measured-frame-rate-720x480" range="167-167" /> <!-- N=224 v98%=1.2 -->
- <Limit name="measured-frame-rate-1280x720" range="88-88" /> <!-- N=222 v98%=1.1 -->
- <Limit name="measured-frame-rate-1920x1080" range="31-31" /> <!-- N=224 v98%=1.2 -->
+ <Limit name="measured-frame-rate-320x240" range="427-431" /> <!-- N=228 v98%=1.2 -->
+ <Limit name="measured-frame-rate-720x480" range="168-168" /> <!-- N=228 v98%=1.2 -->
+ <Limit name="measured-frame-rate-1280x720" range="88-88" /> <!-- N=226 v98%=1.1 -->
+ <Limit name="measured-frame-rate-1920x1080" range="31-31" /> <!-- N=228 v98%=1.2 -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.hevc" type="video/hevc" update="true">
- <Limit name="measured-frame-rate-320x240" range="444-452" /> <!-- N=224 v98%=1.2 -->
- <Limit name="measured-frame-rate-720x480" range="176-176" /> <!-- N=224 v98%=1.2 -->
- <Limit name="measured-frame-rate-1280x720" range="124-125" /> <!-- N=224 v98%=1.1 -->
- <Limit name="measured-frame-rate-1920x1080" range="53-53" /> <!-- N=224 v98%=1.1 -->
- <Limit name="measured-frame-rate-3840x2160" range="21-21" /> <!-- N=224 v98%=1.3 -->
+ <Limit name="measured-frame-rate-320x240" range="444-452" /> <!-- N=228 v98%=1.2 -->
+ <Limit name="measured-frame-rate-720x480" range="176-176" /> <!-- N=228 v98%=1.2 -->
+ <Limit name="measured-frame-rate-1280x720" range="124-125" /> <!-- N=228 v98%=1.1 -->
+ <Limit name="measured-frame-rate-1920x1080" range="52-52" /> <!-- N=228 v98%=1.2 -->
+ <Limit name="measured-frame-rate-3840x2160" range="21-21" /> <!-- N=228 v98%=1.3 -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.mpeg4" type="video/mp4v-es" update="true">
- <Limit name="measured-frame-rate-176x144" range="384-384" /> <!-- N=224 v98%=1.1 -->
- <Limit name="measured-frame-rate-352x288" range="387-399" /> <!-- N=224 v98%=1.2 -->
- <!-- measured 98%:97-244 med:217/209 FLAKY(mn=80.2 < 97 - 418) -->
- <Limit name="measured-frame-rate-640x480" range="160-209" /> <!-- TWEAKED N=224 v98%=1.6 -->
+ <Limit name="measured-frame-rate-176x144" range="384-384" /> <!-- N=228 v98%=1.2 -->
+ <Limit name="measured-frame-rate-352x288" range="387-399" /> <!-- N=228 v98%=1.2 -->
+ <!-- measured 98%:80-244 med:217/209 FLAKY(mn=73.3 < 80 - 418) -->
+ <Limit name="measured-frame-rate-640x480" range="146-209" /> <!-- TWEAKED N=228 v98%=1.7 -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.encoder.vp8" type="video/x-vnd.on2.vp8" update="true">
- <Limit name="measured-frame-rate-320x180" range="337-337" /> <!-- N=224 v98%=1.2 -->
- <Limit name="measured-frame-rate-640x360" range="262-266" /> <!-- N=224 v98%=1.2 -->
- <Limit name="measured-frame-rate-1280x720" range="82-82" /> <!-- N=224 v98%=1.1 -->
- <Limit name="measured-frame-rate-1920x1080" range="32-32" /> <!-- N=224 v98%=1.3 -->
+ <Limit name="measured-frame-rate-320x180" range="335-335" /> <!-- N=228 v98%=1.2 -->
+ <Limit name="measured-frame-rate-640x360" range="262-267" /> <!-- N=228 v98%=1.2 -->
+ <Limit name="measured-frame-rate-1280x720" range="82-82" /> <!-- N=228 v98%=1.1 -->
+ <Limit name="measured-frame-rate-1920x1080" range="32-32" /> <!-- N=228 v98%=1.3 -->
</MediaCodec>
<MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" update="true">
- <!-- measured 98%:169-448 med:329/327 FLAKY(mn=146.3 < 164 - 654) -->
- <Limit name="measured-frame-rate-176x144" range="327-327" /> <!-- N=224 v98%=1.6 -->
+ <!-- measured 98%:179-448 med:322/323 FLAKY(mn=143.6 < 161 - 646) -->
+ <Limit name="measured-frame-rate-176x144" range="287-323" /> <!-- TWEAKED N=228 v98%=1.6 -->
</MediaCodec>
<MediaCodec name="OMX.google.h264.encoder" type="video/avc" update="true">
- <!-- measured 98%:163-357 med:304/304 FLAKY(mn=148.3 < 152 - 608) -->
- <Limit name="measured-frame-rate-320x240" range="304-304" /> <!-- N=220 v98%=1.5 -->
- <Limit name="measured-frame-rate-720x480" range="110-111" /> <!-- N=224 v98%=1.1 -->
- <Limit name="measured-frame-rate-1280x720" range="64-65" /> <!-- N=222 v98%=1.2 -->
- <Limit name="measured-frame-rate-1920x1080" range="29-30" /> <!-- N=224 v98%=1.2 -->
+ <!-- measured 97%:215-350 med:304/304 FLAKY(mn=83.7 < 152 - 608) -->
+ <Limit name="measured-frame-rate-320x240" range="167-304" /> <!-- TWEAKED N=224 v97%=1.3 -->
+ <!-- measured 98%:71-122 med:110/110 FLAKY(mn=46.8 < 55 - 220) -->
+ <Limit name="measured-frame-rate-720x480" range="93-110" /> <!-- TWEAKED N=228 v98%=1.3 -->
+ <!-- measured 98%:50-73 med:64/64 FLAKY(mn=24.1 < 32 - 128) -->
+ <Limit name="measured-frame-rate-1280x720" range="48-64" /> <!-- TWEAKED N=226 v98%=1.2 -->
+ <!-- measured 98%:21-37 med:29/29 FLAKY(mn=12.1 < 15 - 58) -->
+ <Limit name="measured-frame-rate-1920x1080" range="24-29" /> <!-- TWEAKED N=228 v98%=1.3 -->
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" update="true">
- <Limit name="measured-frame-rate-176x144" range="348-348" /> <!-- N=224 v98%=1.5 -->
+ <Limit name="measured-frame-rate-176x144" range="341-341" /> <!-- N=228 v98%=1.4 -->
</MediaCodec>
<MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" update="true">
- <Limit name="measured-frame-rate-320x180" range="74-74" /> <!-- N=224 v98%=1.4 -->
- <Limit name="measured-frame-rate-640x360" range="45-45" /> <!-- N=222 v98%=1.2 -->
- <Limit name="measured-frame-rate-1280x720" range="36-36" /> <!-- N=224 v98%=1.1 -->
- <Limit name="measured-frame-rate-1920x1080" range="23-23" /> <!-- N=224 v98%=1.1 -->
+ <Limit name="measured-frame-rate-320x180" range="73-73" /> <!-- N=228 v98%=1.4 -->
+ <Limit name="measured-frame-rate-640x360" range="45-45" /> <!-- N=226 v98%=1.2 -->
+ <Limit name="measured-frame-rate-1280x720" range="36-36" /> <!-- N=228 v98%=1.1 -->
+ <Limit name="measured-frame-rate-1920x1080" range="23-23" /> <!-- N=228 v98%=1.1 -->
</MediaCodec>
+ <!-- Measurements between OPM1.170809.002 and OPM1.170908.002 -->
<MediaCodec name="OMX.google.vp9.encoder" type="video/x-vnd.on2.vp9" update="true">
- <!-- measured 98%:196-208 med:205/205 N=82 -->
- <Limit name="measured-frame-rate-320x180" range="205-205" /> <!-- v98%=1.0 (OPM1.170809.002-) -->
- <!-- measured 98%:63-70 med:68/68 N=82 -->
- <Limit name="measured-frame-rate-640x360" range="68-68" /> <!-- v98%=1.0 (OPM1.170809.002-) -->
- <!-- measured 98%:14-18 med:17/17 N=82 -->
- <Limit name="measured-frame-rate-1280x720" range="17-17" /> <!-- v98%=1.1 (OPM1.170809.002-) -->
- <!-- measured 93%:8-9 med:9/9 N=24 -->
- <Limit name="measured-frame-rate-1920x1080" range="9-9" /> <!-- v93%=1.0 (OPM1.170809.002-OPM1.170810.004) -->
+ <Limit name="measured-frame-rate-320x180" range="205-205" /> <!-- N=102 v98%=1.0 -->
+ <Limit name="measured-frame-rate-640x360" range="68-68" /> <!-- N=102 v98%=1.0 -->
+ <Limit name="measured-frame-rate-1280x720" range="17-17" /> <!-- N=102 v98%=1.1 -->
</MediaCodec>
</Encoders>
<Decoders>
<MediaCodec name="OMX.qcom.video.decoder.h263" type="video/3gpp" update="true">
- <Limit name="measured-frame-rate-176x144" range="511-513" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-352x288" range="470-471" /> <!-- N=174 v98%=1.3 -->
+ <Limit name="measured-frame-rate-176x144" range="505-507" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-352x288" range="470-472" /> <!-- N=162 v98%=1.3 -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.avc" type="video/avc" update="true">
- <Limit name="measured-frame-rate-320x240" range="341-341" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-720x480" range="302-302" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-1280x720" range="247-247" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-1920x1080" range="148-148" /> <!-- N=174 v98%=1.2 -->
+ <Limit name="measured-frame-rate-320x240" range="342-342" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-720x480" range="303-303" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-1280x720" range="247-247" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-1920x1080" range="148-148" /> <!-- N=162 v98%=1.2 -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.hevc" type="video/hevc" update="true">
- <Limit name="measured-frame-rate-352x288" range="345-345" /> <!-- N=174 v98%=1.4 -->
- <Limit name="measured-frame-rate-640x360" range="325-325" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-720x480" range="311-311" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-1280x720" range="267-267" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-1920x1080" range="258-258" /> <!-- N=174 v98%=1.0 -->
- <Limit name="measured-frame-rate-3840x2160" range="71-71" /> <!-- N=174 v98%=1.0 -->
+ <Limit name="measured-frame-rate-352x288" range="346-346" /> <!-- N=162 v98%=1.4 -->
+ <Limit name="measured-frame-rate-640x360" range="326-326" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-720x480" range="311-311" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-1280x720" range="267-267" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-1920x1080" range="258-258" /> <!-- N=162 v98%=1.0 -->
+ <Limit name="measured-frame-rate-3840x2160" range="71-71" /> <!-- N=162 v98%=1.0 -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.mpeg4" type="video/mp4v-es" update="true">
- <Limit name="measured-frame-rate-176x144" range="458-458" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-480x360" range="433-433" /> <!-- N=176 v98%=1.4 -->
+ <Limit name="measured-frame-rate-176x144" range="459-459" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-480x360" range="433-434" /> <!-- N=164 v98%=1.4 -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp8" type="video/x-vnd.on2.vp8" update="true">
- <Limit name="measured-frame-rate-320x180" range="418-418" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-640x360" range="414-415" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-1280x720" range="309-309" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-1920x1080" range="145-145" /> <!-- N=174 v98%=1.3 -->
+ <Limit name="measured-frame-rate-320x180" range="418-419" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-640x360" range="414-414" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-1280x720" range="309-309" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-1920x1080" range="145-145" /> <!-- N=162 v98%=1.2 -->
</MediaCodec>
<MediaCodec name="OMX.qcom.video.decoder.vp9" type="video/x-vnd.on2.vp9" update="true">
- <Limit name="measured-frame-rate-320x180" range="342-342" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-640x360" range="334-334" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-1280x720" range="271-271" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-1920x1080" range="153-153" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-3840x2160" range="36-36" /> <!-- N=174 v98%=1.3 -->
+ <Limit name="measured-frame-rate-320x180" range="342-342" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-640x360" range="335-335" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-1280x720" range="271-271" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-1920x1080" range="153-153" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-3840x2160" range="36-36" /> <!-- N=162 v98%=1.3 -->
</MediaCodec>
<MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" update="true">
- <Limit name="measured-frame-rate-176x144" range="150-150" /> <!-- N=174 v98%=1.3 -->
+ <Limit name="measured-frame-rate-176x144" range="150-150" /> <!-- N=162 v98%=1.3 -->
</MediaCodec>
<MediaCodec name="OMX.google.h264.decoder" type="video/avc" update="true">
- <!-- measured 98%:131-278 med:159/160 FLAKY(80 - 320 < mx=637.8) -->
- <Limit name="measured-frame-rate-320x240" range="159-319" /> <!-- TWEAKED N=173 v98%=1.5 -->
- <Limit name="measured-frame-rate-720x480" range="57-57" /> <!-- N=174 v98%=1.3 -->
- <Limit name="measured-frame-rate-1280x720" range="28-28" /> <!-- N=174 v98%=1.5 -->
- <Limit name="measured-frame-rate-1920x1080" range="16-16" /> <!-- N=174 v98%=1.5 -->
+ <!-- measured 98%:130-275 med:158/158 FLAKY(79 - 316 < mx=637.8) -->
+ <Limit name="measured-frame-rate-320x240" range="158-319" /> <!-- TWEAKED N=161 v98%=1.5 -->
+ <Limit name="measured-frame-rate-720x480" range="56-56" /> <!-- N=162 v98%=1.3 -->
+ <Limit name="measured-frame-rate-1280x720" range="28-28" /> <!-- N=162 v98%=1.5 -->
+ <Limit name="measured-frame-rate-1920x1080" range="15-15" /> <!-- N=162 v98%=1.5 -->
</MediaCodec>
<MediaCodec name="OMX.google.hevc.decoder" type="video/hevc" update="true">
- <Limit name="measured-frame-rate-352x288" range="632-632" /> <!-- N=174 v98%=1.2 -->
- <Limit name="measured-frame-rate-640x360" range="250-250" /> <!-- N=165 v98%=1.2 -->
- <Limit name="measured-frame-rate-720x480" range="217-217" /> <!-- N=168 v98%=1.3 -->
- <Limit name="measured-frame-rate-1280x720" range="103-103" /> <!-- N=173 v98%=1.3 -->
- <!-- measured 98%:41-66 med:61/61 FLAKY(mn=0.0 < 31 - 122) -->
- <Limit name="measured-frame-rate-1920x1080" range="61-61" /> <!-- N=172 v98%=1.3 -->
+ <Limit name="measured-frame-rate-352x288" range="631-631" /> <!-- N=158 v98%=1.2 -->
+ <Limit name="measured-frame-rate-640x360" range="250-250" /> <!-- N=153 v98%=1.2 -->
+ <Limit name="measured-frame-rate-720x480" range="218-218" /> <!-- N=154 v98%=1.3 -->
+ <Limit name="measured-frame-rate-1280x720" range="102-103" /> <!-- N=159 v98%=1.3 -->
+ <!-- measured 98%:43-66 med:60/60 FLAKY(mn=0.0 < 30 - 120) -->
+ <Limit name="measured-frame-rate-1920x1080" range="60-60" /> <!-- N=160 v98%=1.2 -->
</MediaCodec>
<MediaCodec name="OMX.google.mpeg4.decoder" type="video/mp4v-es" update="true">
- <Limit name="measured-frame-rate-176x144" range="177-177" /> <!-- N=174 v98%=1.4 -->
+ <Limit name="measured-frame-rate-176x144" range="177-177" /> <!-- N=162 v98%=1.4 -->
</MediaCodec>
<MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" update="true">
- <!-- measured 98%:432-1070 med:511/511 FLAKY(256 - 1070 < mx=1079.9) -->
- <Limit name="measured-frame-rate-320x180" range="511-540" /> <!-- TWEAKED N=174 v98%=1.6 -->
- <Limit name="measured-frame-rate-640x360" range="415-415" /> <!-- N=174 v98%=1.1 -->
- <Limit name="measured-frame-rate-1280x720" range="95-95" /> <!-- N=174 v98%=1.1 -->
- <Limit name="measured-frame-rate-1920x1080" range="37-37" /> <!-- N=174 v98%=1.1 -->
+ <!-- measured 98%:432-1070 med:504/505 FLAKY(252 - 1070 < mx=1079.9) -->
+ <Limit name="measured-frame-rate-320x180" range="504-540" /> <!-- TWEAKED N=162 v98%=1.6 -->
+ <Limit name="measured-frame-rate-640x360" range="415-415" /> <!-- N=162 v98%=1.1 -->
+ <Limit name="measured-frame-rate-1280x720" range="95-95" /> <!-- N=162 v98%=1.1 -->
+ <Limit name="measured-frame-rate-1920x1080" range="37-37" /> <!-- N=162 v98%=1.1 -->
</MediaCodec>
<MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" update="true">
- <Limit name="measured-frame-rate-320x180" range="491-491" /> <!-- N=174 v98%=1.4 -->
- <Limit name="measured-frame-rate-640x360" range="389-389" /> <!-- N=174 v98%=1.1 -->
- <Limit name="measured-frame-rate-1280x720" range="114-114" /> <!-- N=174 v98%=1.1 -->
- <Limit name="measured-frame-rate-1920x1080" range="69-69" /> <!-- N=174 v98%=1.1 -->
+ <Limit name="measured-frame-rate-320x180" range="468-470" /> <!-- N=162 v98%=1.4 -->
+ <Limit name="measured-frame-rate-640x360" range="377-379" /> <!-- N=162 v98%=1.1 -->
+ <Limit name="measured-frame-rate-1280x720" range="113-113" /> <!-- N=162 v98%=1.1 -->
+ <Limit name="measured-frame-rate-1920x1080" range="68-68" /> <!-- N=162 v98%=1.1 -->
</MediaCodec>
</Decoders>
</MediaCodecs>
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index c4690b04..fd3a0ad3 100755
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -218,7 +218,7 @@
<!-- Boolean indicating whether or not to revert to default country code when cellular
radio is unable to find any MCC information to infer wifi country code from -->
- <bool translatable="false" name="config_wifi_revert_country_code_on_cellular_loss">true</bool>
+ <bool translatable="false" name="config_wifi_revert_country_code_on_cellular_loss">false</bool>
<!-- Boolean indicating whether or not wifi should turn off when emergency call is made -->
<bool translatable="false" name="config_wifi_turn_off_during_emergency_call">true</bool>
diff --git a/p2p_supplicant_overlay.conf b/p2p_supplicant_overlay.conf
index acbace22..b5e89e03 100644
--- a/p2p_supplicant_overlay.conf
+++ b/p2p_supplicant_overlay.conf
@@ -1 +1,2 @@
disable_scan_offload=1
+p2p_no_group_iface=1
diff --git a/sec_config b/sec_config
index 23716aac..f75d4b10 100644..100755
--- a/sec_config
+++ b/sec_config
@@ -296,7 +296,7 @@
/* PDC */
36:4294967295:1001
/* SAR */
-17:4294967295:1001
+17:4294967295:1001:1006:1047
/* RFRPE */
41:4294967295:1001
/*UIM*/
diff --git a/sepolicy/private/seapp_contexts b/sepolicy/private/seapp_contexts
new file mode 100644
index 00000000..fbb9ba49
--- /dev/null
+++ b/sepolicy/private/seapp_contexts
@@ -0,0 +1,3 @@
+#Add new domain for DataServices
+#TODO Remove user "system" when b/38043081 is resolved
+user=system seinfo=platform name=.dataservices domain=dataservice_app type=system_app_data_file
diff --git a/sepolicy/vendor/certs/tango.x509.pem b/sepolicy/vendor/certs/tango.x509.pem
index 431c1a5c..a7619b2f 100644
--- a/sepolicy/vendor/certs/tango.x509.pem
+++ b/sepolicy/vendor/certs/tango.x509.pem
@@ -1,20 +1,23 @@
-----BEGIN CERTIFICATE-----
-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
+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
+zKHDydw=
-----END CERTIFICATE-----
diff --git a/sepolicy/vendor/device.te b/sepolicy/vendor/device.te
index 97fc839b..c63bdb3b 100644
--- a/sepolicy/vendor/device.te
+++ b/sepolicy/vendor/device.te
@@ -23,5 +23,6 @@ type smd_device, dev_type;
type spcom_device, dev_type;
type ssd_block_device, dev_type;
type ssr_device, dev_type;
+type thermal_device, dev_type;
type wlan_device, dev_type;
type xbl_block_device, dev_type;
diff --git a/sepolicy/vendor/file.te b/sepolicy/vendor/file.te
index fc569b5a..2e41283c 100644
--- a/sepolicy/vendor/file.te
+++ b/sepolicy/vendor/file.te
@@ -27,6 +27,7 @@ type debugfs_usb, debugfs_type, fs_type;
type debugfs_wlan, debugfs_type, fs_type;
type debugfs_mdp, debugfs_type, fs_type;
type debugfs_icnss, debugfs_type, fs_type;
+type debugfs_ufs, debugfs_type, fs_type;
# /proc
type proc_wifi_dbg, fs_type;
diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts
index d1c87af0..15419810 100644
--- a/sepolicy/vendor/file_contexts
+++ b/sepolicy/vendor/file_contexts
@@ -24,6 +24,7 @@
/dev/sdsprpc-smd u:object_r:dsp_device:s0
/dev/wcd-dsp-glink u:object_r:audio_device:s0
/dev/wcd_dsp0_control u:object_r:audio_device:s0
+/dev/msm_thermal_query u:object_r:thermal_device:s0
/dev/msm_.* u:object_r:audio_device:s0
/dev/avtimer u:object_r:avtimer_device:s0
/dev/subsys_.* u:object_r:ssr_device:s0
diff --git a/sepolicy/vendor/genfs_contexts b/sepolicy/vendor/genfs_contexts
index fae60212..6acbe849 100644
--- a/sepolicy/vendor/genfs_contexts
+++ b/sepolicy/vendor/genfs_contexts
@@ -85,3 +85,4 @@ genfscon debugfs /msm_ipc_router u:object_r:debugfs_ipc:s0
genfscon debugfs /mdp u:object_r:debugfs_mdp:s0
genfscon debugfs /rmt_storage u:object_r:debugfs_rmt_storage:s0
genfscon debugfs /icnss u:object_r:debugfs_icnss:s0
+genfscon debugfs /ufshcd0 u:object_r:debugfs_ufs:s0
diff --git a/sepolicy/vendor/hal_camera_default.te b/sepolicy/vendor/hal_camera_default.te
index 92d75276..dcc69ac0 100644
--- a/sepolicy/vendor/hal_camera_default.te
+++ b/sepolicy/vendor/hal_camera_default.te
@@ -7,6 +7,7 @@ allow hal_camera_default qdisplay_service:service_manager { find };
allow hal_camera_default hal_graphics_mapper_hwservice:hwservice_manager find;
allow hal_camera_default hal_graphics_allocator_hwservice:hwservice_manager find;
+hal_client_domain(hal_camera_default, hal_configstore)
binder_call(hal_camera_default, hal_graphics_composer)
binder_call(hal_camera_default, system_server)
binder_call(hal_camera_default, hal_graphics_allocator)
diff --git a/sepolicy/vendor/hal_dumpstate_impl.te b/sepolicy/vendor/hal_dumpstate_impl.te
index c0a14f9d..32b875d2 100644
--- a/sepolicy/vendor/hal_dumpstate_impl.te
+++ b/sepolicy/vendor/hal_dumpstate_impl.te
@@ -45,6 +45,8 @@ allow hal_dumpstate_impl debugfs_icnss:dir r_dir_perms;
allow hal_dumpstate_impl debugfs_icnss:file r_file_perms;
allow hal_dumpstate_impl debugfs_ipc:file r_file_perms;
allow hal_dumpstate_impl proc_stat:file r_file_perms;
+allow hal_dumpstate_impl debugfs_ufs:dir r_dir_perms;
+allow hal_dumpstate_impl debugfs_ufs:file r_file_perms;
# Access to files for dumping
allow hal_dumpstate_impl sysfs:dir r_dir_perms;
@@ -59,3 +61,7 @@ allow hal_dumpstate_impl display_vendor_data_file:file r_file_perms;
# Access to touch firmware info
allow hal_dumpstate_impl sysfs_touch:dir r_dir_perms;
allow hal_dumpstate_impl sysfs_touch:file rw_file_perms;
+
+# Access to UFS info
+allow hal_dumpstate_impl sysfs_scsi_devices_0000:dir r_dir_perms;
+allow hal_dumpstate_impl sysfs_scsi_devices_0000:file r_file_perms;
diff --git a/sepolicy/vendor/hal_thermal_default.te b/sepolicy/vendor/hal_thermal_default.te
deleted file mode 100644
index bafcb555..00000000
--- a/sepolicy/vendor/hal_thermal_default.te
+++ /dev/null
@@ -1,4 +0,0 @@
-allow hal_thermal_default sysfs_thermal:dir { open read search };
-allow hal_thermal_default sysfs_thermal:file { getattr open read };
-allow hal_thermal_default sysfs_thermal:lnk_file read;
-allow hal_thermal_default proc_stat:file { getattr open read };
diff --git a/sepolicy/vendor/logger_app.te b/sepolicy/vendor/logger_app.te
index 941da8b7..46874dae 100644
--- a/sepolicy/vendor/logger_app.te
+++ b/sepolicy/vendor/logger_app.te
@@ -18,4 +18,5 @@ userdebug_or_eng(`
set_prop(logger_app, cnss_diag_prop)
set_prop(logger_app, modem_diag_prop)
+ set_prop(logger_app, bluetooth_log_prop)
')
diff --git a/sepolicy/vendor/property.te b/sepolicy/vendor/property.te
index b8e8e53f..9f38fab0 100644
--- a/sepolicy/vendor/property.te
+++ b/sepolicy/vendor/property.te
@@ -14,3 +14,4 @@ type modem_diag_prop, property_type;
type tel_mon_prop, property_type;
type sys_time_prop, property_type;
type atfwd_start_prop, property_type;
+type bluetooth_log_prop, property_type;
diff --git a/sepolicy/vendor/property_contexts b/sepolicy/vendor/property_contexts
index b5d5728d..9094079c 100644
--- a/sepolicy/vendor/property_contexts
+++ b/sepolicy/vendor/property_contexts
@@ -24,3 +24,4 @@ sys.modem.diag. u:object_r:modem_diag_prop:s0
persist.radio.enable_tel_mon u:object_r:tel_mon_prop:s0
sys.time.set u:object_r:sys_time_prop:s0
persist.radio.atfwd.start u:object_r:atfwd_start_prop:s0
+sys.logger.bluetooth u:object_r:bluetooth_log_prop:s0
diff --git a/sepolicy/vendor/seapp_contexts b/sepolicy/vendor/seapp_contexts
index d13ddad6..2e3fcbd6 100644
--- a/sepolicy/vendor/seapp_contexts
+++ b/sepolicy/vendor/seapp_contexts
@@ -6,10 +6,6 @@ user=_app seinfo=platform name=com.google.mds domain=mds_app type=app_data_file
#TODO Remove user "system" when b/63588267 is resolved
user=system seinfo=platform name=com.qualcomm.telephony domain=qtelephony type=system_app_data_file
-#Add new domain for DataServices
-#TODO Remove user "system" when b/38043081 is resolved
-user=system seinfo=platform name=.dataservices domain=dataservice_app type=system_app_data_file
-
# The default domain for tango_core / arcore process
user=_app seinfo=tango name=com.google.tango* domain=tango_core type=app_data_file levelFrom=user
user=_app seinfo=arcore name=com.google.ar.core* domain=tango_core type=app_data_file levelFrom=user
diff --git a/sepolicy/vendor/ssr_setup.te b/sepolicy/vendor/ssr_setup.te
index 9aa54ee7..b05c3568 100644
--- a/sepolicy/vendor/ssr_setup.te
+++ b/sepolicy/vendor/ssr_setup.te
@@ -3,8 +3,6 @@ type ssr_setup_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(ssr_setup);
-userdebug_or_eng(`
allow ssr_setup sysfs_msm_subsys:dir r_dir_perms;
allow ssr_setup sysfs_msm_subsys:file rw_file_perms;
-allow ssr_setup sysfs_msm_subsys:lnk_file read;
-')
+allow ssr_setup sysfs_msm_subsys:lnk_file read; \ No newline at end of file
diff --git a/sepolicy/vendor/system_app.te b/sepolicy/vendor/system_app.te
index 72d8cf3b..1cc6fb1f 100644
--- a/sepolicy/vendor/system_app.te
+++ b/sepolicy/vendor/system_app.te
@@ -2,9 +2,8 @@
# userdebug and eng devices
userdebug_or_eng(`set_prop(system_app, tel_mon_prop)')
-# Needed by Settings app's CameraHalHdrplusPreferenceController, available only on a subset of
-# userdebug and eng devices
-userdebug_or_eng(`set_prop(system_app, camera_prop)')
+# Needed by Settings app's CameraHalHdrplusPreferenceController
+set_prop(system_app, camera_prop)
# read regulatory info
allow system_app elabel_data_file:dir r_dir_perms;
diff --git a/sepolicy/vendor/thermal-engine.te b/sepolicy/vendor/thermal-engine.te
index 8720021e..8009959d 100644
--- a/sepolicy/vendor/thermal-engine.te
+++ b/sepolicy/vendor/thermal-engine.te
@@ -14,10 +14,15 @@ allow thermal-engine sysfs_soc:dir search;
allow thermal-engine sysfs_soc:file r_file_perms;
allow thermal-engine sysfs_thermal:dir r_dir_perms;
allow thermal-engine sysfs_thermal:file rw_file_perms;
+allow thermal-engine sysfs_thermal:lnk_file read;
allow thermal-engine sysfs_rmtfs:dir search;
allow thermal-engine sysfs_rmtfs:file r_file_perms;
+# to read /proc/stat
+allow thermal-engine proc_stat:file { getattr open read };
+# IThermal Thermal HAL
+hal_server_domain(thermal-engine, hal_thermal)
-allow thermal-engine audio_device:chr_file rw_file_perms;
+allow thermal-engine thermal_device:chr_file rw_file_perms;
r_dir_file(thermal-engine, sysfs_leds)
r_dir_file(thermal-engine, sysfs_msm_subsys)
diff --git a/sepolicy/vendor/wcnss_filter.te b/sepolicy/vendor/wcnss_filter.te
index c7c72c77..910fb0ea 100644
--- a/sepolicy/vendor/wcnss_filter.te
+++ b/sepolicy/vendor/wcnss_filter.te
@@ -10,9 +10,12 @@ allow wcnss_filter hci_attach_dev:chr_file rw_file_perms;
userdebug_or_eng(`
allow wcnss_filter diag_device:chr_file rw_file_perms;
- allow wcnss_filter ramdump_vendor_data_file:dir create_dir_perms;
- allow wcnss_filter ramdump_vendor_data_file:file create_file_perms;
+ allow wcnss_filter ramdump_vendor_data_file:dir w_dir_perms;
+ allow wcnss_filter ramdump_vendor_data_file:file { create w_file_perms };
+ allow wcnss_filter sysfs_timestamp_switch:file r_file_perms;
r_dir_file(wcnss_filter, debugfs_ipc)
+ r_dir_file(wcnss_filter, sysfs_diag)
+ set_prop(wcnss_filter, ssr_prop)
')
#allow wakelock
diff --git a/system.prop b/system.prop
index c13ac420..98af2088 100644
--- a/system.prop
+++ b/system.prop
@@ -35,7 +35,6 @@ persist.mm.enable.prefetch=true
# Additional buffers shared between Camera and Video
vendor.vidc.enc.dcvs.extra-buff-count=2
-vendor.vidc.enc.disable.pq=1
# system props for the data netmgrd
persist.data.netmgrd.qos.enable=true
@@ -50,23 +49,8 @@ telephony.lteOnCdmaDevice=1
# Simulate sdcard on /data/media
persist.fuse_sdcard=true
-# settings to enable Device Orientation Sensors
-ro.qti.sensors.dev_ori=true
-
-# settings to disable sensors not needed
-# all secondary wakeup
-ro.qti.sensors.wu=false
-# unused algorithms
-ro.qti.sdk.sensors.gestures=false
-ro.qti.sensors.amd=false
-ro.qti.sensors.cmc=false
-ro.qti.sensors.facing=false
-ro.qti.sensors.pedometer=false
-ro.qti.sensors.rmd=false
-ro.qti.sensors.scrn_ortn=false
-# use SMGR supplied verison
-ro.qti.sensors.step_counter=false
-ro.qti.sensors.step_detector=false
+# sensor properties are moved to device.mk
+#
#system prop for RmNet Data
persist.rmnet.data.enable=true
diff --git a/thermal/Android.bp b/thermal/Android.bp
new file mode 100644
index 00000000..fcd227e1
--- /dev/null
+++ b/thermal/Android.bp
@@ -0,0 +1,20 @@
+cc_library_shared {
+ name: "android.hardware.thermal@1.1-wahoo",
+ defaults: ["hidl_defaults"],
+ owner: "qcom",
+ vendor: true,
+ relative_install_path: "hw",
+ srcs: [
+ "Thermal.cpp",
+ "thermal-helper.cpp",
+ ],
+ export_include_dirs: ["."],
+ shared_libs: [
+ "libbase",
+ "libhidlbase",
+ "libhidltransport",
+ "libutils",
+ "android.hardware.thermal@1.0",
+ "android.hardware.thermal@1.1",
+ ],
+}
diff --git a/thermal/Android.mk b/thermal/Android.mk
deleted file mode 100644
index a725c83e..00000000
--- a/thermal/Android.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# Copyright 2017 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_RELATIVE_PATH := hw
-LOCAL_PROPRIETARY_MODULE := true
-LOCAL_MODULE_OWNER := qcom
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_MODULE := android.hardware.thermal@1.0-service.wahoo
-LOCAL_INIT_RC := android.hardware.thermal@1.0-service.wahoo.rc
-LOCAL_SRC_FILES := service.cpp Thermal.cpp thermal-helper.cpp
-
-LOCAL_SHARED_LIBRARIES := \
- libhidlbase \
- libhidltransport \
- libutils \
- libbase \
- android.hardware.thermal@1.0 \
-
-include $(BUILD_EXECUTABLE)
diff --git a/thermal/Thermal.cpp b/thermal/Thermal.cpp
index 5bedddee..a9bd3715 100644
--- a/thermal/Thermal.cpp
+++ b/thermal/Thermal.cpp
@@ -25,11 +25,29 @@
namespace android {
namespace hardware {
namespace thermal {
-namespace V1_0 {
+namespace V1_1 {
namespace implementation {
Thermal::Thermal() : enabled(initThermal()) {}
+namespace {
+
+// Saves the IThermalCallback client object registered from the
+// framework for sending thermal events to the framework thermal event bus.
+sp<IThermalCallback> gThermalCallback;
+
+struct ThermalDeathRecipient : hidl_death_recipient {
+ virtual void serviceDied(
+ uint64_t cookie __unused, const wp<IBase>& who __unused) {
+ gThermalCallback = nullptr;
+ LOG(ERROR) << "IThermalCallback HIDL service died";
+ }
+};
+
+sp<ThermalDeathRecipient> gThermalCallbackDied = nullptr;
+
+} // anonymous namespace
+
// Methods from ::android::hardware::thermal::V1_0::IThermal follow.
Return<void> Thermal::getTemperatures(getTemperatures_cb _hidl_cb) {
ThermalStatus status;
@@ -112,8 +130,54 @@ Return<void> Thermal::getCoolingDevices(getCoolingDevices_cb _hidl_cb) {
return Void();
}
+// Methods from ::android::hardware::thermal::V1_1::IThermal follow.
+
+Return<void> Thermal::registerThermalCallback(
+ const sp<IThermalCallback>& callback) {
+ gThermalCallback = callback;
+
+ if (gThermalCallback != nullptr) {
+ if (gThermalCallbackDied == nullptr)
+ gThermalCallbackDied = new ThermalDeathRecipient();
+
+ if (gThermalCallbackDied != nullptr)
+ gThermalCallback->linkToDeath(
+ gThermalCallbackDied, 0x451F /* cookie, unused */);
+ LOG(INFO) << "ThermalCallback registered";
+ } else {
+ LOG(INFO) << "ThermalCallback unregistered";
+ }
+ return Void();
+}
+
+// Local functions used internally by thermal-engine follow.
+
+std::string Thermal::getSkinSensorType() {
+ return getTargetSkinSensorType();
+}
+
+void Thermal::notifyThrottling(
+ bool isThrottling, const Temperature& temperature) {
+ if (gThermalCallback != nullptr) {
+ Return<void> ret =
+ gThermalCallback->notifyThrottling(isThrottling, temperature);
+ if (!ret.isOk()) {
+ if (ret.isDeadObject()) {
+ gThermalCallback = nullptr;
+ LOG(WARNING) << "Dropped throttling event, ThermalCallback died";
+ } else {
+ LOG(WARNING) <<
+ "Failed to send throttling event to ThermalCallback";
+ }
+ }
+ } else {
+ LOG(WARNING) <<
+ "Dropped throttling event, no ThermalCallback registered";
+ }
+}
+
} // namespace implementation
-} // namespace V1_0
+} // namespace V1_1
} // namespace thermal
} // namespace hardware
} // namespace android
diff --git a/thermal/Thermal.h b/thermal/Thermal.h
index f9ce7ed8..a62b9e32 100644
--- a/thermal/Thermal.h
+++ b/thermal/Thermal.h
@@ -13,45 +13,56 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-#ifndef ANDROID_HARDWARE_THERMAL_V1_0_WAHOO_THERMAL_H
-#define ANDROID_HARDWARE_THERMAL_V1_0_WAHOO_THERMAL_H
+#ifndef ANDROID_HARDWARE_THERMAL_V1_1_WAHOO_THERMAL_H
+#define ANDROID_HARDWARE_THERMAL_V1_1_WAHOO_THERMAL_H
-#include <android/hardware/thermal/1.0/IThermal.h>
+#include <android/hardware/thermal/1.1/IThermal.h>
+#include <android/hardware/thermal/1.1/IThermalCallback.h>
#include <hidl/Status.h>
#include <hidl/MQDescriptor.h>
namespace android {
namespace hardware {
namespace thermal {
-namespace V1_0 {
+namespace V1_1 {
namespace implementation {
using ::android::hardware::thermal::V1_0::CoolingDevice;
using ::android::hardware::thermal::V1_0::CpuUsage;
-using ::android::hardware::thermal::V1_0::IThermal;
using ::android::hardware::thermal::V1_0::Temperature;
using ::android::hardware::thermal::V1_0::ThermalStatus;
+using ::android::hardware::thermal::V1_0::ThermalStatusCode;
+using ::android::hardware::thermal::V1_1::IThermal;
+using ::android::hardware::thermal::V1_1::IThermalCallback;
using ::android::hardware::Return;
using ::android::hardware::Void;
using ::android::hardware::hidl_vec;
using ::android::hardware::hidl_string;
+using ::android::hardware::hidl_death_recipient;
+using ::android::hidl::base::V1_0::IBase;
using ::android::sp;
struct Thermal : public IThermal {
+ // Local functions used internally by thermal-engine follow.
+ std::string getSkinSensorType();
+ void notifyThrottling(bool isThrottling, const Temperature& temperature);
Thermal();
// Methods from ::android::hardware::thermal::V1_0::IThermal follow.
Return<void> getTemperatures(getTemperatures_cb _hidl_cb) override;
Return<void> getCpuUsages(getCpuUsages_cb _hidl_cb) override;
Return<void> getCoolingDevices(getCoolingDevices_cb _hidl_cb) override;
+ // Methods from ::android::hardware::thermal::V1_1::IThermal follow.
+ Return<void> registerThermalCallback(
+ const sp<IThermalCallback>& callback) override;
private:
bool enabled;
};
} // namespace implementation
-} // namespace V1_0
+} // namespace V1_1
} // namespace thermal
} // namespace hardware
} // namespace android
-#endif // ANDROID_HARDWARE_THERMAL_V1_0_WAHOO_THERMAL_H
+#endif // ANDROID_HARDWARE_THERMAL_V1_1_WAHOO_THERMAL_H
diff --git a/thermal/android.hardware.thermal@1.0-service.wahoo.rc b/thermal/android.hardware.thermal@1.0-service.wahoo.rc
deleted file mode 100644
index e522cb10..00000000
--- a/thermal/android.hardware.thermal@1.0-service.wahoo.rc
+++ /dev/null
@@ -1,4 +0,0 @@
-service thermal-hal-1-0 /vendor/bin/hw/android.hardware.thermal@1.0-service.wahoo
- class hal
- user nobody
- group nobody
diff --git a/thermal/service.cpp b/thermal/service.cpp
deleted file mode 100644
index d41953b6..00000000
--- a/thermal/service.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2017 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/logging.h>
-#include <hidl/HidlTransportSupport.h>
-#include "Thermal.h"
-
-using android::sp;
-using android::status_t;
-using android::OK;
-
-// libhwbinder:
-using android::hardware::configureRpcThreadpool;
-using android::hardware::joinRpcThreadpool;
-
-// Generated HIDL files
-using android::hardware::thermal::V1_0::IThermal;
-using android::hardware::thermal::V1_0::implementation::Thermal;
-
-int main() {
-
- status_t status;
- android::sp<IThermal> service = nullptr;
-
- LOG(INFO) << "Thermal HAL Service 1.0 is starting";
-
- service = new Thermal();
- if (service == nullptr) {
- LOG(ERROR) << "Can not create an instance of Thermal HAL Iface, exiting";
-
- goto shutdown;
- }
-
- configureRpcThreadpool(1, true /*callerWillJoin*/);
-
- status = service->registerAsService();
- if (status != OK) {
- LOG(ERROR) << "Could not register service for Thermal HAL Iface (" << status << ")";
- goto shutdown;
- }
-
- LOG(INFO) << "Thermal Service is ready";
- joinRpcThreadpool();
- // Should not pass this line
-
-shutdown:
- // In normal operation, we don't expect the thread pool to exit
- LOG(ERROR) << "Thermal Service is shutting down";
- return 1;
-}
diff --git a/thermal/thermal-helper.cpp b/thermal/thermal-helper.cpp
index f5f146cf..878c82f5 100644
--- a/thermal/thermal-helper.cpp
+++ b/thermal/thermal-helper.cpp
@@ -30,10 +30,13 @@
namespace android {
namespace hardware {
namespace thermal {
-namespace V1_0 {
+namespace V1_1 {
namespace implementation {
+using ::android::hardware::thermal::V1_0::TemperatureType;
+
static unsigned int gSkinSensorNum;
+static std::string gSkinSensorType;
static unsigned int gTsensOffset;
static unsigned int gSkinThrottlingThreshold;
static unsigned int gSkinShutdownThreshold;
@@ -49,6 +52,7 @@ bool initThermal() {
if (hardware == "walleye") {
LOG(ERROR) << "Initialization on Walleye";
gSkinSensorNum = kWalleyeSkinSensorNum;
+ gSkinSensorType = kWalleyeSkinSensorType;
gTsensOffset = kWalleyeTsensOffset;
gSkinThrottlingThreshold = kWalleyeSkinThrottlingThreshold;
gSkinShutdownThreshold = kWalleyeSkinShutdownThreshold;
@@ -58,6 +62,7 @@ bool initThermal() {
if (rev == "rev_a" || rev == "rev_b") {
LOG(ERROR) << "Initialization on Taimen pre revision C";
gSkinSensorNum = kTaimenRabSkinSensorNum;
+ gSkinSensorType = kTaimenRabSkinSensorType;
gTsensOffset = kTaimenRabTsensOffset;
gSkinThrottlingThreshold = kTaimenRabSkinThrottlingThreshold;
gSkinShutdownThreshold = kTaimenRabSkinShutdownThreshold;
@@ -65,6 +70,7 @@ bool initThermal() {
} else {
LOG(ERROR) << "Initialization on Taimen revision C and later";
gSkinSensorNum = kTaimenRcSkinSensorNum;
+ gSkinSensorType = kTaimenRcSkinSensorType;
gTsensOffset = kTaimenRcTsensOffset;
gSkinThrottlingThreshold = kTaimenRcSkinThrottlingThreshold;
gSkinShutdownThreshold = kTaimenRcSkinShutdownThreshold;
@@ -286,8 +292,12 @@ ssize_t fillCpuUsages(hidl_vec<CpuUsage> *cpuUsages) {
return kCpuNum;
}
+std::string getTargetSkinSensorType() {
+ return gSkinSensorType;
+}
+
} // namespace implementation
-} // namespace V1_0
+} // namespace V1_1
} // namespace thermal
} // namespace hardware
} // namespace android
diff --git a/thermal/thermal-helper.h b/thermal/thermal-helper.h
index e08d4e72..311a67d8 100644
--- a/thermal/thermal-helper.h
+++ b/thermal/thermal-helper.h
@@ -30,12 +30,12 @@
#ifndef __THERMAL_HELPER_H__
#define __THERMAL_HELPER_H__
-#include <android/hardware/thermal/1.0/IThermal.h>
+#include <android/hardware/thermal/1.1/IThermal.h>
namespace android {
namespace hardware {
namespace thermal {
-namespace V1_0 {
+namespace V1_1 {
namespace implementation {
using ::android::hardware::thermal::V1_0::CpuUsage;
@@ -47,18 +47,21 @@ constexpr const char *kCpuOnlineFileFormat = "/sys/devices/system/cpu/cpu%d/onli
// thermal-engine.conf
constexpr unsigned int kWalleyeSkinSensorNum = 9;
+constexpr auto kWalleyeSkinSensorType = "back_therm";
constexpr unsigned int kWalleyeTsensOffset = 11;
constexpr unsigned int kWalleyeSkinThrottlingThreshold = 40;
constexpr unsigned int kWalleyeSkinShutdownThreshold = 56;
constexpr unsigned int kWalleyeVrThrottledBelowMin = 52;
constexpr unsigned int kTaimenRabSkinSensorNum = 8;
+constexpr auto kTaimenRabSkinSensorType = "bd_therm";
constexpr unsigned int kTaimenRabTsensOffset = 9;
constexpr unsigned int kTaimenRabSkinThrottlingThreshold = 49;
constexpr unsigned int kTaimenRabSkinShutdownThreshold = 66;
constexpr unsigned int kTaimenRabVrThrottledBelowMin = 62;
constexpr unsigned int kTaimenRcSkinSensorNum = 8;
+constexpr auto kTaimenRcSkinSensorType = "bd_therm2";
constexpr unsigned int kTaimenRcTsensOffset = 9;
constexpr unsigned int kTaimenRcSkinThrottlingThreshold = 38;
constexpr unsigned int kTaimenRcSkinShutdownThreshold = 54;
@@ -90,9 +93,10 @@ constexpr unsigned int kBatteryShutdownThreshold = 60;
bool initThermal();
ssize_t fillTemperatures(hidl_vec<Temperature> *temperatures);
ssize_t fillCpuUsages(hidl_vec<CpuUsage> *cpuUsages);
+std::string getTargetSkinSensorType();
} // namespace implementation
-} // namespace V1_0
+} // namespace V1_1
} // namespace thermal
} // namespace hardware
} // namespace android