[Android Software Development] gatesjunior:
Debloater by Gatesjunior

Disclaimer:

I nor XDA are responsible for anything that you choose to do with this program to your device or others. Modifying my code or redistributing it is not allowed without prior approval from me. Yes, that includes Kanging it, I will be able to tell. Neither is trying to use any of my code to create an apk file with my code logic allowed without prior approval from me.

Donations:

"If this application helps you out, please consider a small monetary donation to further improve development of this application. You can Donate by clicking the "Donate to Me" button on your left, underneath my Profile picture.

Background:

So after many times of going back and forth blocking / disabling apps on my devices through the command line and or shell, I decided to write a program to make this all much easier for myself. Well, after I got it all finally running and doing what I wanted, for each particular device I own, I decided that his was a pretty nice program and I wanted to share it with the community. After all, this community is where I started and learned a lot of the things I know today. So why not share with my family of Android enthusiasts.

Requirements:

The program requires that your manufacturer USB drivers are installed for your specific device as well as the following:

• Windows Operating System

• USB Debugging turned on for your device

• Root or KitKat and above running on your device

Some people have had trouble getting their PC to see their device, even with the device manufacturer drivers installed. Watch your device when you plug it in and authorize your computer to access it, the device should display a popup something for you to grant access to the PC. If it does not, go into Settings, Developer Options and look for an option that says something about Revoke USB debugging authorizations and tap it. Click ok. Now, unplug your device and plug it in while watching your device and click on the option to always allow this computer and then grant when the popup window displays.

What does it do?:

• Block / Disable applications on your device

• UnBlock / Enable applications on your device

• Allow UnBlock / Enable all applications at once on your device

• Allows filtering of the displayed packages for quicker decision making

• Allows exporting your blocked / unblocked listing to a file (Right click on Read Device Packages after list is loaded)

• Allows importing your blocked, or someone else's, listing (Right click on Read Device Packages after list is loaded)

• Allows complete removal of application(s) if you have root (It will backup the original folder structure and apk for you, just in case you need to restore the application(s) back to your device.

So, essentially what it does is this. It will disable / block any system and third party application on your device with ease and allow you to enable / unblock the application just as easy. It also reads everything, real-time, directly from your device, so that there are no messy batch files, scripts and txt files, etc. that you have to maintain and keep track of for every device you own. I mean let’s be honest, most of us own more than one device. Phones, tablets, etc. Who wants to maintain all those scripts and files for every device? The other nice thing that this program does is allow you to, at a granular level, control what is blocked/disabled and what is not. There are quite a few scripts and things like this available in the community that give everyone a start on what to disable/block, but who wants to scour through these scripts and decide what they want or don’t want with something someone else put together. The other nice feature of the program is it will display information for you about your device. Such as Model number, Serial number and battery status. As well as whether or not your device is rooted or not.

What audience of device does it support?:

This program supports many devices. It will support any device running KitKat or above, whether rooted or not. That’s right, if your running KitKat or above, your device does not need to be rooted. If you’re running anything other than KitKat or above, your device does need to be rooted. As long as these requirements are met the program will run. The program will also auto-detect whether or not your device is supported. So if you are not sure, plug it in and let the program tell you. If your device is not supported, it will put up a message saying as much and close the program.

Program Functionality:

The first thing you need to make sure of is that USB debugging is turned on for your device. The video at the end of this OP is a must to watch. It will describe this process as well as allowing adb shell permissions.

So when you first connect your device you will need to wait for the program to detect your device and whether or not it is supported. Once this is established, usually within a couple of seconds, it will display a warning message to you reminding you to be careful with what you disable and block. Yes, it will allow you, if your device is supported, to disable/block even system dependent applications. This message will also include, if your device does not support block mode, a message indicating that block mode is not supported and that it will disable the applications. Here is a sample screenshot of this.

View attachment 3107134

Once the program has initialized, and the warning message has been presented, it will put you into the main program screen itself which will look like the following.

View attachment 3107129

From here the first thing you need to do is click the Read Device Packages button on the upper left. This will initiate the process to start reading all of the applications on your device and then list them in a list in the window. It will also indicate to you what it detects as applications that are already disabled/blocked on your device by putting a checkmark in the box next to the application. It will look similar to this.

View attachment 3107130

As you can see it will tell you in the upper right how many applications it detects as blocked and not blocked. You will notice that on the bottom left it has an indicator that is labeled Synced. As you make changes to the device application listing this will turn red. In other words, it will indicate whether you have made changes to the device application listing since the last sync. Also, in the upper right there is a counter labeled Changed. This indicates the number of changes you have made to the device application listing since last sync.

Once you have made any changes to the device application listing an Apply button will show up in the upper left replacing the existing Read Device Packages button, it will look like the following.

View attachment 3107131

Once you click the Apply button the existing changes you made to the device application listing will be applied to your device. Keep in mind that you can disable/block and enable/unblock applications all at the same timeand then apply those changes to your device. After you have applied the changes to your device a message will be displayed stating the status of your changes as seen below.

View attachment 3107132

Once the changes are applied to your device you now just click the Read Device Packages button again to reload the information from your device and you will now notice that the application(s) you just made changes to will indicate as much in the refreshed listing. As seen below.

View attachment 3107133

You will notice that the particular application I asked it to disable/block has now a check mark next to it indicating that the device itself has disabled/blocked this application.

So now on to filtering. Lets say you want to limit the listing to specific items you are searching for within the package name. Like packages that contain "vzw" for Verizon. You will see below by clicking the filter checkbox and then typing in what I want to filter on, it will limit the list to your specific filter criteria immediately.

View attachment 3107196

And here is the results of our filter below.

View attachment 3107197

From here I can make changes to the listing, by checking the box next to the packages or I can simply uncheck the filter checkbox and return back to the full listing unfiltered.

O.k., so far so good. Now let’s say that you want to enable/unblock all the applications on your device. Maybe you’re selling it or maybe you have an issue with it and you want your carrier to take a look at it. By clicking the Unblock All Packages button and then click Apply this will enable/unblock all applications on your device. As if it is back to factory with no changes made.

Remove mode turned on. For all you root users, this will completely remove the application(s) in the exact same manner and will keep a backup for you in the install folder under Backup of the original apk files. They will also be kept in the original file structure they came from on the device so that it will make it easy for you if you have to push one back to your device. Here is an example of the remove mode turned on and the warning you will receive when it is active for the device that is rooted.

View attachment 3118822

Also, after you have removed the application(s) you want, if you Reload Device Packages again, you will notice them in the list and checked. This is in fact accurate, it sees them as removed / uninstalled. To not have them show up in the list any longer, just reboot your phone and run the program again and you will see that they no longer show up in the listing.

Sharing your blocked list or re-import it to your device:

So there are times when you get a replacement device and do not want to have to go through all the pain remembering what you had blocked. Well to the rescue comes the export/import functionality of the application. This will allow you to export and import your blocked list. You also might want to share it with someone. So this is how it works:

Once you launched the program and have clicked the Read Device Packages and your list is up, you can right click on the Read Device Packages button and export the blocked packages to a file and share it. Then the person receiving it just does the same process, but when they right click on the Read Device Packages, they just choose import blocked packages and then click the Apply button. Done.. You of course can do this yourself to your device. This can come in very handy if you have to Wipe Data, because you blocked something you should not have and your device is experiencing issues.

Well community people that is it. I hope you enjoy the program as much as I do and look forward to your feedback. Gatesjunior signing out…

Full Install:

Download link: https://1drv.ms/u/s!AjfH26Z4pHaFk1V8rA5Zj_p5vtkx

Upgrade Install: (Just replace debloater.exe in your "C:Program Files (x86)DebloaterDebloater" folder)

Download link: http://rootjunkysdl.com/?device=Gates&folder=DeBloater

OSX Version (dmg file): Thank @eyekyu for the port over with Wineskin..

Download link: http://rootjunkysdl.com/?device=Gates&folder=DeBloater

Mirror: https://onedrive.live.com/redir?resid=8576a478a6dbc737!831

Video by our own RootJunky:

[YOUTUBE]Hg1lVSUiJKA[/YOUTUBE]

Credits:

RootJunky - For finding the original KitKat weakness

Misterxtc - For all of his hard work already on helping people with a script process for this purpose

Er. Aditya - For testing with me and going back and forth with builds to finally resolve the no packages issue

XDA:DevDB Information

Debloater, Tool/Utility for the Android General

Contributors

gatesjunior

Version Information

Status: Stable

Current Stable Version: 3.85

Stable Release Date: 2015-02-07

Created 2015-02-07

Last Updated 2018-01-12