10

How to disable system apps without root?

My phone model is vivo x5 max+ and android 4.4.4

I have tried Debloater but it failed to connect (I am sure I've allowed USB debugging).

lurk lurk
  • 101
  • 1
  • 1
  • 3

1 Answers1

12

Provided that you've setup and functioning, use this command in a console:

adb shell pm block PACKAGE              # for Android Kitkat
adb shell pm hide PACKAGE               # for Android Lollipop
adb shell pm uninstall --user 0 PACKAGE # for Android Marshmallow and Nougat. This is bit tricky. Some reports its result positive, while others, negative. Also note that, later, you cannot restore the app here. It can only be reinstalled again. 
adb shell pm disable-user --user 0 PACKAGE # tested on Android Nougat and Oreo. Might work on earlier versions as well. 

Replace PACKAGE with the package name of the app. To know the package name, try any app inspector type app from Play Store, such as App Detective, AppXplore, Elixir 2, etc.

The changes should take place immediately, otherwise, try rebooting the device.

Note: stock ROM implementations by some OEMs, such as Xiaomi and Panasonic, do not permit the aforesaid commands to be used without more elevated privilege, and thus, throws a permission/privilege related error.

Revision made wrt to info received from Prahlad Yeri in the comments.

Firelord
  • 25,084
  • 20
  • 124
  • 286
  • 1
    I always used adb shell pm disable. Is there a difference? – Grimoire Aug 27 '17 at 18:26
  • 1
    Your kernel might be granting root access automatically, otherwise, pm disable requires root access, but block doesn't. Without root access in former, you get java.lang.SecurityException. Related: https://android.stackexchange.com/q/128949/96277 – Firelord Aug 27 '17 at 18:44
  • Just out of curiosity, as the OP is running 4.4, I guess it's ok if 7.1 doesn't have the block command, right? – Charles Roberto Canato Dec 27 '17 at 23:44
  • 1
    @CharlesRobertoCanato just replace block with hide. This change was introduced starting Android 5.0. – Firelord Dec 28 '17 at 12:07
  • thanks @Firelord, I ended up finding out that it's hide now. Unfortunately, it seems it also doesn't execute without the needed permissions. Tried inside a terminal emulator, and also through ADB with the same unsuccessful result. But thanks for the info! – Charles Roberto Canato Dec 29 '17 at 03:14
  • 4
    @CharlesRobertoCanato Instead of block/hide, the latest way to disable OEM bloatware these days is pm uninstall --user 0 <package>. It works perfectly even without a root, but you need to be careful as the uninstall can't be undone unless you factory reset. – Prahlad Yeri Aug 24 '18 at 15:11
  • That seems cool, @PrahladYeri. But I admit I don't like the irreversible characteristic. It's a limited world for us, blockers. :-) – Charles Roberto Canato Aug 30 '18 at 23:08
  • Actually it is reversible, but you need to resort to a factory reset in that case. If you take a backup and everything, it shouldn't be a problem actually. – Prahlad Yeri Aug 31 '18 at 03:22