ArticleImage

Fabricated Software Versions: ‘Android 10; K’, and similar instances

Data Team

10/7/2024 12:00 PM

Client Hints Device Detection Web

Why do some User-Agents return 'Unknown' software versions?

At 51Degrees, our priority is accurate device detection. We meticulously research the information provided in User-Agent strings to determine if they reference legitimate software versions. During this process, we frequently encounter User-Agents with fabricated or inaccurate version numbers.

Consider the following example:


Mozilla/5.0 (Macintosh; Intel Mac OS X 11_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36

For Big Sur, the last version was 11.7.10.

mac-os-big-sur-versions
As can be seen on Apple’s official list of software versions for macOS Big Sur, there was never a version of macOS with a version number of 11.15.7.

In this instance, the operating system has reached its end of life and is no longer maintained.

At 51Degrees, we maintain a commitment to transparent and reliable device detection. Therefore, we do not report inauthentic or fabricated software versions. Instead, we return “PlatformVersion = Unknown” for unverifiable data. Our research team emphasizes the highest quality and only returns what can be substantiated.

'Android 10; K': the Reduced User-Agent explained

With the introduction of Client Hints as part of Google’s User-Agent reduction initiative, the structure of User-Agent strings has changed. When Client Hints are supported by the browser, the User-Agent header is reduced, with additional device details relayed through the Client Hints headers.

For example, the User-Agent string might display:


Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.3

At first glance, it appears the device is running Android 10, and the device model is identified as "K". However, this is actually a reduced User-Agent string. By examining the accompanying Client Hint headers, we can obtain more accurate information, such as:


Sec-CH-UA: "Chrome"; v="128"
Sec-CH-UA-Mobile: ?1
Sec-CH-UA-Platform: "Android"
Sec-CH-UA-Platform-Version: "14"
Sec-CH-UA-Model: "Pixel 9"

reduced-ua-tester-results-page
Here is how the results are displayed on our User-Agent tester.

As shown, these headers provide clearer and more specific device details.

Accurately Detecting Devices with Reduced User-Agents

Since 'Android 10; K' does not represent the actual Android version or device name, 51Degrees will return “PlatformName = Android” and “PlatformVersion = Unknown” in such cases.

By leveraging Client Hints, 51Degrees continues to provide trustworthy and detailed device detection, maintaining our commitment to accuracy and transparency.

We offer a range of resources, including concise documentation and various tools, to simplify the process:

Need more help?

You can raise issues through our GitHub page, selecting the repository corresponding to the language used to access the API, or by reaching out to us at firstlinesupport@51degrees.com.

Looking for more personalized assistance? Our priority support package offers direct access to our expertise. We will guide you through configuring your specific setup to ensure optimal accuracy and the fastest detection capabilities provided by the powerful 51Degrees API.