Skip to content

Installation · Concept

WebAPK: how Chrome installs PWAs on Android

Published

Widely available since 2017-03Vendor

In one line: When you install a PWA on Chrome for Android, Chrome generates a thin native APK called a WebAPK — not a plain home-screen shortcut — which gives the app its own Android package identity, splash screen, and deep-link registration without requiring Play Store distribution.

A WebAPK (Web App Package) is a lightweight Android APK generated by Google’s WebAPK minting server at install time. Chrome submits the PWA’s manifest details to the server, receives back a signed APK, and Android installs it like any other app. The APK itself contains no web content; it is a shell that launches Chrome at the PWA’s start_url within a customized Chrome runtime.

Consequences of WebAPK installation:

  • The app appears in the Android app drawer and can be uninstalled from Settings → Apps like any native app.
  • Android assigns the app a unique package name (usually derived from the manifest’s start_url), giving it its own process identity.
  • Deep links registered in the manifest’s scope are captured by the WebAPK rather than opening in a browser tab.
  • A splash screen is generated from the manifest’s name, background_color, and 512 × 512 icon automatically.
  • The app shows in recents (multitasking) as a standalone card.
  1. User accepts the install prompt (beforeinstallprompt → prompt() accepted, or taps the browser’s ambient install UI).
  2. Chrome sends the manifest URL, manifest contents, and icon hashes to the Google WebAPK minting server (https://webapk.googleapis.com).
  3. The server generates and signs an APK.
  4. Chrome installs the APK via PackageInstaller; Android treats it as a real app.

The minting server is operated by Google and is required for Chrome’s WebAPK path. Samsung Internet has its own equivalent mechanism for Samsung devices.

Chrome checks the PWA’s manifest every 24 hours (approximately). If the manifest changes — name, icons, colors, scope, or start_url — Chrome triggers a re-mint and Android silently updates the WebAPK. The update is seamless; the user does not see a prompt unless the package name itself must change (a rare edge case).

Implication: manifest changes propagate to installed apps within a day. You do not need to push a new native release.

  • Native Android APIs beyond what the web platform exposes. The WebAPK is a shell; business logic still runs as web code in Chrome.
  • Play Store listing or distribution — that requires a Trusted Web Activity (TWA). See TWA reference.
  • Custom Chrome flags or extensions. The WebAPK launches the user’s installed Chrome, so the behavior matches the user’s Chrome version.
  • Offline install. If the minting server is unreachable at install time, Chrome falls back to a plain shortcut instead of a WebAPK.
WebAPK Plain shortcut
Android package identity Yes (unique package name) No
Appears in app drawer Yes Yes (home screen only)
System Settings → Apps Yes No
Splash screen Auto-generated No
Deep link capture (intents) Yes (scope-matched URLs) No
Uninstall from Settings Yes Long-press on home screen only
Minting server required Yes No

Samsung Internet generates WebAPKs for PWAs installed through its own browser using Samsung’s minting infrastructure. The experience is equivalent to Chrome’s WebAPK but the APK is signed by Samsung. The minting server is not interchangeable with Google’s.

Firefox for Android (128+) installs PWAs as plain shortcuts; it does not generate WebAPKs. The app experience is more limited: no Android package identity, no deep-link capture, no appearance in Settings → Apps as a dedicated entry.

iOS does not use the APK model at all. Safari creates a web clip — a shortcut that opens in a Safari session with its own window. There is no equivalent of WebAPK; see iOS Add to Home Screen for the iOS-specific behavior.

To reach Play Store distribution for a PWA, you need a Trusted Web Activity (TWA) rather than a WebAPK. See Trusted Web Activity (TWA).

Specifications

SpecificationStatus
WebAPK availabilityVendor
  • Legend
  • Yes
  • Partial
  • Flag
  • No
  • Unknown
Browser / PlatformSupportVersionsConfidenceSourceNotes
Chrome (Android)Yes57mediumsource12
  1. Generates a WebAPK via Google's minting server at install time.
  2. No cross-browser compatibility dataset (BCD/caniuse) covers WebAPK; version verified from Chrome Platform Status.

Source data: /compatibility/webapk.json · Global usage: 64 % (StatCounter 2026-05)

Source: spec · Last verified 2026-07-16 · Confidence: medium (computed from sources)