Skip to content
Free tool · Follows every browser release

Android user agent strings

The User-Agent strings Chrome 155, Edge 155 and Firefox 158 send on Android phones and tablets, why Chrome's no longer name the phone, and the Client Hints that carry the model and Android version instead.

Chrome for Android
155155.0.8059.84
Edge
155
Firefox
158

Chrome from Chromium Dash, Edge from Microsoft's update feed (Edge for Android shares the desktop version numbers), Firefox from Mozilla; checked every six hours.

Current Android user agents

BrowserUser-AgentPlatform / Mobile hintsCopy
Chrome (phone)Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Mobile Safari/537.36"Android" / ?1
Chrome (tablet)Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36"Android" / ?0
Edge (phone)Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Mobile Safari/537.36 EdgA/155.0.0.0"Android" / ?1
Edge (tablet)Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36 EdgA/155.0.0.0"Android" / ?0
FirefoxPhone and tablet; Android 16 shownMozilla/5.0 (Android 16; Mobile; rv:158.0) Gecko/158.0 Firefox/158.0none

Chrome 155 on Android also sends Sec-CH-UA: "Google Chrome";v="155", "Chromium";v="155", "Not(A:Brand";v="24"; Edge sends the same kind of list with Microsoft Edge in place of Google Chrome ("Microsoft Edge";v="155", "Chromium";v="155", "Not(A:Brand";v="24"). Firefox sends no Client Hints.

Why "Android 10; K"

Chrome writes the same platform part on every Android phone and tablet: Linux; Android 10; K (GetUnifiedPlatform in Chromium's source). It is the last step of Chrome's User-Agent reduction (Google's explainer): the Android version is fixed at 10, the model is replaced with K, and the version is reduced to 155.0.0.0. Every Chromium browser that keeps Chrome's string, Edge included, inherits it.

The detail did not disappear; it moved to Client Hints a site has to request:

Frozen in the stringWhere the real value is
Android 10Sec-CH-UA-Platform-Version, e.g. "16.0.0"
KSec-CH-UA-Model, e.g. "Pixel 9"
Chrome/155.0.0.0Sec-CH-UA-Full-Version-List, e.g. 155.0.8059.84
Mobile (or its absence)Sec-CH-UA-Mobile: ?1 on phones, ?0 on tablets

A site that wants them answers with Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version; Chrome then includes them on later requests to that site.

Firefox, WebView and the other Android browsers

  • Firefox keeps its own format: Android N; Mobile; rv: with the real Android major version (below 10 it says 10), no model, Mobile on tablets as well, and the version where desktop Firefox has Gecko/20100101 (Gecko source). More on the Firefox user agent page.
  • Android WebView, the engine inside apps, adds ; wv and Version/4.0. Apps often append their own name (Facebook, Instagram and others do), which is how in-app visits show up in logs.
  • Samsung Internet, Opera, Brave and others are Chromium browsers. Most add their own token (SamsungBrowser/, OPR/); Brave sends Chrome's string unchanged and shows its name only in Sec-CH-UA.

Phone, tablet or emulated?

Phone or tablet: Mobile in the string and Sec-CH-UA-Mobile: ?1 mean a phone (or a tablet asking for mobile pages). Real device or a desktop pretending: a desktop browser in device mode can send these exact headers, but its screen size, touch support, sensors and GPU usually still describe a computer. The browser fingerprint test compares those against the string, and what is my user agent shows the string and the hints side by side.

FAQ

What is the latest Android user agent?

Chrome 155 on an Android phone sends Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Mobile Safari/537.36, on every phone and every Android version. Chrome is the most used browser on Android, so this is the string most Android visits carry.

Why does every Android phone say Android 10 and K?

Because Chrome's User-Agent reduction replaced the real Android version with 10 and the device model with K, on every device. The string used to name the phone (for example SM-S921B or Pixel 8) and its Android release; that made visitors easy to tell apart, so Chrome moved both to Client Hints that a site has to ask for.

How do I get the real Android version and phone model?

Ask for them. Send Accept-CH: Sec-CH-UA-Model, Sec-CH-UA-Platform-Version in a response, and Chrome's next requests to your site carry the model (for example "Pixel 9") and the Android version ("16.0.0"). In a page, navigator.userAgentData.getHighEntropyValues(["model", "platformVersion"]) returns the same. Firefox for Android has no Client Hints but writes the real Android version in its string.

What is the difference between the Android phone and tablet user agent?

A tablet's string has no Mobile before Safari/537.36, and its Sec-CH-UA-Mobile is ?0. On many larger tablets Chrome asks for desktop sites by default, and then sends a desktop Linux string instead: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/155.0.0.0 Safari/537.36.

What is the Android WebView user agent?

Apps that show web pages inside themselves use Android System WebView, whose string adds ; wv inside the parentheses and Version/4.0 before Chrome/. Apps can also append or replace parts of it, so in-app browsers vary.

What is the Samsung Internet user agent?

Samsung Internet is built on Chromium and adds SamsungBrowser/ with its own version. We have not verified a current Samsung Internet string on a device, so it is not in the table.

How do I change the user agent on Android?

Chrome for Android has no setting for it beyond the Desktop site switch, which sends the desktop Linux string. Firefox for Android accepts general.useragent.override in about:config on its Nightly and Beta builds. For testing, Chrome DevTools' device mode on a computer sends these Android strings with matching Client Hints; see how to change your user agent.

Clearcote puts this into practice

An open-source Chromium with fingerprint control compiled into the engine. A drop-in for Playwright & Puppeteer.

Free for one browser with GitHub. No card.