GuidePublished: 4 min read

How to Install an APK with ADB (and From Your Browser)

Install an APK on Android with adb install, fix INSTALL_FAILED errors, or skip the command line and sideload from your browser with ADBKit.

To install an APK with ADB, connect your phone with USB debugging enabled and run adb install app.apk from the folder that contains the file. ADB pushes the package to the device and installs it without you touching the screen. If you would rather not set up command-line tools, you can also install an APK from a Chromium browser using the Install APK panel in ADBKit.

Warning: An APK has the same access as any other app you install. Only sideload files from sources you trust, such as the developer's official site or your own builds, and never from random download pages.

Before you start

You need three things: the Android platform-tools on your computer (which provide the adb command), USB debugging enabled on the phone, and a USB cable. If debugging is not on yet, follow how to enable USB debugging on Android first. Then confirm the phone is visible:

adb devices

The device should be listed as device. If it says unauthorized or offline, see fixing ADB device busy or unauthorized errors.

Install an APK with adb install

The basic command takes the path to the file:

adb install app.apk

On success you will see Performing Streamed Install followed by Success. The most useful options are:

OptionMeaning
-rReplace (reinstall) an existing app and keep its data
-dAllow a version downgrade
-gGrant all runtime permissions listed in the manifest
-tAllow test-only APKs

For example, to update an installed app and grant its permissions in one go:

adb install -r -g app.apk

If you have more than one device or emulator connected, pick one with -s:

adb -s <serial> install app.apk

Apps made of split APKs

Some apps are distributed as several files (a base APK plus configuration splits). Install them together with adb install-multiple:

adb install-multiple base.apk split_config.arm64_v8a.apk split_config.xxhdpi.apk

All files must belong to the same app and the same version.

Uninstall an app with ADB

To remove an app you need its package name, not its file name. Find it with:

adb shell pm list packages | grep example

Then uninstall it:

adb uninstall com.example.app

Add -k if you want to remove the app but keep its data and cache directories.

Common INSTALL_FAILED errors

When an install fails, ADB prints a code such as INSTALL_FAILED_ALREADY_EXISTS. These are the ones you will meet most often:

ErrorCauseFix
INSTALL_FAILED_ALREADY_EXISTSThe app is already installedAdd -r to replace it
INSTALL_FAILED_UPDATE_INCOMPATIBLEThe installed copy is signed with a different keyUninstall the existing app first (this deletes its data), or use the APK signed by the original developer
INSTALL_FAILED_VERSION_DOWNGRADEThe APK is older than the installed versionAdd -d, or uninstall first; downgrades may be refused for non-debuggable apps
INSTALL_FAILED_INSUFFICIENT_STORAGENot enough free spaceFree up storage and retry
INSTALL_FAILED_TEST_ONLYThe APK is marked test-onlyAdd -t

A signature mismatch is the error that surprises people most. Android refuses to update an app with a package that was signed by a different key, which is a deliberate protection against tampered updates.

Unknown sources and Play Protect

Installing through ADB does not use the "install unknown apps" permission that applies to apps and browsers, because you are installing from a trusted debugging connection. However, some phones still show a confirmation prompt on screen, and Google Play Protect may scan or warn about the APK. Manufacturers differ here, so if an install seems stuck, look at the phone screen for a prompt.

Install an APK from your browser with ADBKit

If you only need to install a file, you can skip platform-tools entirely. ADBKit is a free browser workspace that talks to your phone over WebUSB, with no install and no account.

  1. Open ADBKit in a Chromium-based desktop browser such as Chrome or Edge. Firefox and Safari do not support WebUSB.
  2. Enable Developer options and USB debugging on the phone, plug it in, and click Connect device.
  3. Choose your phone in the browser's USB window and tap Allow on the phone.
  4. Open the Install APK panel and choose your .apk file.
  5. Tick the option to replace an existing install if you are updating an app. ADBKit asks you to confirm before it replaces anything.

The APK goes only between your browser and the phone; ADBKit has no server that receives it. Only one program can hold the USB connection at a time, so close Android Studio, scrcpy, other ADBKit tabs, or run adb kill-server if the connection fails. For the full command reference, see the ADB commands cheat sheet.