Merge SP2A.220505.002

Bug: 231319788
Merged-In: I13ce48b201651ccf2ba815a5c0308eb06253f507
Change-Id: I8212bf57a47ab2973caf329d97be5234a9d1051d
diff --git a/Android.mk b/Android.mk
index a449cae..239aa7c 100644
--- a/Android.mk
+++ b/Android.mk
@@ -16,6 +16,22 @@
 
 LOCAL_PATH := $(call my-dir)
 
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,default-permissions.xml,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,libnfc-nci.conf,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,fstab.postinstall,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,ueventd.rc,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,wpa_supplicant.conf,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,hals.conf,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,media_profiles_V1_0.xml,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,media_codecs_performance.xml,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,device_state_configuration.xml,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,task_profiles.json,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,p2p_supplicant.conf,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,wpa_supplicant.conf,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+$(eval $(call declare-copy-files-license-metadata,device/google/redbull,wpa_supplicant_overlay.conf,SPDX-license-identifier-Apache-2.0,notice,build/soong/licenses/LICENSE,))
+
+$(eval $(call declare-1p-copy-files,device/google/redbull,audio_policy_configuration.xml))
+
 ifeq ($(USES_DEVICE_GOOGLE_REDBULL),true)
   subdir_makefiles=$(call first-makefiles-under,$(LOCAL_PATH))
   $(foreach mk,$(subdir_makefiles),$(info including $(mk) ...)$(eval include $(mk)))
diff --git a/BoardConfig-common.mk b/BoardConfig-common.mk
index 693d733..149a44e 100644
--- a/BoardConfig-common.mk
+++ b/BoardConfig-common.mk
@@ -509,10 +509,11 @@
     device/google/redbull/modules.blocklist:$(TARGET_COPY_OUT_VENDOR)/lib/modules/modules.blocklist \
     device/google/redbull/init.insmod.charger.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/init.insmod.charger.cfg \
 
-# TARGET_BOOLOADER_BOARD_NAME sensitive common boilerplate
-
+# TARGET_BOOTLOADER_BOARD_NAME sensitive common boilerplate
+# We can't use a variable as the prefix to an include statement
+# because it makes it too difficult to convert to starlark
 TARGET_BOARD_NAME_DIR := device/google/$(TARGET_BOOTLOADER_BOARD_NAME)
--include $(TARGET_BOARD_NAME_DIR:%/=%)-sepolicy/$(TARGET_BOOTLOADER_BOARD_NAME)-sepolicy.mk
+-include device/google/$(TARGET_BOOTLOADER_BOARD_NAME)-sepolicy/$(TARGET_BOOTLOADER_BOARD_NAME)-sepolicy.mk
 
 TARGET_BOARD_INFO_FILE := $(TARGET_BOARD_NAME_DIR)/board-info.txt
 TARGET_BOARD_COMMON_PATH := $(TARGET_BOARD_NAME_DIR)/sm7250
@@ -521,7 +522,7 @@
 ifneq (,$(filter $(TARGET_DEVICE),bramble redfin))
     TARGET_KERNEL_DIR := device/google/redbull-kernel
 else
-    TARGET_KERNEL_DIR := $(TARGET_BOARD_NAME_DIR:%/=%)-kernel
+    TARGET_KERNEL_DIR := $(TARGET_BOARD_NAME_DIR)-kernel
 endif
 
 # DTBO partition definitions
diff --git a/init.hardware.rc b/init.hardware.rc
index 3db11d9..aa98f96 100644
--- a/init.hardware.rc
+++ b/init.hardware.rc
@@ -410,9 +410,6 @@
     # Wait for insmod_sh to finish all modules
     wait_for_prop vendor.all.modules.ready 1
 
-    # Update dm-verity state and set partition.*.verified properties
-    verity_update_state
-
     # Wait for insmod_sh to finish all boot devices
     wait_for_prop vendor.all.devices.ready 1
 
@@ -764,7 +761,7 @@
     class core
     user root
     group root
-    writepid /dev/cpuset/system-background/tasks
+    task_profiles ServiceCapacityLow
 
 service pd_mapper /vendor/bin/pd-mapper
      class core
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index ea46820..6771c25 100755
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -120,9 +120,6 @@
     <!--  Maximum number of supported users -->
     <integer name="config_multiuserMaximumUsers">4</integer>
 
-    <!-- Whether Hearing Aid profile is supported -->
-    <bool name="config_hearing_aid_profile_supported">true</bool>
-
     <!-- List of regexpressions describing the interface (if any) that represent tetherable
          USB interfaces.  If the device doesn't want to support tething over USB this should
          be empty.  An example would be "usb.*" -->
@@ -165,9 +162,6 @@
            <item>"bt-pan"</item>
     </string-array>
 
-    <!-- Boolean indicating if current platform supports HFP inband ringing -->
-    <bool name="config_bluetooth_hfp_inband_ringing_support">true</bool>
-
     <bool translatable="false" name="config_tether_upstream_automatic">true</bool>
 
     <!-- This string array should be overridden by the device to present a list of network
@@ -271,7 +265,6 @@
     <string-array translatable="false" name="config_defaultPinnerServiceFiles">
         <item>"/apex/com.android.art/javalib/core-oj.jar"</item>
         <item>"/apex/com.android.art/javalib/core-libart.jar"</item>
-        <item>"/apex/com.android.media/javalib/updatable-media.jar"</item>
         <item>"/system/framework/framework.jar"</item>
         <item>"/system/framework/services.jar"</item>
         <item>"/system/bin/surfaceflinger"</item>
diff --git a/powerstats/service.cpp b/powerstats/service.cpp
index 2ac4da7..44c7493 100644
--- a/powerstats/service.cpp
+++ b/powerstats/service.cpp
@@ -137,6 +137,30 @@
         std::vector<std::string>{"Off", "LP", "1080x2340@60", "1080x2340@90"});
     service->addStateResidencyDataProvider(displaySdp);
 
+    // Add NFC power entity
+    StateResidencyConfig nfcStateConfig = {
+        .entryCountSupported = true,
+        .entryCountPrefix = "Cumulative count:",
+        .totalTimeSupported = true,
+        .totalTimePrefix = "Cumulative duration msec:",
+        .lastEntrySupported = true,
+        .lastEntryPrefix = "Last entry timestamp msec:"
+    };
+    std::vector<std::pair<std::string, std::string>> nfcStateHeaders = {
+        std::make_pair("Idle", "Idle mode:"),
+        std::make_pair("Active", "Active mode:"),
+        std::make_pair("Active-RW", "Active Reader/Writer mode:"),
+    };
+
+    sp<GenericStateResidencyDataProvider> nfcSdp =
+            new GenericStateResidencyDataProvider("/sys/class/misc/st21nfc/device/power_stats");
+
+    uint32_t nfcId = service->addPowerEntity("NFC", PowerEntityType::SUBSYSTEM);
+    nfcSdp->addEntity(nfcId,
+        PowerEntityConfig(generateGenericStateResidencyConfigs(nfcStateConfig, nfcStateHeaders)));
+
+    service->addStateResidencyDataProvider(nfcSdp);
+
     // Add Power Entities that require the Aidl data provider
     auto aidlSdp = sp<AidlStateResidencyDataProvider>::make();
     uint32_t citadelId = service->addPowerEntity("Citadel", PowerEntityType::SUBSYSTEM);
diff --git a/product.prop b/product.prop
index 2a014a4..b09dc96 100644
--- a/product.prop
+++ b/product.prop
@@ -97,3 +97,25 @@
 # System props to enable aac vbr feature
 persist.bluetooth.a2dp_aac.vbr_supported=true
 
+# Set supported Bluetooth profiles to enabled
+bluetooth.profile.asha.central.enabled?=true
+bluetooth.profile.a2dp.source.enabled?=true
+bluetooth.profile.avrcp.target.enabled?=true
+bluetooth.profile.bap.broadcast.assist.enabled?=true
+bluetooth.profile.bap.unicast.client.enabled?=true
+bluetooth.profile.bas.client.enabled?=true
+bluetooth.profile.csip.set_coordinator.enabled?=true
+bluetooth.profile.gatt.enabled?=true
+bluetooth.profile.hap.client.enabled?=true
+bluetooth.profile.hfp.ag.enabled?=true
+bluetooth.profile.hid.device.enabled?=true
+bluetooth.profile.hid.host.enabled?=true
+bluetooth.profile.map.server.enabled?=true
+bluetooth.profile.mcp.server.enabled?=true
+bluetooth.profile.opp.enabled?=true
+bluetooth.profile.pan.nap.enabled?=true
+bluetooth.profile.pan.panu.enabled?=true
+bluetooth.profile.pbap.server.enabled?=true
+bluetooth.profile.sap.server.enabled?=true
+bluetooth.profile.ccp.server.enabled?=true
+bluetooth.profile.vcp.controller.enabled?=true
diff --git a/soong/pixel_soong_config.mk b/soong/pixel_soong_config.mk
index b0575ca..49857c6 100644
--- a/soong/pixel_soong_config.mk
+++ b/soong/pixel_soong_config.mk
@@ -2,8 +2,4 @@
 # Set the variables properly in ProductConfig Makefiles for each pixel device
 
 #For sensor
-SOONG_CONFIG_NAMESPACES += sensor
-SOONG_CONFIG_sensor += \
-        enable_sensor_ssc_for_soong
-
-SOONG_CONFIG_sensor_enable_sensor_ssc_for_soong := $(ENABLE_SENSOR_SSC_FOR_SOONG)
+$(call soong_config_set,sensor,enable_sensor_ssc_for_soong,$(ENABLE_SENSOR_SSC_FOR_SOONG))