diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
index 3a1877b..0a8e18f 100644
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -541,7 +541,9 @@
     struct acdb_platform_data *my_data = calloc(1, sizeof(struct acdb_platform_data));
 
     bool card_verifed[MAX_SND_CARD] = {0};
-    const int retry_limit = property_get_int32("audio.snd_card.open.retries", RETRY_NUMBER);
+    const int retry_limit = property_get_int32(
+        "vendor.audio.snd_card.open.retries",
+        property_get_int32("audio.snd_card.open.retries", RETRY_NUMBER));
 
     for (;;) {
         if (snd_card_num >= MAX_SND_CARD) {
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 1fd913a..58d8f85 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -6568,7 +6568,8 @@
 
     char value[PROPERTY_VALUE_MAX];
     int trial;
-    if (property_get("audio_hal.period_size", value, NULL) > 0) {
+    if ((property_get("vendor.audio_hal.period_size", value, NULL) > 0) ||
+        (property_get("audio_hal.period_size", value, NULL) > 0)) {
         trial = atoi(value);
         if (period_size_is_plausible_for_low_latency(trial)) {
             pcm_config_low_latency.period_size = trial;
@@ -6577,7 +6578,8 @@
             configured_low_latency_capture_period_size = trial;
         }
     }
-    if (property_get("audio_hal.in_period_size", value, NULL) > 0) {
+    if ((property_get("vendor.audio_hal.in_period_size", value, NULL) > 0) ||
+        (property_get("audio_hal.in_period_size", value, NULL) > 0)) {
         trial = atoi(value);
         if (period_size_is_plausible_for_low_latency(trial)) {
             configured_low_latency_capture_period_size = trial;
@@ -6592,7 +6594,8 @@
     // audio_extn_utils_send_default_app_type_cfg(adev->platform, adev->mixer);
     audio_device_ref_count++;
 
-    if (property_get("audio_hal.period_multiplier", value, NULL) > 0) {
+    if ((property_get("vendor.audio_hal.period_multiplier", value, NULL) > 0) ||
+        (property_get("audio_hal.period_multiplier", value, NULL) > 0)) {
         af_period_multiplier = atoi(value);
         if (af_period_multiplier < 0) {
             af_period_multiplier = 2;
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 3602b97..8600b7d 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -1118,7 +1118,9 @@
     my_data->fluence_type = FLUENCE_NONE;
     my_data->fluence_mode = FLUENCE_ENDFIRE;
 
-    property_get("ro.qc.sdk.audio.fluencetype", my_data->fluence_cap, "");
+    if (property_get("ro.vendor.audio.sdk.fluencetype", my_data->fluence_cap, NULL) == 0) {
+        property_get("ro.qc.sdk.audio.fluencetype", my_data->fluence_cap, "");
+    }
     if (!strncmp("fluencepro", my_data->fluence_cap, sizeof("fluencepro"))) {
         my_data->fluence_type = FLUENCE_QUAD_MIC | FLUENCE_DUAL_MIC;
     } else if (!strncmp("fluence", my_data->fluence_cap, sizeof("fluence"))) {
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 41d8bd2..8a2fc18 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -1805,7 +1805,9 @@
     my_data->fluence_in_voice_comm = false;
     my_data->fluence_in_voice_rec = false;
 
-    property_get("ro.qc.sdk.audio.fluencetype", value, "none");
+    if (property_get("ro.vendor.audio.sdk.fluencetype", value, NULL) == 0) {
+        property_get("ro.qc.sdk.audio.fluencetype", value, "none");
+    }
     if (!strcmp("fluencepro", value)) {
         my_data->fluence_type = FLUENCE_PRO_ENABLE;
     } else if (!strcmp("fluence", value) || (dual_mic_config)) {
diff --git a/post_proc/volume_listener.c b/post_proc/volume_listener.c
index 0fb62cb..ea26860 100644
--- a/post_proc/volume_listener.c
+++ b/post_proc/volume_listener.c
@@ -674,8 +674,12 @@
         }
     }
 
-    dumping_enabled = property_get_bool("audio.volume.listener.dump", false);
-    headset_cal_enabled = property_get_bool("audio.volume.headset.gain.depcal", false);
+    dumping_enabled = property_get_bool(
+        "vendor.audio.volume.listener.dump",
+        property_get_bool("audio.volume.listener.dump", false));
+    headset_cal_enabled = property_get_bool(
+        "vendor.audio.volume.headset.gain.depcal",
+        property_get_bool("audio.volume.headset.gain.depcal", false));
     init_status = 0;
     list_init(&vol_effect_list);
     initialized = true;
