Lies, damn lies and Amazon user agents
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.