diff --git a/hal/audio_extn/hw_loopback.c b/hal/audio_extn/hw_loopback.c
index 7c846d9..78e4215 100644
--- a/hal/audio_extn/hw_loopback.c
+++ b/hal/audio_extn/hw_loopback.c
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2017, The Linux Foundation. All rights reserved.
+* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
@@ -491,7 +491,7 @@
 
     /* Do not alter the location of sending latency mode property */
     /* Mode set on any stream but before both streams are open */
-    if(property_get("audio.transcode.latency.mode", prop_value, "")) {
+    if(property_get("vendor.audio.transcode.latency.mode", prop_value, "")) {
         uint32_t latency_mode = atoi(prop_value);
         transcode_loopback_util_set_latency_mode(active_loopback_patch,
                                                  latency_mode);
diff --git a/hal/audio_extn/keep_alive.c b/hal/audio_extn/keep_alive.c
index 0866a35..07b235d 100755
--- a/hal/audio_extn/keep_alive.c
+++ b/hal/audio_extn/keep_alive.c
@@ -119,7 +119,7 @@
     ka.userdata = adev;
     ka.state = STATE_IDLE;
     ka.pcm = NULL;
-    if (property_get_bool("audio.keep_alive.disabled", false)) {
+    if (property_get_bool("vendor.audio.keep_alive.disabled", false)) {
         ALOGE("keep alive disabled");
         ka.state = STATE_DISABLED;
         return;
diff --git a/hal/audio_extn/passthru.c b/hal/audio_extn/passthru.c
old mode 100755
new mode 100644
index 99949fc..9174a37
--- a/hal/audio_extn/passthru.c
+++ b/hal/audio_extn/passthru.c
@@ -506,7 +506,7 @@
 
     if (((info->format == AUDIO_FORMAT_DOLBY_TRUEHD) ||
             (info->format == AUDIO_FORMAT_IEC61937)) &&
-            property_get("audio.truehd.buffer.size.kb", value, "") &&
+            property_get("vendor.audio.truehd.buffer.size.kb", value, "") &&
             atoi(value)) {
         fragment_size = atoi(value) * 1024;
         goto done;
@@ -516,7 +516,7 @@
         goto done;
     } else if (info->format == AUDIO_FORMAT_E_AC3) {
         fragment_size = DDP_COMPRESS_PASSTHROUGH_FRAGMENT_SIZE;
-        if(property_get("audio.ddp.buffer.size.kb", value, "") &&
+        if(property_get("vendor.audio.ddp.buffer.size.kb", value, "") &&
                 atoi(value)) {
             fragment_size = atoi(value) * 1024;
         }
diff --git a/hal/audio_extn/qaf.c b/hal/audio_extn/qaf.c
index c1c0af7..ced137f 100755
--- a/hal/audio_extn/qaf.c
+++ b/hal/audio_extn/qaf.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are
@@ -3046,7 +3046,7 @@
         DEBUG_MSG("DLOPEN successful for %s", lib_name);
 #endif
         } else if (i == DTS_M8) {
-            property_get("audio.qaf.m8.library", value, NULL);
+            property_get("vendor.audio.qaf.m8.library", value, NULL);
             snprintf(lib_name, PROPERTY_VALUE_MAX, "%s", value);
             qaf_mod->qaf_lib = dlopen(lib_name, RTLD_NOW);
             if (qaf_mod->qaf_lib == NULL) {
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
old mode 100755
new mode 100644
index 1a8f0a1..c263427
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -5584,7 +5584,7 @@
     out->dynamic_pm_qos_config_supported = 0;
 
     if ((flags & AUDIO_OUTPUT_FLAG_BD) &&
-        (property_get_bool("audio.matrix.limiter.enable", false)))
+        (property_get_bool("vendor.audio.matrix.limiter.enable", false)))
         platform_set_device_params(out, DEVICE_PARAM_LIMITER_ID, 1);
 
     if (audio_is_linear_pcm(out->format) &&
