2

In Android, you can disable a built-in app so it won't run and will disappear from the app list. But it will still remain on the phone and can be easily re-enabled.

However, there's no such option for downloaded applications, you can only uninstall it.

Is there, perhaps, a hidden way to do so?

A use case could be a public transport app for a city that you visited for a while, and may visit some time again. You don't want to lose bookmarked routes, but you don't want it to update its schedules and waste internet traffic and other resources, either.

  • 2
    You can use the pm command from either adb or a terminal emulator to enable or disable any app (package) by package name. pm is short for package manager and can do more than just installing, disabling or listing packages. – GiantTree Jun 1 '16 at 12:10
  • @GiantTree seems like pm disable is the answer. Why don't you post it as a proper anwser so I can accept it? – WGH Jun 1 '16 at 12:16
4

Requires root (at least on 6.0.1). System permissions (uid<=1000) is required but adb runs as userid 2000.

The Package Manager (pm) will do exactly what you want.

In either adb or Terminal Emulator (both require root), run the pm command and you can see its capabilities.

We look at 2 of them:

  • pm list packages
  • pm disable <package>

pm list packages lists all installed packages, this list is unsorted but if you know some easy bash, you can use grep to search for substrings in the package names:

pm packages list | grep google will list all packages with "google" in their name, effectively returning just Google's apps:

Sample output:

package:com.google.android.apps.unveil
package:com.google.android.gsf.login
package:com.google.android.apps.translate
package:com.google.android.backuptransport
package:com.google.android.apps.books
package:com.google.android.apps.giant
package:com.google.android.ears
package:com.google.android.keep
package:com.google.android.talk
package:com.google.android.apps.ads.publisher
package:com.google.android.apps.youtube.music
package:com.google.android.play.games
package:com.google.android.apps.magazines
package:com.google.android.apps.adm
package:com.google.android.inputmethod.latin

pm disable <package name> disables a single package you specified. Disabling the Google Keyboard would then be pm disable com.google.android.inputmethod.latin.

To find out what package name maps to what app try this url: https://play.google.com/store/apps/details?id=<package name>
Replace <package name> with the package name you want to check.

Instead of using pm, you can use Titanium Backup, given that your device is rooted.

In Titanium Backup you can scroll through all your apps, filter that list and select the app you want to disable or in TB's case freeze.
This, however, requires the paid version of Titanium Backup.

  • +1 great answer. Maybe you can include further ways of doing this (for users who don't want to operate with a terminal). For example: Using a File Explorer with root privileges and browse to /data/app. Find the Folder of the application you want to disable, browse into it and change the file extension of the base.apk to base.apk.disabled. Or if someone is already using Titanium Backup they might want to use that. Does pm disable require root privileges? – benjamin Jun 1 '16 at 12:45
  • 1
    @benjaminS well pm requires at least system permissions. Running it from adb will work but from a terminal emulator will require root permissions. I add more information to my answer. – GiantTree Jun 1 '16 at 12:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.