diff --git a/include/binder/MemoryBase.h b/include/binder/MemoryBase.h
index 463e26d..fa0b8d1 100644
--- a/include/binder/MemoryBase.h
+++ b/include/binder/MemoryBase.h
@@ -40,6 +40,9 @@
     const sp<IMemoryHeap>& getHeap() const { return mHeap; }
 
 private:
+    // Backwards compatibility for libdatabase_sqlcipher (http://b/8253769).
+    MemoryBase(const sp<IMemoryHeap>& heap, long offset, unsigned int size);
+
     size_t          mSize;
     ssize_t         mOffset;
     sp<IMemoryHeap> mHeap;
diff --git a/libs/binder/IMemory.cpp b/libs/binder/IMemory.cpp
index cd2451a..947ac19 100644
--- a/libs/binder/IMemory.cpp
+++ b/libs/binder/IMemory.cpp
@@ -298,11 +298,11 @@
         uint32_t flags = reply.readInt32();
         uint32_t offset = reply.readInt32();
 
-        ALOGE_IF(err, "binder=%p transaction failed fd=%d, size=%ld, err=%d (%s)",
+        ALOGE_IF(err, "binder=%p transaction failed fd=%d, size=%d, err=%d (%s)",
                 asBinder().get(), parcel_fd, size, err, strerror(-err));
 
         int fd = dup( parcel_fd );
-        ALOGE_IF(fd==-1, "cannot dup fd=%d, size=%ld, err=%d (%s)",
+        ALOGE_IF(fd==-1, "cannot dup fd=%d, size=%d, err=%d (%s)",
                 parcel_fd, size, err, strerror(errno));
 
         int access = PROT_READ;
@@ -315,7 +315,7 @@
             mRealHeap = true;
             mBase = mmap(0, size, access, MAP_SHARED, fd, offset);
             if (mBase == MAP_FAILED) {
-                ALOGE("cannot map BpMemoryHeap (binder=%p), size=%ld, fd=%d (%s)",
+                ALOGE("cannot map BpMemoryHeap (binder=%p), size=%d, fd=%d (%s)",
                         asBinder().get(), size, fd, strerror(errno));
                 close(fd);
             } else {
diff --git a/libs/binder/MemoryBase.cpp b/libs/binder/MemoryBase.cpp
index 033066b..835124f 100644
--- a/libs/binder/MemoryBase.cpp
+++ b/libs/binder/MemoryBase.cpp
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+#define LOG_TAG "MemoryBase"
 
 #include <stdlib.h>
 #include <stdint.h>
@@ -31,6 +32,14 @@
 {
 }
 
+MemoryBase::MemoryBase(const sp<IMemoryHeap>& heap,
+        long offset, unsigned int size)
+    : mSize(size), mOffset(offset), mHeap(heap)
+{
+    ALOGW("Using temporary compatibility workaround for usage of MemoryBase "
+          "private API. Please fix your application!");
+}
+
 sp<IMemoryHeap> MemoryBase::getMemory(ssize_t* offset, size_t* size) const
 {
     if (offset) *offset = mOffset;
