Merge "Bluetooth HFP: Use WBS by default (3/5)"
diff --git a/CleanSpec.mk b/CleanSpec.mk
index 05c1592..f0a819d 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -80,3 +80,6 @@
 # Remove /system/lib[64]/vndk-sp/libz.so
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/vndk-sp/libz.so)
 $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib64/vndk-sp/libz.so)
+
+# Migrate to versioned VNDK directory layout
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/lib/vndk-sp)
diff --git a/device-common.mk b/device-common.mk
index 1a579ed..103e792 100644
--- a/device-common.mk
+++ b/device-common.mk
@@ -512,7 +512,7 @@
 
 PRODUCT_COPY_FILES += \
     device/google/marlin/nfc/libnfc-nci.conf:$(TARGET_COPY_OUT_SYSTEM)/etc/libnfc-nci.conf \
-    device/google/marlin/nfc/libpn551_fw.so:$(TARGET_COPY_OUT_VENDOR)/firmware/libpn551_fw.so
+    device/google/marlin/nfc/libpn551_fw.so:$(TARGET_COPY_OUT_VENDOR)/lib/libpn551_fw.so
 
 # Bootloader HAL used for A/B updates.
 PRODUCT_PACKAGES += \
diff --git a/overlay/packages/apps/Bluetooth/res/values/config.xml b/overlay/packages/apps/Bluetooth/res/values/config.xml
index 9b897f8..0e8c392 100644
--- a/overlay/packages/apps/Bluetooth/res/values/config.xml
+++ b/overlay/packages/apps/Bluetooth/res/values/config.xml
@@ -32,5 +32,6 @@
     <bool name="profile_supported_avrcp_controller">false</bool>
     <bool name="profile_supported_a2dp_sink">false</bool>
     <bool name="profile_supported_sap">true</bool>
+    <bool name="profile_supported_hearing_aid">true</bool>
 </resources>
 
diff --git a/recovery/gpt-utils/gpt-utils.cpp b/recovery/gpt-utils/gpt-utils.cpp
index 9142c90..ade16e9 100644
--- a/recovery/gpt-utils/gpt-utils.cpp
+++ b/recovery/gpt-utils/gpt-utils.cpp
@@ -747,7 +747,6 @@
     enum gpt_state gpt_prim, gpt_second;
     enum boot_update_stage internal_stage;
     struct stat xbl_partition_stat;
-    struct stat ufs_dir_stat;
 
     if (!dev_path) {
         fprintf(stderr, "%s: Invalid dev_path\n",
@@ -970,7 +969,6 @@
 
 int prepare_boot_update(enum boot_update_stage stage)
 {
-        int r, fd;
         int is_ufs = gpt_utils_is_ufs_device();
         struct stat ufs_dir_stat;
         struct update_data data;
diff --git a/sepolicy/bug_map b/sepolicy/bug_map
index bfc9cac..2c2c08d 100644
--- a/sepolicy/bug_map
+++ b/sepolicy/bug_map
@@ -1,3 +1,7 @@
+cameraserver mediacodec binder 77924653
+cnd vendor_shell_exec file 77922167
+hal_audio_default priv_app fd 77926553
+netd sysfs_pcie dir 77870037
 netutils_wrapper proc_net file 72099135
 netutils_wrapper sysfs_net file 72157903
-vendor_init unlabeled dir 77635294
+perfd perfd capability 77924406
diff --git a/sepolicy/genfs_contexts b/sepolicy/genfs_contexts
index 670ec8a..053cc40 100644
--- a/sepolicy/genfs_contexts
+++ b/sepolicy/genfs_contexts
@@ -38,7 +38,6 @@
 genfscon sysfs /devices/soc/2080000.qcom,mss          u:object_r:sysfs_msm_subsys:s0
 genfscon sysfs /kernel/boot_adsp/boot                 u:object_r:sysfs_msm_subsys:s0
 genfscon sysfs /kernel/boot_slpi/boot                 u:object_r:sysfs_msm_subsys:s0
-genfscon sysfs /kernel/memory_state_time              u:object_r:sysfs_power:s0
 genfscon sysfs /devices/soc/600000.qcom,pcie          u:object_r:sysfs_pcie:s0
 genfscon sysfs /devices/soc/6a00000.ssusb/6a00000.dwc3/gadget/lun0/ u:object_r:sysfs_android_usb:s0
 genfscon sysfs /devices/soc/8c0000.qcom,msm-cam       u:object_r:sysfs_camera:s0
diff --git a/sepolicy/hrdump.te b/sepolicy/hrdump.te
index 2cd5489..c558b5b 100644
--- a/sepolicy/hrdump.te
+++ b/sepolicy/hrdump.te
@@ -16,4 +16,7 @@
 allow htc_ramdump ramdump_vendor_data_file:dir { create_dir_perms };
 allow htc_ramdump block_device:dir { search };
 allow htc_ramdump ramdump_block_device:blk_file { open read };
+
+allow htc_ramdump proc_cmdline:file r_file_perms;
+r_dir_file(htc_ramdump, sysfs_dt_firmware_android)
 ')
diff --git a/sepolicy/location.te b/sepolicy/location.te
index c51e756..2375691 100644
--- a/sepolicy/location.te
+++ b/sepolicy/location.te
@@ -66,3 +66,5 @@
 allow location port:tcp_socket name_connect;
 allow location self:tcp_socket { connect create read setopt write };
 allow location self:udp_socket { create ioctl read write };
+
+get_prop(location, wifi_prop)
diff --git a/sepolicy/vendor_init.te b/sepolicy/vendor_init.te
index 554e792..a4a44be 100644
--- a/sepolicy/vendor_init.te
+++ b/sepolicy/vendor_init.te
@@ -22,7 +22,6 @@
   system_data_file
   time_data_file
   tombstone_data_file
-  unencrypted_data_file
   wifi_data_file
 }:dir { create search getattr open read setattr ioctl write add_name remove_name rmdir relabelfrom };
 
@@ -31,7 +30,6 @@
   location_data_file
   perfd_data_file
   radio_data_file
-  unencrypted_data_file
 }:file { create getattr open read write setattr relabelfrom unlink };
 
 allow vendor_init {
@@ -39,3 +37,6 @@
 }:sock_file setattr;
 
 set_prop(vendor_init, thermal_prop)
+
+dontaudit vendor_init unlabeled:dir getattr;
+dontaudit vendor_init unlabeled:file getattr;
diff --git a/vndk/Android.mk b/vndk/Android.mk
index 2fcf590..762a8a2 100644
--- a/vndk/Android.mk
+++ b/vndk/Android.mk
@@ -18,6 +18,8 @@
 install_in_hw_dir := \
    android.hidl.memory@1.0-impl
 
+vndk_sp_dir := vndk-sp-$(PLATFORM_VNDK_VERSION)
+
 define define-vndk-sp-lib
 include $$(CLEAR_VARS)
 LOCAL_MODULE := $1.vndk-sp-gen
@@ -28,7 +30,7 @@
 LOCAL_MODULE_TAGS := optional
 LOCAL_INSTALLED_MODULE_STEM := $1.so
 LOCAL_MODULE_SUFFIX := .so
-LOCAL_MODULE_RELATIVE_PATH := vndk-sp$(if $(filter $1,$(install_in_hw_dir)),/hw)
+LOCAL_MODULE_RELATIVE_PATH := $(vndk_sp_dir)$(if $(filter $1,$(install_in_hw_dir)),/hw)
 include $$(BUILD_PREBUILT)
 
 ifneq ($$(TARGET_2ND_ARCH),)
@@ -42,7 +44,7 @@
 LOCAL_MODULE_TAGS := optional
 LOCAL_INSTALLED_MODULE_STEM := $1.so
 LOCAL_MODULE_SUFFIX := .so
-LOCAL_MODULE_RELATIVE_PATH := vndk-sp$(if $(filter $1,$(install_in_hw_dir)),/hw)
+LOCAL_MODULE_RELATIVE_PATH := $(vndk_sp_dir)$(if $(filter $1,$(install_in_hw_dir)),/hw)
 include $$(BUILD_PREBUILT)
 endif # TARGET_TRANSLATE_2ND_ARCH is not true
 endif # TARGET_2ND_ARCH is not empty