- How to disable any pre-installed system app bloatware on Android without root
- Disable Any Pre-Installed System App On Android Without Root
- Re-enable Any Disabled Pre-installed System App
- What did we do?
- Disabling built in apps android
- Enabling Device Owner Mode
- Uninstalling Apps Programmatically
- Hiding Apps
- Useful Tools
- How to block or remove built in apps on an android phone
- How to block or remove built in apps on an android phone
How to disable any pre-installed system app bloatware on Android without root
What we define as “bloatware” is subject to personal preference, but I think we can all agree that some manufacturers and carriers are more guilty of including it on their smartphones than others. Bloatware can, depending on your point of view, range from being a pre-installed app like Facebook to the stock, non-Google Photos gallery app. One person’s hated bloatware is another person’s beloved feature, but unfortunately for the person who classifies certain pre-installed apps as bloatware, they typically can’t uninstall it. Sometimes you can disable system apps, but not every system app will let you disable it.
There are ways around these limitations, though. We wrote a guide a while back that taught you how to “uninstall” any pre-installed system app on your Android smartphone or tablet. The problem with that method is twofold: it doesn’t actually fully uninstall the app and return space to the user and reverting the change requires you to either sideload the APK (if you can find it) or factory reset. Still, that method is quite useful and we’ve seen dozens of forum posts and user scripts taking advantage of it to debloat their new Android devices. To help users debloat their devices in a safer way, we would like to turn your attention towards another method that will not only disable the pre-installed bloatware of your choosing but also make it super easy to re-enable them at your convenience, making any mistake a lot easier to recover from. We’ll still be using ADB commands to mess with system applications so be sure you don’t disable anything absolutely critical (use your best judgment), but this method is a lot friendlier in case you disable the wrong app.
Disable Any Pre-Installed System App On Android Without Root
- Follow this tutorial to get ADB up and running on your Windows, Mac, or Linux PC. ADB, or Android Debug Bridge, is a developer tool that lets you issue some powerful commands to control your device. We use it a lot in our tutorials to do things that you otherwise can’t do without a rooted device.
- Download an app like App Inspector from the Google Play Store.
- Get the package name of the app you want to disable using App Inspector. Here are screenshots showing you how:
Opening command window on Windows 10
Windows PowerShell: .\adb shell pm disable-user —user 0
Mac/Linux Terminal: ./adb shell pm disable-user —user 0
Windows Command Prompt: adb shell pm disable-user —user 0 com.miui.cleanmaster
Windows PowerShell: .\adb shell pm disable-user —user 0 com.miui.cleanmaster
Mac/Linux Terminal: ./adb shell pm disable-user —user 0 com.miui.cleanmaster
And we’re done! The app should immediately become disabled and will disappear from your launcher. Do note that on rare occasions, some apps may automatically be re-enabled if the system has a function to re-enable it. For example, disabling the stock EMUI 9 launcher on Chinese Huawei or Honor devices will result in the stock launcher become automatically re-enabled after some time. If that bothers you, try the “uninstall” method.
Re-enable Any Disabled Pre-installed System App
What if you disabled an app and want it back? It’s very easy to re-enable the app! First, go to Settings > AppsВ and look at the “All apps” list (it may be located somewhere different on your device.) Usually, you can filter here to see the names of all disabled apps. Once you know what app you want to re-enable, follow these steps:
- Open a command prompt or terminal window and run the following command:
Windows Command Prompt: adb shell pm list packages -d
Windows PowerShell: .\adb shell pm list packages -d
Mac/Linux Terminal: ./adb shell pm list packages -d - This command lists all disabled packages. Find the package name that corresponds to the app you want to re-enable. Now, just run the following command to re-enable one of them:
Windows Command Prompt: adb shell pm enable
Windows PowerShell: .\adb shell pm enable
Mac/Linux Terminal: ./adb shell pm enable
What did we do?
First of all, it’s important to differentiate what this command does and why it’s superior to the method that we used in our previousВ bloatware removal tutorial. In that tutorial, we uninstalled an application at a user level, which means it was still installed on the device in the system partition but not for the primary user (user 0). This is why to get it back you either needed to factory reset or sideload the APK. In this tutorial, we areВ disabling the app for the primary user rather than uninstalling it, which means that we can enable it without re-installing it again.
The pm disable-user command has been around for years, but it’s been overlooked in favor of pm disable. You would think that both pm disable-user and pm disable –user 0 would be identical, but you would be wrong. For some reason, the disable-user command lets you disable basically any application you want while the regular disable command is quite limited.
The best part about this method is that if you mess up and disable an application that you shouldn’t, it’s a really easy fix. You’ll also still receive OTA updates as you aren’t actually modifying any system files. That’s why we need the “–user 0” part of our command, which specifies that the app will only be disabled for the current user, not all users, which would require root access.
Источник
Disabling built in apps android
As part of the enterprise features, Android offers various APIs for device administration. Many of these APIs are not available to «regular» apps and can only be executed from an app running in Device Owner or Profile Owner mode.
I already showed how to install apps programmatically without user interaction in my previous post. In this post I would like to show additional features related to device administration — uninstalling & disabling apps.
Uninstalling apps without user interaction might be useful if you are, for example, administering an Android kiosk device. Having the option to do this programmatically allows you to implement remote admin feature which can remove unwanted apps remotely without the need to have somebody present at the device to confirm the uninstall dialog. You can also use it as an automated device setup feature, after installing your kiosk app onto a new device.
The other option is to disable apps programmatically. Some apps are pre-installed on the system partition which is usually read-only. You normally won’t be able to remove these apps without rooting. Android gives you the option to mark the application as «hidden». This makes the app disappear from launcher and app list, and it also prohibits to launch the app programmatically via an Intent. The app will still occupy space, but it will be inaccessible. This is again useful when you want to customize a single purpose device (like a kiosk) because it allows you to «remove» even the pre-installed standard apps (like the browser, email client, google play app. ) and make your device really single-purpose only.
In this post I’ll show how to accomplish both of these tasks. If you want to find more information about device administration and device owner mode, I also recommend to check out my other posts.
You can find the sample code for this post on github.
If you just need a quick way to hide/disable pre-installed apps, check out my blogpost about Sisabler
Enabling Device Owner Mode
Making your app a device owner allows it to execute some privileged tasks that are not available to regular apps. I already showed how to do this in my previous posts. I’ll give a quick summarization here, so that you don’t need to switch back and forth between posts.
First step is to extend the DeviceAdminReceiver class
Next you should create a device_admin.xml file inside of your res/xml folder
Then declare a BroadcastReceiver component inside of you AndroidManifest.xml file
Once you’ve built and installed the app to your target device, you can make it a devices owner with the following ADB command
Uninstalling Apps Programmatically
Before you try to perform the steps in this section, you need to make sure that your app has been configured as devices owner according to the steps in previous section.
To remove an app, I’ll use the uninstall method of PackageInstaller class. This methods accepts the package name that you want to remove and an IntentSender . The IntentSender is used to deliver the result of the uninstall process to your app.
You’ll also need to add REQUEST_DELETE_PACKAGES permission to your AndroidManifest.xml
To receive the result of the uninstall process, I decided to use a BroadcastReceiver that will deliver the result to my activity. From the code above you can see that I passed my custom action ( ACTION_UNINSTALL_RESULT ) when I was creating the intentSender , so that I can listen for this action inside of my BroadcastReceiver . You have also other options to deliver the intent (e.g. in onStartCommand() inside of a Service by using PendingIntent.getService() ), so feel free to adjust the code according to your requirements
Once the uninstall process has finished, you should receive the package name and some status message as part of intent extras. Getting the PackageInstaller.EXTRA_STATUS_MESSAGE string should give you something like «DELETE_SUCCEEDED».
Note that you won’t be able to remove pre-installed apps located on the read-only system partition and you also won’t be able to uninstall your own app which was made a device owner.
Hiding Apps
This options allows you to kind of «remove» also the pre-installed apps located on system partition by making them hidden and inaccessible. The apps will still occupy space, but it won’t be possible to launch them or even find them on the launcher and other lists that show installed apps.
You should be careful when using this option because you might also disable packages that are necessary for proper working of the device or packages that are necessary to make your own kiosk app work properly (you might not even be aware that you require some third-party package, until things in your app break unexpectedly).
To hide an app, you only need to do the following
You can see that in the code above I’m using the setApplicationHidden() method of DevicePolicyManager . This method accepts a ComponentName created from our DeviceAdminReceiver that I’ve implemented in the previous section, and the package name that we want to hide. The last parameter decides if the package should be hidden. That means you can use the same method to unhide a package that was hidden previously.
Note that after calling setApplicationHidden() on a package, you won’t be able to list the package with PackageManager’s methods, if you only provide default arguments
But calling these methods with MATCH_UNINSTALLED_PACKAGES should also give you the hidden packages
You can then check if a package is hidden by calling DevicePolicyManager.isApplicationHidden()
Useful Tools
In case you don’t want to build the project yourself, you can just download my prebuilt Sisabler app, which allows you to disable system apps. You can then activate it as device owner with the following command via ADB
If you’re interested in the technical aspects of Android, I recommend to check out my Bugjaeger app.
Bugjaeger allows you to perform various Android maintenance & administration tasks that you normally perform from your laptop computer (including uninstalling apps) directly from your phone. It additionally allows you to execute scripts and get hidden device info that you would normally get only via ADB.
You can even use it to install your kiosk app and activate the device owner mode directly from your phone or table (without having your development machine at hands).
Источник
How to block or remove built in apps on an android phone
Hey everybody, this is my first post, quite intimidating I must say.
Is there a way to block or remove built in applications on an android phone. I want to limit what you can do on the phone e.g. only call, text, email and use one or two third party applications. Is it possible to do that without rooting the phone?
Looking to do this on a Samsung Galaxy Pocket
Hey everybody, this is my first post, quite intimidating I must say.
Is there a way to block or remove built in applications on an android phone. I want to limit what you can do on the phone e.g. only call, text, email and use one or two third party applications. Is it possible to do that without rooting the phone?
Looking to do this on a Samsung Galaxy Pocket
A lot of built-in apps can be disabled by going in to Settings>Apps>All and selecting “Disable” inside the app you don’t want.
The app itself then disappears from your app drawer although it can be re-enabled at any time by going Settings>Apps>Disabled and selecting the appropriate app from there. Most apps can safely be disabled, although some may interact with another app or function you may want to use in which case that particular app/function may not work.
There are other seperate processes and functions which can also be disabled: e.g.disabling com.android.providers.partnerbookmarks will remove the annoying unwanted bookmarks in Chrome, but I would be very careful about disabling any of these options if you’re unsure about what you’re doing..
Thanks for all the responses!
I would like to prevent anyone using basic functions, I want to use the phone for a survey but don’t want the users to access applications or functions that are not necessary. This includes the settings function. I downloaded Hi AppLock but was just wondering if there were other ways to do it. I guess that is the only root. I plan on removing most of the useless apps and then locking the rest , then put them in a folder and hide the applications in it.
How to block or remove built in apps on an android phone
Источник