diff --git a/transport/ServiceManagement.cpp b/transport/ServiceManagement.cpp
index 6753cb8..1e6e3df 100644
--- a/transport/ServiceManagement.cpp
+++ b/transport/ServiceManagement.cpp
@@ -29,12 +29,12 @@
 #include <unistd.h>
 
 #include <android/hidl/manager/1.0/IServiceManager.h>
-#include <android/hidl/manager/1.0/BpServiceManager.h>
-#include <android/hidl/manager/1.0/BnServiceManager.h>
+#include <android/hidl/manager/1.0/BpHwServiceManager.h>
+#include <android/hidl/manager/1.0/BnHwServiceManager.h>
 
 using android::hidl::manager::V1_0::IServiceManager;
-using android::hidl::manager::V1_0::BpServiceManager;
-using android::hidl::manager::V1_0::BnServiceManager;
+using android::hidl::manager::V1_0::BpHwServiceManager;
+using android::hidl::manager::V1_0::BnHwServiceManager;
 
 namespace android {
 namespace hardware {
@@ -50,7 +50,7 @@
     {
         AutoMutex _l(gDefaultServiceManagerLock);
         while (gDefaultServiceManager == NULL) {
-            gDefaultServiceManager = fromBinder<IServiceManager, BpServiceManager, BnServiceManager>(
+            gDefaultServiceManager = fromBinder<IServiceManager, BpHwServiceManager, BnHwServiceManager>(
                 ProcessState::self()->getContextObject(NULL));
             if (gDefaultServiceManager == NULL)
                 sleep(1);
diff --git a/transport/base/1.0/Android.bp b/transport/base/1.0/Android.bp
index 0bb6b4a..1b68720 100644
--- a/transport/base/1.0/Android.bp
+++ b/transport/base/1.0/Android.bp
@@ -22,8 +22,8 @@
     out: [
         "android/hidl/base/1.0/IBase.h",
         "android/hidl/base/1.0/IHwBase.h",
-        "android/hidl/base/1.0/BnBase.h",
-        "android/hidl/base/1.0/BpBase.h",
+        "android/hidl/base/1.0/BnHwBase.h",
+        "android/hidl/base/1.0/BpHwBase.h",
         "android/hidl/base/1.0/BsBase.h",
     ],
 }
diff --git a/transport/include/hidl/HidlBinderSupport.h b/transport/include/hidl/HidlBinderSupport.h
index cad68be..1ff925c 100644
--- a/transport/include/hidl/HidlBinderSupport.h
+++ b/transport/include/hidl/HidlBinderSupport.h
@@ -26,7 +26,7 @@
 #include <hwbinder/IPCThreadState.h>
 #include <hwbinder/Parcel.h>
 #include <hwbinder/ProcessState.h>
-#include <android/hidl/base/1.0/BnBase.h>
+#include <android/hidl/base/1.0/BnHwBase.h>
 // Defines functions for hidl_string, hidl_version, Status, hidl_vec, MQDescriptor,
 // etc. to interact with Parcel.
 
@@ -338,7 +338,7 @@
 template <typename IType, typename ProxyType, typename StubType>
 sp<IType> fromBinder(const sp<IBinder>& binderIface) {
     using ::android::hidl::base::V1_0::IBase;
-    using ::android::hidl::base::V1_0::BnBase;
+    using ::android::hidl::base::V1_0::BnHwBase;
 
     if (binderIface.get() == nullptr) {
         return nullptr;
@@ -346,7 +346,7 @@
     if (binderIface->localBinder() == nullptr) {
         return new ProxyType(binderIface);
     }
-    sp<IBase> base = static_cast<BnBase*>(binderIface.get())->getImpl();
+    sp<IBase> base = static_cast<BnHwBase*>(binderIface.get())->getImpl();
     if (canCastInterface(base.get(), IType::descriptor)) {
         StubType* stub = static_cast<StubType*>(binderIface.get());
         return stub->getImpl();
diff --git a/transport/manager/1.0/Android.bp b/transport/manager/1.0/Android.bp
index 5cd06d6..b8e1987 100644
--- a/transport/manager/1.0/Android.bp
+++ b/transport/manager/1.0/Android.bp
@@ -25,13 +25,13 @@
     out: [
         "android/hidl/manager/1.0/IServiceManager.h",
         "android/hidl/manager/1.0/IHwServiceManager.h",
-        "android/hidl/manager/1.0/BnServiceManager.h",
-        "android/hidl/manager/1.0/BpServiceManager.h",
+        "android/hidl/manager/1.0/BnHwServiceManager.h",
+        "android/hidl/manager/1.0/BpHwServiceManager.h",
         "android/hidl/manager/1.0/BsServiceManager.h",
         "android/hidl/manager/1.0/IServiceNotification.h",
         "android/hidl/manager/1.0/IHwServiceNotification.h",
-        "android/hidl/manager/1.0/BnServiceNotification.h",
-        "android/hidl/manager/1.0/BpServiceNotification.h",
+        "android/hidl/manager/1.0/BnHwServiceNotification.h",
+        "android/hidl/manager/1.0/BpHwServiceNotification.h",
         "android/hidl/manager/1.0/BsServiceNotification.h",
     ],
 }
diff --git a/transport/memory/1.0/Android.bp b/transport/memory/1.0/Android.bp
index efebe7e..ca8341d 100644
--- a/transport/memory/1.0/Android.bp
+++ b/transport/memory/1.0/Android.bp
@@ -28,18 +28,18 @@
     out: [
         "android/hidl/memory/1.0/IAllocator.h",
         "android/hidl/memory/1.0/IHwAllocator.h",
-        "android/hidl/memory/1.0/BnAllocator.h",
-        "android/hidl/memory/1.0/BpAllocator.h",
+        "android/hidl/memory/1.0/BnHwAllocator.h",
+        "android/hidl/memory/1.0/BpHwAllocator.h",
         "android/hidl/memory/1.0/BsAllocator.h",
         "android/hidl/memory/1.0/IMapper.h",
         "android/hidl/memory/1.0/IHwMapper.h",
-        "android/hidl/memory/1.0/BnMapper.h",
-        "android/hidl/memory/1.0/BpMapper.h",
+        "android/hidl/memory/1.0/BnHwMapper.h",
+        "android/hidl/memory/1.0/BpHwMapper.h",
         "android/hidl/memory/1.0/BsMapper.h",
         "android/hidl/memory/1.0/IMemory.h",
         "android/hidl/memory/1.0/IHwMemory.h",
-        "android/hidl/memory/1.0/BnMemory.h",
-        "android/hidl/memory/1.0/BpMemory.h",
+        "android/hidl/memory/1.0/BnHwMemory.h",
+        "android/hidl/memory/1.0/BpHwMemory.h",
         "android/hidl/memory/1.0/BsMemory.h",
     ],
 }
diff --git a/transport/token/1.0/Android.bp b/transport/token/1.0/Android.bp
index 0ebe1e4..9113e41 100644
--- a/transport/token/1.0/Android.bp
+++ b/transport/token/1.0/Android.bp
@@ -22,8 +22,8 @@
     out: [
         "android/hidl/token/1.0/ITokenManager.h",
         "android/hidl/token/1.0/IHwTokenManager.h",
-        "android/hidl/token/1.0/BnTokenManager.h",
-        "android/hidl/token/1.0/BpTokenManager.h",
+        "android/hidl/token/1.0/BnHwTokenManager.h",
+        "android/hidl/token/1.0/BpHwTokenManager.h",
         "android/hidl/token/1.0/BsTokenManager.h",
     ],
 }
