diff --git a/base/include/hidl/MQDescriptor.h b/base/include/hidl/MQDescriptor.h
index ed9279a..8cdbd4c 100644
--- a/base/include/hidl/MQDescriptor.h
+++ b/base/include/hidl/MQDescriptor.h
@@ -21,6 +21,7 @@
 #include <cutils/native_handle.h>
 #include <hidl/HidlSupport.h>
 #include <utils/NativeHandle.h>
+#include <utils/Log.h>
 
 namespace android {
 namespace hardware {
@@ -107,6 +108,18 @@
      * needed for blocking FMQ operations.
      */
     static constexpr int32_t kMinGrantorCountForEvFlagSupport = EVFLAGWORDPOS + 1;
+
+    //TODO(b/34160777) Identify a better solution that supports remoting.
+    static inline size_t alignToWordBoundary(size_t length) {
+        constexpr size_t kAlignmentSize = 64;
+        LOG_ALWAYS_FATAL_IF(kAlignmentSize % __WORDSIZE != 0, "Incompatible word size");
+        return (length + kAlignmentSize/8 - 1) & ~(kAlignmentSize/8 - 1U);
+    }
+
+    static inline size_t isAlignedToWordBoundary(size_t offset) {
+        constexpr size_t kAlignmentSize = 64;
+        return (offset & (kAlignmentSize/8 - 1)) == 0;
+    }
 private:
     ::android::hardware::hidl_vec<GrantorDescriptor> mGrantors;
     ::android::hardware::details::hidl_pointer<native_handle_t> mHandle;
@@ -144,6 +157,8 @@
       mFlags(flavor) {
     mGrantors.resize(grantors.size());
     for (size_t i = 0; i < grantors.size(); ++i) {
+        LOG_ALWAYS_FATAL_IF(isAlignedToWordBoundary(grantors[i].offset) == false,
+                            "Grantor offsets need to be aligned");
         mGrantors[i] = grantors[i];
     }
 }
@@ -176,7 +191,7 @@
         mGrantors[grantorPos] = {
             0 /* grantor flags */,
             0 /* fdIndex */,
-            static_cast<uint32_t>(offset),
+            static_cast<uint32_t>(alignToWordBoundary(offset)),
             memSize[grantorPos]
         };
     }
diff --git a/transport/HidlBinderSupport.cpp b/transport/HidlBinderSupport.cpp
index 38e0640..6be7254 100644
--- a/transport/HidlBinderSupport.cpp
+++ b/transport/HidlBinderSupport.cpp
@@ -30,22 +30,20 @@
 
 status_t readEmbeddedFromParcel(hidl_memory * /* memory */,
         const Parcel &parcel, size_t parentHandle, size_t parentOffset) {
-    ::android::status_t _hidl_err = ::android::OK;
-    const native_handle_t *_hidl_memory_handle = parcel.readEmbeddedNativeHandle(
+    const native_handle_t *handle;
+    ::android::status_t _hidl_err = parcel.readNullableEmbeddedNativeHandle(
             parentHandle,
-            parentOffset + hidl_memory::kOffsetOfHandle);
+            parentOffset + hidl_memory::kOffsetOfHandle,
+            &handle);
 
-    if (_hidl_memory_handle == nullptr) {
-        _hidl_err = ::android::UNKNOWN_ERROR;
-        return _hidl_err;
+    if (_hidl_err == ::android::OK) {
+        _hidl_err = readEmbeddedFromParcel(
+                (hidl_string*) nullptr,
+                parcel,
+                parentHandle,
+                parentOffset + hidl_memory::kOffsetOfName);
     }
 
-    _hidl_err = readEmbeddedFromParcel(
-            (hidl_string*) nullptr,
-            parcel,
-            parentHandle,
-            parentOffset + hidl_memory::kOffsetOfName);
-
     return _hidl_err;
 }
 
@@ -71,12 +69,12 @@
 
 status_t readEmbeddedFromParcel(hidl_string * /* string */,
         const Parcel &parcel, size_t parentHandle, size_t parentOffset) {
-    const void *ptr = parcel.readEmbeddedBuffer(
+    const void *out;
+    return parcel.readEmbeddedBuffer(
             nullptr /* buffer_handle */,
             parentHandle,
-            parentOffset + hidl_string::kOffsetOfBuffer);
-
-    return ptr != NULL ? OK : UNKNOWN_ERROR;
+            parentOffset + hidl_string::kOffsetOfBuffer,
+            &out);
 }
 
 status_t writeEmbeddedToParcel(const hidl_string &string,
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..d0ad3fb 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.
 
@@ -95,12 +95,12 @@
         size_t parentHandle,
         size_t parentOffset,
         size_t *handle) {
-    const void *ptr = parcel.readEmbeddedBuffer(
+    const void *out;
+    return parcel.readEmbeddedBuffer(
             handle,
             parentHandle,
-            parentOffset + hidl_vec<T>::kOffsetOfBuffer);
-
-    return ptr != NULL ? OK : UNKNOWN_ERROR;
+            parentOffset + hidl_vec<T>::kOffsetOfBuffer,
+            &out);
 }
 
 template<typename T>
@@ -144,14 +144,13 @@
 
     if (_hidl_err != ::android::OK) { return _hidl_err; }
 
-    const native_handle_t *_hidl_mq_handle_ptr = parcel.readEmbeddedNativeHandle(
+    const native_handle_t *_hidl_mq_handle_ptr;
+   _hidl_err = parcel.readEmbeddedNativeHandle(
             parentHandle,
-            parentOffset + MQDescriptor<T, flavor>::kOffsetOfHandle);
+            parentOffset + MQDescriptor<T, flavor>::kOffsetOfHandle,
+            &_hidl_mq_handle_ptr);
 
-    if (_hidl_mq_handle_ptr == nullptr) {
-        _hidl_err = ::android::UNKNOWN_ERROR;
-        return _hidl_err;
-    }
+    if (_hidl_err != ::android::OK) { return _hidl_err; }
 
     return _hidl_err;
 }
@@ -338,7 +337,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 +345,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",
     ],
 }
diff --git a/transport/token/1.0/ITokenManager.hal b/transport/token/1.0/ITokenManager.hal
index dc4134a..2f0650b 100644
--- a/transport/token/1.0/ITokenManager.hal
+++ b/transport/token/1.0/ITokenManager.hal
@@ -43,7 +43,8 @@
     unregister(uint64_t token) generates (bool success);
 
     /**
-     * Fetches an interface from a provided token.
+     * Fetches an interface from a provided token. This must also unregister the
+     * token.
      *
      * @param token Token recieved from createToken
      * @return store Interface registered with createToken and the corresponding
