Reset Android App Permissions to Default Using ADB (No Root)

13 min read Learn step‑by‑step how to reset all runtime permissions on an Android device back to their default state using ADB, without needing root access. October 10, 2026 20:30 How to Reset Android App Permissions to Default Using ADB (No Root)

Why you might need to reset app permissions

Android’s runtime permission model asks you for access to sensitive resources (camera, location, contacts, etc.) the first time an app needs them. Over time you may have granted, denied, or revoked many permissions. Situations that call for a clean‑slate reset include:

  • After flashing a custom ROM and noticing inconsistent permission behaviour.
  • When troubleshooting an app that suddenly crashes because a required permission is missing.
  • Preparing a device for a new user or a resale without doing a full factory reset.
  • Cleaning up after a security audit where you want to ensure no stray grants remain.

Manually toggling each permission in Settings ▶ Apps ▶ [App] ▶ Permissions is tedious, especially if you have many apps. The Android Debug Bridge (ADB) provides a single command that restores the default “ask‑again” state for all runtime permissions, and it works on devices that are not rooted.

Before you start

Prerequisites

  • A Windows, macOS, or Linux computer with Android Platform‑Tools installed.
  • A USB cable (or Wi‑Fi ADB if you prefer a wireless connection).
  • The Android device you want to modify.
  • Developer Options enabled on the device (see step 1 below).

All steps assume the device is running Android 6.0 (Marshmallow) or newer, because that is when runtime permissions were introduced. The pm reset-permissions command is available on Android 6.0+ but may be restricted on heavily customised OEM skins; the tutorial notes those cases.

Step 1 – Enable Developer Options and USB debugging

  1. Open Settings on the Android device.
  2. Scroll down to About phone (or About tablet).
  3. Find Build number and tap it seven times. You’ll see a toast that says “You are now a developer!”.
  4. Return to the main Settings screen; a new entry Developer options appears.
  5. Enter Developer options and toggle USB debugging on.
  6. If a prompt appears asking to allow USB debugging from this computer, tap Allow. You can also check “Always allow from this computer” to avoid re‑authorising later.

Why this matters: USB debugging opens a secure channel for ADB to issue commands. Without it, the computer cannot communicate with the device.

Step 2 – Install and verify ADB on your computer

  1. Download the platform-tools zip from the official Android developer site.
  2. Extract the zip to a convenient location, e.g., C:\adb on Windows or ~/adb on macOS/Linux.
  3. Open a terminal (Command Prompt, PowerShell, Terminal, etc.) and navigate to the extracted folder.
    cd path/to/platform-tools
  4. Run adb version to confirm the binary is accessible.
    adb version
    Android Debug Bridge version 1.0.41
    Version 31.0.3-7562133

If the command is not found, add the folder to your system PATH or always invoke it with the full path.

Step 3 – Connect the device and confirm the link

  1. Plug the Android device into the computer using the USB cable.
  2. In the terminal, type:
    adb devices
  3. You should see a line like:
    0123456789ABCDEF    device
    If the status reads unauthorized, check the device screen for the RSA fingerprint prompt and tap Allow.
  4. Optional – test a simple command to ensure communication works:
    adb shell getprop ro.build.version.release
    This should output the Android version number (e.g., 11).

Why this matters: A successful adb devices listing proves the computer can send commands to the phone.

Step 4 – Reset all runtime permissions to their default state

  1. Execute the following command:
    adb shell pm reset-permissions
  2. Wait a few seconds. The command does not produce output on success; it silently returns the prompt.
  3. To verify, pick an app you know you granted a permission to (e.g., Camera). Open its permission page on the device and you should see the toggle set to Ask every time (or the default “off” state for that permission).

What the command does: It clears the runtime permission grant database for all apps, returning each permission to the system‑defined default. For most permissions the default is “denied until the app asks”. System apps that require certain permissions for core functionality are automatically re‑granted by the OS.

Step 5 – Optional: Reset permissions for a single app

Sometimes you only need to clean one misbehaving app. While pm reset-permissions works globally, you can achieve a per‑app reset by revoking all runtime permissions manually via ADB. The following script loops through the permissions a particular package holds and revokes them:

PACKAGE="com.example.app"
PERMS=$(adb shell dumpsys package $PACKAGE | grep granted=true | awk -F= '{print $2}')
for PERM in $PERMS; do
  adb shell pm revoke $PACKAGE $PERM
done

After revoking, the next time the app needs a permission Android will prompt the user again, effectively achieving a “reset” for that app only.

Step 6 – Verify the reset worked across the device

  1. Open Settings ▶ Apps & notifications ▶ See all apps.
  2. Select a few apps you frequently use (e.g., Maps, WhatsApp, Camera).
  3. Tap Permissions. Most toggles should now be in the “Ask every time” or “Off” position, matching the default for that Android version.
  4. If an app still shows a permission as “Allowed”, launch the app and deny the permission when prompted; this confirms the OS is now asking again.

Note: System‑level permissions (e.g., android.permission.ACCESS_NETWORK_STATE) are not exposed in the UI and remain granted because they are required for basic operation.

Step 7 – Edge cases and manufacturer quirks

Not all devices behave identically. Below are common variations and how to handle them:

  • OEM skins (e.g., Samsung One UI, Xiaomi MIUI): Some manufacturers hide the pm reset-permissions command behind a permission‑policy layer. If you receive java.lang.SecurityException: Permission denial, try running the command as the “shell” user:
    adb shell su 0 pm reset-permissions
    This requires the device to be rooted; otherwise you must fall back to the per‑app revocation script.
  • Android 5.x (Lollipop) and earlier: Runtime permissions do not exist, so the command is unavailable. In that case you can only clear app data (adb shell pm clear <package>) which also removes stored permissions.
  • Wireless ADB: If you prefer a cable‑free workflow, enable Wireless debugging (Android 11+) in Developer options, then connect with:
    adb connect 192.168.1.42:5555
    The rest of the procedure is identical.

Troubleshooting

ADB reports “command not found” or “pm: not found”

Make sure you are using the adb shell prefix. The pm tool lives inside the device’s shell, not on the host computer. The correct syntax is adb shell pm reset-permissions.

Permission denial / SecurityException

This occurs on devices that restrict the pm command to privileged users. Options:

  • Check whether the device is running a custom ROM that disables the command.
  • Use the per‑app revocation script instead (no privileged access needed).
  • If you have root, prepend su 0 as shown above.

Device shows “unauthorized” after plugging in

Re‑connect the USB cable, unlock the phone, and accept the RSA fingerprint dialog. If the dialog never appears, toggle USB debugging off and on again, then retry.

After reset, an app still works without asking for permission

Some apps cache the permission state internally. Force‑stop the app (Settings ▶ Apps ▶ [App] ▶ Force stop) or clear its data (adb shell pm clear <package>) to force a fresh permission request.

Safety warnings

  • Data loss: The global reset does not delete app data, but revoking permissions may cause apps to misbehave until you grant the needed access again.
  • Security risk: Keep USB debugging disabled when you are not actively using ADB. Leaving it on makes the device vulnerable to unauthorized connections on a compromised computer.
  • OEM restrictions: Some manufacturers lock down the pm tool. Attempting to bypass these restrictions without proper knowledge can brick the device.

When to use this method vs. a full factory reset

A full factory reset wipes user data, accounts, and apps – a heavy‑handed approach. Resetting permissions via ADB is a lightweight alternative when you only need to clean the permission state while preserving user data. It is especially handy before handing a device to a new user who may want to start with a fresh permission set without losing photos, messages, or installed apps.

Summary of the workflow

  1. Enable Developer options and USB debugging on the Android device.
  2. Install ADB on your computer and verify the connection with adb devices.
  3. Run adb shell pm reset-permissions to clear all runtime permission grants.
  4. Optionally, use the provided script to reset permissions for a single app.
  5. Verify the reset in the device UI and re‑grant permissions as needed.
  6. Address any OEM‑specific quirks or errors using the troubleshooting section.

Following these steps gives you a clean permission slate without the hassle of a factory reset, preserving your data while restoring the privacy‑first behaviour Android was designed for.

User Comments (0)

Add Comment
We'll never share your email with anyone else.