diff --git a/src/Reactor/ExecutableMemory.cpp b/src/Reactor/ExecutableMemory.cpp
index 46b4480..7174cb3 100644
--- a/src/Reactor/ExecutableMemory.cpp
+++ b/src/Reactor/ExecutableMemory.cpp
@@ -33,6 +33,10 @@
 #	include <unistd.h>
 #endif
 
+#if defined(__ANDROID__)
+#	include <sys/prctl.h>
+#endif
+
 #include <memory.h>
 
 #undef allocate
@@ -132,29 +136,30 @@
 #endif  // !defined(_WIN32) && !defined(__Fuchsia__)
 
 #if defined(__linux__) && defined(REACTOR_ANONYMOUS_MMAP_NAME)
+#	if !defined(__ANDROID__)
 // Create a file descriptor for anonymous memory with the given
 // name. Returns -1 on failure.
 // TODO: remove once libc wrapper exists.
 static int memfd_create(const char *name, unsigned int flags)
 {
-#	if __aarch64__
-#		define __NR_memfd_create 279
-#	elif __arm__
-#		define __NR_memfd_create 279
-#	elif __powerpc64__
-#		define __NR_memfd_create 360
-#	elif __i386__
-#		define __NR_memfd_create 356
-#	elif __x86_64__
-#		define __NR_memfd_create 319
-#	endif /* __NR_memfd_create__ */
-#	ifdef __NR_memfd_create
+#		if __aarch64__
+#			define __NR_memfd_create 279
+#		elif __arm__
+#			define __NR_memfd_create 279
+#		elif __powerpc64__
+#			define __NR_memfd_create 360
+#		elif __i386__
+#			define __NR_memfd_create 356
+#		elif __x86_64__
+#			define __NR_memfd_create 319
+#		endif /* __NR_memfd_create__ */
+#		ifdef __NR_memfd_create
 	// In the event of no system call this returns -1 with errno set
 	// as ENOSYS.
 	return syscall(__NR_memfd_create, name, flags);
-#	else
+#		else
 	return -1;
-#	endif
+#		endif
 }
 
 // Returns a file descriptor for use with an anonymous mmap, if
@@ -165,6 +170,12 @@
 	static int fd = memfd_create(MACRO_STRINGIFY(REACTOR_ANONYMOUS_MMAP_NAME), 0);
 	return fd;
 }
+#	else   // defined(__ANDROID__)
+int anonymousFd()
+{
+	return -1;
+}
+#	endif  // defined(__ANDROID__)
 
 // Ensure there is enough space in the "anonymous" fd for length.
 void ensureAnonFileSize(int anonFd, size_t length)
@@ -278,6 +289,17 @@
 	{
 		mapping = nullptr;
 	}
+#	if defined(__ANDROID__)
+	else
+	{
+		// On Android, prefer to use a non-standard prctl called
+		// PR_SET_VMA_ANON_NAME to set the name of a private anonymous
+		// mapping, as Android restricts EXECUTE permission on
+		// CoW/shared anonymous mappings with sepolicy neverallows.
+		prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, mapping, length,
+		      MACRO_STRINGIFY(REACTOR_ANONYMOUS_MMAP_NAME));
+	}
+#	endif  // __ANDROID__
 #elif defined(__Fuchsia__)
 	zx_handle_t vmo;
 	if(zx_vmo_create(length, 0, &vmo) != ZX_OK)
