Lies, damn lies and Amazon user agents

Orde Saunders' avatarPublished: by Orde Saunders

Recently I was looking at something on an Amazon Fire phone and, specifically, the user agent string of the Silk browser. What I found is a perfect demonstration of the main problem associated with sniffing user agents: they are very unreliable.

Fire OS 3.6

As I hadn't used the device in a while it was running an older version of the operating system. The 3 series of Fire OS is reportedly based on Android 4.2 and the key elements of the user agent were:

  • Android 4.2.2
  • Chrome 37
  • Silk

(The WebKit version is already established as being effectively meaningless.)

The full user agent string is: Mozilla/5.0 (Linux; U; Android 4.2.2; en-gb; SD4930UR Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Silk/3.44 like Chrome/37.0.2026.117 Mobile Safari/537.36

Fire OS 4.6

Once the device had been on and connected for a while it picked up a system update which I installed. This took the operating system up to version 4.6 which is reportedly based on Android 4.4. The user agent of the Silk browser changed and the key elements are now:

  • Android 4.0.3
  • Chrome 31

From this it would appear the browser has regressed and no longer identifies itself as a Silk - or Amazon Fire - device.

The full user agent string is: Mozilla/5.0 (Linux; U; Android 4.0.3; en-us) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36 (Identified by WURFL as a Motorola MT788 (RAZR i))

E Ink Kindles

As I've previously outlined, later model E Ink Kindles report different user agents to the server and the client with the client side user agent not identifying itself as a Kindle at all.

Conclusion

Whilst I've not tested a recent Kindle Fire tablet it seems that, due to their user agent obfuscation, Amazon Fire Phones and E Ink Kindles are essentially undetectable by their user agents and thus unlikely to show up in most analytics packages.