--- a/avahi-daemon/main.c
+++ b/avahi-daemon/main.c
@@ -135,7 +135,7 @@
 #endif
 } DaemonConfig;
 
-#define RESOLV_CONF "/etc/resolv.conf"
+#define RESOLV_CONF "@TERMUX_PREFIX@/etc/resolv.conf"
 #define BROWSE_DOMAINS_MAX 16
 
 static AvahiSEntryGroup *dns_servers_entry_group = NULL;
@@ -587,9 +587,9 @@
     int fd;
     char buf[32];
 
-    fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
+    fd = open("@TERMUX_PREFIX@/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
     if (fd == -1 && errno == ENOENT)
-        fd = open("/var/lib/dbus/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
+        fd = open("@TERMUX_PREFIX@/var/lib/dbus/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
     if (fd == -1)
         return NULL;
 
@@ -1338,6 +1338,7 @@
 
 #define set_env(key, value) putenv(avahi_strdup_printf("%s=%s", (key), (value)))
 
+#ifndef __ANDROID__
 static int drop_root(void) {
     struct passwd *pw;
     struct group * gr;
@@ -1400,6 +1401,7 @@
 
     return 0;
 }
+#endif /* __ANDROID__ */
 
 static const char* pid_file_proc(void) {
     return AVAHI_DAEMON_RUNTIME_DIR"/pid";
@@ -1413,6 +1415,7 @@
     struct group * gr;
     struct stat st;
 
+#ifndef __ANDROID__
     if (!(pw = getpwnam(AVAHI_USER))) {
         avahi_log_error( "Failed to find user '"AVAHI_USER"'.");
         goto fail;
@@ -1422,6 +1425,7 @@
         avahi_log_error( "Failed to find group '"AVAHI_GROUP"'.");
         goto fail;
     }
+#endif
 
     u = umask(0000);
     reset_umask = 1;
@@ -1431,14 +1435,20 @@
         goto fail;
     }
 
+#ifndef __ANDROID__
     chown(AVAHI_DAEMON_RUNTIME_DIR, pw->pw_uid, gr->gr_gid);
+#endif
 
     if (stat(AVAHI_DAEMON_RUNTIME_DIR, &st) < 0) {
         avahi_log_error("stat(): %s\n", strerror(errno));
         goto fail;
     }
 
+#ifndef __ANDROID__
     if (!S_ISDIR(st.st_mode) || st.st_uid != pw->pw_uid || st.st_gid != gr->gr_gid) {
+#else
+    if (!S_ISDIR(st.st_mode)) {
+#endif
         avahi_log_error("Failed to create runtime directory "AVAHI_DAEMON_RUNTIME_DIR".");
         goto fail;
     }
@@ -1594,10 +1604,12 @@
     else if (config.command == DAEMON_RUN) {
         pid_t pid;
 
+#ifndef __ANDROID__
         if (getuid() != 0 && config.drop_root) {
             avahi_log_error("This program is intended to be run as root.");
             goto finish;
         }
+#endif
 
         if ((pid = daemon_pid_file_is_running()) >= 0) {
             avahi_log_error("Daemon already running on PID %u", pid);
@@ -1641,6 +1653,7 @@
         if (make_runtime_dir() < 0)
             goto finish;
 
+#ifndef __ANDROID__
         if (config.drop_root) {
 #ifdef ENABLE_CHROOT
             if (config.use_chroot)
@@ -1657,6 +1670,7 @@
                     goto finish;
 #endif
         }
+#endif /* __ANDROID__ */
 
         if (daemon_pid_file_create() < 0) {
             avahi_log_error("Failed to create PID file: %s", strerror(errno));
