diff -u -r ../fish-2.4b1/src/env_universal_common.cpp ./src/env_universal_common.cpp
--- ../fish-2.4b1/src/env_universal_common.cpp	2016-10-18 10:17:06.000000000 -0400
+++ ./src/env_universal_common.cpp	2016-10-19 17:42:06.900520935 -0400
@@ -137,7 +137,7 @@
         }
 
         // /tmp/fish.user
-        std::string tmpdir = "/tmp/fish.";
+        std::string tmpdir = "@TERMUX_PREFIX@/tmp/fish.";
         tmpdir.append(uname);
         if (check_runtime_path(tmpdir.c_str()) != 0) {
             debug(0,
@@ -987,6 +987,7 @@
     return result;
 }
 
+#ifndef __ANDROID__
 class universal_notifier_shmem_poller_t : public universal_notifier_t {
     // This is what our shared memory looks like. Everything here is stored in network byte order
     // (big-endian).
@@ -1127,6 +1128,7 @@
         return usec_per_sec / 3;  // 3 times a second
     }
 };
+#endif
 
 /// A notifyd-based notifier. Very straightforward.
 class universal_notifier_notifyd_t : public universal_notifier_t {
@@ -1410,7 +1412,9 @@
         const char *name;
         universal_notifier_t::notifier_strategy_t strat;
     } options[] = {{"default", universal_notifier_t::strategy_default},
+#ifndef __ANDROID__
                    {"shmem", universal_notifier_t::strategy_shmem_polling},
+#endif
                    {"pipe", universal_notifier_t::strategy_named_pipe},
                    {"notifyd", universal_notifier_t::strategy_notifyd}};
     const size_t opt_count = sizeof options / sizeof *options;
@@ -1463,9 +1467,11 @@
         strat = resolve_default_strategy();
     }
     switch (strat) {
+#ifndef __ANDROID__
         case strategy_shmem_polling: {
             return new universal_notifier_shmem_poller_t();
         }
+#endif
         case strategy_notifyd: {
             return new universal_notifier_notifyd_t();
         }