Merge TQ1A.230105.002 to aosp-master - DO NOT MERGE

Merged-In: I00d2bd8360602eddefcfbcd5539d550df89f7046
Merged-In: I3c97781e47c4fd4ea67076a63d2c46a250beee6b

Change-Id: If2a32a04d231b63fc8c7f2a8bdaacadf3afe5802
diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk
index 2ebd832..146c6fa 100644
--- a/BoardConfig-common.mk
+++ b/BoardConfig-common.mk
@@ -37,6 +37,8 @@
 
 BUILD_BROKEN_DUP_RULES := true
 BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true
+# GOOGLE: workaround for https://android-review.googlesource.com/c/platform/system/sepolicy/+/1532995
+BUILD_BROKEN_VENDOR_PROPERTY_NAMESPACE := true
 
 TARGET_BOARD_COMMON_PATH := device/google/sunfish/sm7150
 
diff --git a/device-common.mk b/device-common.mk
index f8d1074..be064c9 100644
--- a/device-common.mk
+++ b/device-common.mk
@@ -78,6 +78,9 @@
 PRODUCT_COPY_FILES += \
     device/google/sunfish/init.logging.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(PRODUCT_PLATFORM).logging.rc
 
+PRODUCT_COPY_FILES += \
+    device/google/sunfish/task_profiles.json:$(TARGET_COPY_OUT_VENDOR)/etc/task_profiles.json
+
 # Pixelstats broken mic detection
 PRODUCT_PROPERTY_OVERRIDES += vendor.audio.mic_break=true
 
diff --git a/device-sunfish.mk b/device-sunfish.mk
index 0d4f43f..100a3fa 100644
--- a/device-sunfish.mk
+++ b/device-sunfish.mk
@@ -131,3 +131,7 @@
 PRODUCT_PACKAGES += \
     NoCutoutOverlay \
     AvoidAppsInCutoutOverlay
+
+# Workaround for prebuilt Qualcomm neural network HAL
+PRODUCT_PACKAGES += \
+    libprotobuf-cpp-full-3.9.1-vendorcompat
diff --git a/device.mk b/device.mk
index a720634..53e152c 100644
--- a/device.mk
+++ b/device.mk
@@ -200,7 +200,6 @@
     update_engine_sideload
 
 PRODUCT_PACKAGES_DEBUG += \
-    sg_write_buffer \
     f2fs_io \
     check_f2fs
 
diff --git a/init.hardware.rc b/init.hardware.rc
index a7dbe56..546612e 100644
--- a/init.hardware.rc
+++ b/init.hardware.rc
@@ -462,13 +462,6 @@
     write /dev/cpuset/system-background/cpus 2-5
     write /dev/cpuset/restricted/cpus 2-5
 
-    # Setup runtime blkio
-    # value for group_idle is us
-    write /dev/blkio/blkio.weight 1000
-    write /dev/blkio/background/blkio.weight 200
-    write /dev/blkio/blkio.group_idle 2000
-    write /dev/blkio/background/blkio.group_idle 0
-
     # UFS health
     chmod 755 /sys/kernel/debug/ufshcd0
     chmod 644 /sys/kernel/debug/ufshcd0/show_hba
diff --git a/manifest.xml b/manifest.xml
index 2e1e9ba..4f31669 100644
--- a/manifest.xml
+++ b/manifest.xml
@@ -45,15 +45,6 @@
         </interface>
     </hal>
     <hal format="hidl">
-        <name>android.hardware.authsecret</name>
-        <transport>hwbinder</transport>
-        <version>1.0</version>
-        <interface>
-            <name>IAuthSecret</name>
-            <instance>default</instance>
-        </interface>
-    </hal>
-    <hal format="hidl">
         <name>vendor.qti.hardware.cacert</name>
         <transport>hwbinder</transport>
         <version>1.0</version>
@@ -211,14 +202,6 @@
             <instance>default</instance>
         </interface>
     </hal>
-    <hal format="aidl">
-        <name>vendor.google.google_battery</name>
-        <version>1</version>
-        <interface>
-            <name>IGoogleBattery</name>
-            <instance>default</instance>
-        </interface>
-    </hal>
     <hal format="hidl">
         <name>vendor.google.radioext</name>
         <transport>hwbinder</transport>
@@ -265,13 +248,6 @@
            <instance>default</instance>
        </interface>
    </hal>
-    <hal format="hidl">
-        <name>android.hardware.gnss</name>
-        <transport>hwbinder</transport>
-        <fqname>@1.1::IGnss/default</fqname>
-        <fqname>@2.0::IGnss/default</fqname>
-        <fqname>@2.1::IGnss/default</fqname>
-    </hal>
     <!-- qcrilhook -->
     <hal format="hidl">
         <name>vendor.qti.hardware.radio.qcrilhook</name>
@@ -441,20 +417,11 @@
         <instance>default</instance>
       </interface>
     </hal>
-    <!-- Neural Network HAL -->
-    <hal format="hidl">
-        <name>android.hardware.neuralnetworks</name>
-        <transport>hwbinder</transport>
-        <fqname>@1.3::IDevice/qti-default</fqname>
-        <fqname>@1.3::IDevice/qti-dsp</fqname>
-        <fqname>@1.3::IDevice/qti-gpu</fqname>
-    </hal>
     <!-- keymaster -->
     <hal format="hidl">
        <name>android.hardware.keymaster</name>
        <transport>hwbinder</transport>
        <fqname>@4.0::IKeymasterDevice/default</fqname>
-       <fqname>@4.1::IKeymasterDevice/strongbox</fqname>
      </hal>
      <hal format="hidl">
         <name>android.hardware.power.stats</name>
@@ -485,15 +452,6 @@
         </interface>
     </hal>
     <hal format="hidl">
-        <name>android.hardware.weaver</name>
-        <transport>hwbinder</transport>
-        <version>1.0</version>
-        <interface>
-            <name>IWeaver</name>
-            <instance>default</instance>
-        </interface>
-    </hal>
-    <hal format="hidl">
         <name>android.hardware.dumpstate</name>
         <transport>hwbinder</transport>
         <version>1.1</version>
@@ -529,15 +487,6 @@
             <instance>default</instance>
         </interface>
     </hal>
-    <hal format="hidl">
-        <name>android.hardware.oemlock</name>
-        <transport>hwbinder</transport>
-        <version>1.0</version>
-        <interface>
-            <name>IOemLock</name>
-            <instance>default</instance>
-        </interface>
-    </hal>
     <!-- QSEECom HAL service -->
     <hal format="hidl">
         <name>vendor.qti.hardware.qseecom</name>
diff --git a/task_profiles.json b/task_profiles.json
new file mode 100644
index 0000000..048994c
--- /dev/null
+++ b/task_profiles.json
@@ -0,0 +1,128 @@
+{
+  "Profiles": [
+    {
+      "Name": "LowIoPriority",
+      "Actions": [
+        {
+          "Name": "JoinCgroup",
+          "Params":
+          {
+            "Controller": "blkio",
+            "Path": "background"
+	  }
+        },
+        {
+          "Name": "SetAttribute",
+          "Params":
+          {
+            "Name": "CfqGroupIdle",
+            "Value": "0",
+            "Optional": "true"
+          }
+        },
+        {
+          "Name": "SetAttribute",
+          "Params":
+          {
+            "Name": "CfqWeight",
+            "Value": "200",
+            "Optional": "true"
+          }
+        }
+      ]
+    },
+    {
+      "Name": "NormalIoPriority",
+      "Actions": [
+        {
+          "Name": "JoinCgroup",
+          "Params":
+          {
+            "Controller": "blkio",
+            "Path": ""
+	  }
+        },
+        {
+          "Name": "SetAttribute",
+          "Params":
+          {
+            "Name": "CfqGroupIdle",
+            "Value": "2000",
+            "Optional": "true"
+          }
+        },
+        {
+          "Name": "SetAttribute",
+          "Params":
+          {
+            "Name": "CfqWeight",
+            "Value": "1000",
+            "Optional": "true"
+          }
+        }
+      ]
+    },
+    {
+      "Name": "HighIoPriority",
+      "Actions": [
+        {
+          "Name": "JoinCgroup",
+          "Params":
+          {
+            "Controller": "blkio",
+            "Path": ""
+	  }
+        },
+        {
+          "Name": "SetAttribute",
+          "Params":
+          {
+            "Name": "CfqGroupIdle",
+            "Value": "2000",
+            "Optional": "true"
+          }
+        },
+        {
+          "Name": "SetAttribute",
+          "Params":
+          {
+            "Name": "CfqWeight",
+            "Value": "1000",
+            "Optional": "true"
+          }
+        }
+      ]
+    },
+    {
+      "Name": "MaxIoPriority",
+      "Actions": [
+        {
+          "Name": "JoinCgroup",
+          "Params":
+          {
+            "Controller": "blkio",
+            "Path": ""
+	  }
+        },
+        {
+          "Name": "SetAttribute",
+          "Params":
+          {
+            "Name": "CfqGroupIdle",
+            "Value": "2000",
+            "Optional": "true"
+          }
+        },
+        {
+          "Name": "SetAttribute",
+          "Params":
+          {
+            "Name": "CfqWeight",
+            "Value": "1000",
+            "Optional": "true"
+          }
+        }
+      ]
+    }
+  ]
+}