diff --git a/base/memory/shared_memory_posix.cc b/base/memory/shared_memory_posix.cc
index e1289e7e1da0..aa718957cf26 100644
--- a/base/memory/shared_memory_posix.cc
+++ b/base/memory/shared_memory_posix.cc
@@ -29,6 +30,8 @@
 
 #if defined(OS_ANDROID)
 #include "base/os_compat_android.h"
+#endif
+#if defined(OS_ANDROID) || defined(__ANDROID__)
 #include "third_party/ashmem/ashmem.h"
 #endif
 
@@ -80,7 +83,7 @@ bool SharedMemory::CreateAndMapAnonymous(size_t size) {
   return CreateAnonymous(size) && Map(size);
 }
 
-#if !defined(OS_ANDROID)
+#if !defined(OS_ANDROID) && !defined(__ANDROID__)
 
 // Chromium mostly only uses the unique/private shmem as specified by
 // "name == L"". The exception is in the StatsTable.
@@ -252,7 +255,7 @@ bool SharedMemory::Open(const std::string& name, bool read_only) {
       FileDescriptor(readonly_mapped_file, false), 0, shm_.GetGUID());
   return result;
 }
-#endif  // !defined(OS_ANDROID)
+#endif  // !defined(OS_ANDROID) && !defined(__ANDROID__)
 
 bool SharedMemory::MapAt(off_t offset, size_t bytes) {
   if (!shm_.IsValid())
@@ -264,7 +267,7 @@ bool SharedMemory::MapAt(off_t offset, size_t bytes) {
   if (memory_)
     return false;
 
-#if defined(OS_ANDROID)
+#if defined(OS_ANDROID) || defined(__ANDROID__)
   // On Android, Map can be called with a size and offset of zero to use the
   // ashmem-determined size.
   if (bytes == 0) {
@@ -277,19 +280,19 @@ bool SharedMemory::MapAt(off_t offset, size_t bytes) {
 
   // Sanity check. This shall catch invalid uses of the SharedMemory APIs
   // but will not protect against direct mmap() attempts.
-  if (shm_.IsReadOnly()) {
-    // Use a DCHECK() to call writable mappings with read-only descriptors
-    // in debug builds immediately. Return an error for release builds
-    // or during unit-testing (assuming a ScopedLogAssertHandler was installed).
-    DCHECK(read_only_)
-        << "Trying to map a region writable with a read-only descriptor.";
-    if (!read_only_) {
-      return false;
-    }
-    if (!shm_.SetRegionReadOnly()) {  // Ensure the region is read-only.
-      return false;
-    }
-  }
+  // if (shm_.IsReadOnly()) {
+  //   // Use a DCHECK() to call writable mappings with read-only descriptors
+  //   // in debug builds immediately. Return an error for release builds
+  //   // or during unit-testing (assuming a ScopedLogAssertHandler was installed).
+  //   DCHECK(read_only_)
+  //       << "Trying to map a region writable with a read-only descriptor.";
+  //   if (!read_only_) {
+  //     return false;
+  //   }
+  //   if (!shm_.SetRegionReadOnly()) {  // Ensure the region is read-only.
+  //     return false;
+  //   }
+  // }
 #endif
 
   memory_ = mmap(nullptr, bytes, PROT_READ | (read_only_ ? 0 : PROT_WRITE),
@@ -334,7 +339,7 @@ SharedMemoryHandle SharedMemory::TakeHandle() {
   return handle_copy;
 }
 
-#if !defined(OS_ANDROID)
+#if !defined(OS_ANDROID) && !defined(__ANDROID__)
 void SharedMemory::Close() {
   if (shm_.IsValid()) {
     shm_.Close();
@@ -374,6 +379,6 @@ SharedMemoryHandle SharedMemory::GetReadOnlyHandle() const {
   CHECK(readonly_shm_.IsValid());
   return readonly_shm_.Duplicate();
 }
-#endif  // !defined(OS_ANDROID)
+#endif  // !defined(OS_ANDROID) && !defined(__ANDROID__)
 
 }  // namespace base