Fire OS 8 does not appear to support mDNS lookups in its main DNS resolver

PROBLEM DESCRIPTION:

Fire OS in its current version (8.3.2.1 on Generation 12 devices) does not correctly support mDNS (.local) domain resolution in its browser or in third-party applications when using the default resolver library. This bug, which was fixed in Android mainline several years ago, is a very serious problem that makes working with Internet-of-Things devices challenging to impossible.

Multicast DNS, is a system that computers use to discover other devices on your local network. Devices can publish their name and a list of services that the devices offer. Other devices can then discover those services.

The main reason for using multicast DNS is because IP addresses in home networks change. Constantly. When you have a power outage and your Wi-Fi hotspot reboots, suddenly all of your Internet-of-Things devices have a different IP address. So using IP addresses is completely infeasible.

Thus, mDNS support is the only usable way to do such diverse things as:

  • Controlling IP video cameras
  • Controlling computers on your network with VNC
  • Configuring many Internet-of-Things devices
  • Accessing network-attached storage servers
  • Accessing internal web servers for thermostats

And so on. Support for mDNS is built into all major operating systems, including Android, by default.

Unfortunately, this basic networking functionality does not work on any current-generation Fire devices, presumably because whatever DNS resolver library you’re using in place of Google Play Services is missing that key piece of functionality.

Solving this problem likely requires making sure that avahi-daemon, bonjour/zeroconf, or some other mDNS resolver library is installed on the devices, and may require additional configuration or code changes, depending on what modifications Amazon has made.

STEPS TO REPRODUCE:

  1. Get on a Wi-Fi network that has at least at least one device that publishes a web service using Bonjour/mDNS.
  2. Type that device’s DNS name into the Silk browser.
  3. Observe that it cannot find the host.
  4. Observe that every single device in your household that wasn’t made by Amazon can find the host without any difficulty.
  5. Repeat with a few more Fire tablets until you are convinced that the people complaining about this on Reddit know what they’re talking about.

REGRESSION:

This is known to be broken in Fire OS 8. Other versions may or may not be affected.

This is not caused by DNS-over-HTTP. I have verified that disabling that feature does not fix the problem.

Third-party apps are also affected, i.e. this is not specific to the Silk browser.

ADDITIONAL INFORMATION:

There is an ongoing Reddit thread here:

https://www.reddit.com/r/homeassistant/comments/1783jpx/homeassistantlocal_not_working_on_fire_tablet/

Hi,

Thanks for the question and welcome to the Amazon Appstore community space!

We are looking into this, and will get back to you as soon as we have an update.

Best,

Moses

Moses,

What is the status of this? mDNS is important.

Hi John,

I have pinged the team again, we’ll let you when they respond.

Thanks,

Moses

Hello @dgatwood / @John_Hanley

Thank you for your patience. Please note that Fire OS 8 was built on Android 10 (API Level 29) and Android 11 (API Level 30), which was released in 2020:

AOSP added .local support only in Android 12 from November 2021, please see:
DNS সমাধানকারী  |  Android Open Source Project.

Therefore, FireOS 8 doesn’t support .local resolution.