✏ FP4 - Debloat guide for better privacy, security and battery life

All posters of this thread are invited to update or specify the information or add anything new.
This is a wiki so everyone can edit to add experiences.

For metadiscussion please see this thread


Introduction

What is debloating?

When you unbox your new phone, it comes with Android that is pre-installed by the manufacturer. This is called “stock firmware”. Stock firmware also comes with a number of apps pre-installed, like native camera, browser, Google apps, etc… Some applications are manufacturer-specific. For example, many Samsung phones come with Samsung Health and Galaxy Apps pre-installed. Often, you don’t these applications, as they are mostly inferior when compared with similar apps available elsewhere. Such apps are then termed as “bloatware”. The process of removing this pre-installed bloatware is called “debloating”.

Rather than debloating the stock firmware Fairphone OS, you can also install an alternative operating system which doesn’t contain most common bloatware apps.

Why should I debloat my phone?
  • Fewer Google apps → Send less data back to Google → Better privacy
  • Fewer apps in general → Reduces your attack surface → Better security
  • Use fewer resources → More resources on apps that you use → Better performance
  • Run fewer apps in background → Better battery life
  • It’s fun and gives you a sense of true ownership over your device

General information

Pre-installed apps on the FP4

If you’re curious, this is a list of all apps that come pre-installed on a new FP4.

adb shell pm list packages

android
android.autoinstalls.config.t2m.pf4
android.overlay.common
android.overlay.target
com.android.backupconfirm
com.android.bips
com.android.bluetooth
com.android.bluetoothmidiservice
com.android.bookmarkprovider
com.android.calllogbackup
com.android.carrierconfig
com.android.carrierconfig.overlay.common
com.android.carrierdefaultapp
com.android.cellbroadcastreceiver
com.android.certinstaller
com.android.chrome
com.android.companiondevicemanager
com.android.cts.ctsshim
com.android.cts.priv.ctsshim
com.android.dreams.basic
com.android.dreams.phototable
com.android.dynsystem
com.android.egg
com.android.email.partnerprovider
com.android.emergency
com.android.externalstorage
com.android.hotspot2.osulogin
com.android.htmlviewer
com.android.inputdevices
com.android.internal.display.cutout.emulation.corner
com.android.internal.display.cutout.emulation.double
com.android.internal.display.cutout.emulation.hole
com.android.internal.display.cutout.emulation.tall
com.android.internal.display.cutout.emulation.waterfall
com.android.internal.systemui.navbar.gestural
com.android.internal.systemui.navbar.gestural_extra_wide_back
com.android.internal.systemui.navbar.gestural_narrow_back
com.android.internal.systemui.navbar.gestural_wide_back
com.android.internal.systemui.navbar.threebutton
com.android.keychain
com.android.launcher3
com.android.localtransport
com.android.location.fused
com.android.managedprovisioning
com.android.mmi
com.android.mms.service
com.android.mtp
com.android.nfc
com.android.ons
com.android.pacprocessor
com.android.phone
com.android.phone.overlay.common
com.android.printspooler
com.android.protips
com.android.providers.blockednumber
com.android.providers.calendar
com.android.providers.contacts
com.android.providers.downloads
com.android.providers.downloads.ui
com.android.providers.media
com.android.providers.partnerbookmarks
com.android.providers.settings
com.android.providers.telephony
com.android.providers.userdictionary
com.android.proxyhandler
com.android.se
com.android.server.telecom
com.android.settings
com.android.settings.intelligence
com.android.sharedstoragebackup
com.android.shell
com.android.simappdialog
com.android.smspush
com.android.soundpicker
com.android.soundrecorder
com.android.statementservice
com.android.stk
com.android.storagemanager
com.android.systemui
com.android.systemui.overlay.common
com.android.theme.color.amethyst
com.android.theme.color.aquamarine
com.android.theme.color.black
com.android.theme.color.carbon
com.android.theme.color.cinnamon
com.android.theme.color.green
com.android.theme.color.ocean
com.android.theme.color.orchid
com.android.theme.color.palette
com.android.theme.color.purple
com.android.theme.color.sand
com.android.theme.color.space
com.android.theme.color.tangerine
com.android.theme.font.notoserifsource
com.android.theme.icon.pebble
com.android.theme.icon.roundedrect
com.android.theme.icon.squircle
com.android.theme.icon.taperedrect
com.android.theme.icon.teardrop
com.android.theme.icon.vessel
com.android.theme.icon_pack.circular.android
com.android.theme.icon_pack.circular.launcher
com.android.theme.icon_pack.circular.settings
com.android.theme.icon_pack.circular.systemui
com.android.theme.icon_pack.circular.themepicker
com.android.theme.icon_pack.filled.android
com.android.theme.icon_pack.filled.launcher
com.android.theme.icon_pack.filled.settings
com.android.theme.icon_pack.filled.systemui
com.android.theme.icon_pack.filled.themepicker
com.android.theme.icon_pack.kai.android
com.android.theme.icon_pack.kai.launcher
com.android.theme.icon_pack.kai.settings
com.android.theme.icon_pack.kai.systemui
com.android.theme.icon_pack.kai.themepicker
com.android.theme.icon_pack.rounded.android
com.android.theme.icon_pack.rounded.launcher
com.android.theme.icon_pack.rounded.settings
com.android.theme.icon_pack.rounded.systemui
com.android.theme.icon_pack.rounded.themepicker
com.android.theme.icon_pack.sam.android
com.android.theme.icon_pack.sam.launcher
com.android.theme.icon_pack.sam.settings
com.android.theme.icon_pack.sam.systemui
com.android.theme.icon_pack.sam.themepicker
com.android.theme.icon_pack.victor.android
com.android.theme.icon_pack.victor.launcher
com.android.theme.icon_pack.victor.settings
com.android.theme.icon_pack.victor.systemui
com.android.theme.icon_pack.victor.themepicker
com.android.traceur
com.android.vending
com.android.vpndialogs
com.android.wallpaper.livepicker
com.android.wallpaperbackup
com.android.wallpapercropper
com.android.wallpaperpicker
com.android.wifi.resources
com.android.wifi.resources.overlay.common
com.android.wifi.resources.overlay.target
com.fairphone.activator
com.fairphone.myfairphone
com.fp.camera
com.google.android.apps.docs
com.google.android.apps.maps
com.google.android.apps.messaging
com.google.android.apps.photos
com.google.android.apps.restore
com.google.android.apps.setupwizard.searchselector
com.google.android.apps.tachyon
com.google.android.apps.wellbeing
com.google.android.apps.youtube.music
com.google.android.calculator
com.google.android.calendar
com.google.android.captiveportallogin
com.google.android.cellbroadcastreceiver
com.google.android.cellbroadcastreceiver.overlay.common
com.google.android.cellbroadcastservice
com.google.android.configupdater
com.google.android.contacts
com.google.android.deskclock
com.google.android.dialer
com.google.android.documentsui
com.google.android.euicc
com.google.android.ext.services
com.google.android.ext.shared
com.google.android.feedback
com.google.android.gm
com.google.android.gms
com.google.android.gms.location.history
com.google.android.gmsintegration
com.google.android.googlequicksearchbox
com.google.android.gsf
com.google.android.ims
com.google.android.inputmethod.latin
com.google.android.keep
com.google.android.marvin.talkback
com.google.android.modulemetadata
com.google.android.networkstack
com.google.android.networkstack.permissionconfig
com.google.android.networkstack.tethering
com.google.android.onetimeinitializer
com.google.android.overlay.gmsconfig.common
com.google.android.overlay.gmsconfig.comms
com.google.android.overlay.gmsconfig.gsa
com.google.android.overlay.gmsconfig.photos
com.google.android.overlay.gmsconfig.searchlauncherqs
com.google.android.overlay.modules.documentsui
com.google.android.overlay.modules.ext.services
com.google.android.overlay.modules.modulemetadata.forframework
com.google.android.overlay.modules.permissioncontroller
com.google.android.overlay.modules.permissioncontroller.forframework
com.google.android.packageinstaller
com.google.android.partnersetup
com.google.android.permissioncontroller
com.google.android.printservice.recommendation
com.google.android.projection.gearhead
com.google.android.providers.media.module
com.google.android.setupwizard
com.google.android.setupwizard.overlay
com.google.android.syncadapters.contacts
com.google.android.tag
com.google.android.tts
com.google.android.videos
com.google.android.webview
com.google.android.youtube
com.google.mainline.telemetry
com.orange.aura.oobe
com.orange.update
com.qti.confuridialer
com.qti.diagservices
com.qti.dpmserviceapp
com.qti.ltebc
com.qti.pasrservice
com.qti.qualcomm.datastatusnotification
com.qti.qualcomm.deviceinfo
com.qti.service.colorservice
com.qti.snapdragon.qdcm_ff
com.qti.xdivert
com.qualcomm.atfwd
com.qualcomm.embms
com.qualcomm.location
com.qualcomm.qcrilmsgtunnel
com.qualcomm.qti.callfeaturessetting
com.qualcomm.qti.cne
com.qualcomm.qti.confdialer
com.qualcomm.qti.devicestatisticsservice
com.qualcomm.qti.dynamicddsservice
com.qualcomm.qti.gpudrivers.lito.api30
com.qualcomm.qti.ims
com.qualcomm.qti.lpa
com.qualcomm.qti.performancemode
com.qualcomm.qti.poweroffalarm
com.qualcomm.qti.qccauthmgr
com.qualcomm.qti.qdma
com.qualcomm.qti.qms.service.telemetry
com.qualcomm.qti.qms.service.trustzoneaccess
com.qualcomm.qti.remoteSimlockAuth
com.qualcomm.qti.seccamservice
com.qualcomm.qti.server.wigig.tethering.rro
com.qualcomm.qti.services.secureui
com.qualcomm.qti.services.systemhelper
com.qualcomm.qti.simcontacts
com.qualcomm.qti.simsettings
com.qualcomm.qti.telephonyservice
com.qualcomm.qti.uceShimService
com.qualcomm.qti.uim
com.qualcomm.qti.uimGbaApp
com.qualcomm.qti.workloadclassifier
com.qualcomm.qti.xrvd.service
com.qualcomm.timeservice
com.qualcomm.uimremoteclient
com.qualcomm.uimremoteserver
com.qualcomm.wfd.service
com.t2m.euiccoverlay
com.tct.endusertest
com.tct.iris
de.telekom.tsc
vendor.qti.hardware.cacert.server
vendor.qti.iwlan
Which apps should I uninstall?

As you might have guessed, most of the pre-installed apps are required for Android to run properly. That means you have to be very careful about what app you uninstall. Uninstalling the wrong app can break your device to the point that there’s no way of fixing it yourself (currently).

There are many lists all over the internet with apps you can uninstall but most of them don’t describe what exactly you are uninstalling. It’s very useful to know that in order to be sure if you really want to uninstall a certain app.

Fortunately, there’s a project on GitHub called universal-android-debloater which helps you uninstalling pre-installed apps safely and easily. It contains a program to run on your PC to uninstall pre-installed apps for the current user together with a description of almost every pre-installed app that’s on your phone. It can also be used to just export a list of apps selected by you.

If you don’t want to use universal-android-debloater, you can also search for lists of apps to uninstall in this forum and then use the ADB commands.

Be careful about uninstalling these apps

GBoard (com.google.android.inputmethod.latin)
According to Brado uninstalling will remove the ability to type in your password to unlock your phone. Many other keyboard apps don’t provide this feature.

com.android.providers.calendar
According to FairphoneHulk / hirnushi used to sync calendar, even with Open Source apps like Davx⁵

com.google.android.gms, com.google.android.gsf, com.google.android.ims
According to Stanzi after uninstalling these apps, it’s no longer possible to send SMS or receive software updates. Also, many apps (or just certain features) relying on Google Play Services won’t work anymore.

Qualcomm / QTI apps
Except for telemetry services you shouldn’t uninstall Qualcomm / QTI apps because most of them are fundamental for the correct execution of Android.

The two ways to debloat your phone

Uninstall pre-installed app for the current user (without root)
The app doesn’t get fully uninstalled from your phone. It’s just being uninstalled for the current user. This allows you to re-install it.

Uninstall pre-installed app fully (with root)
The app gets fully uninstalled from your phone. You won’t be able to re-install it.

The first way is recommended for most users because it allows you to re-install an app but the app itself won’t be visible in Android or be able run in most cases.


How to debloat

Using universal-android-debloater
  1. Make a backup of important data
  2. Set up the Android Debbuging Bridge (ADB) on your PC as described on the LineageOS Wiki
  3. Download universal-android-debloater and start it
  4. You can now click on an app to see what it’s for and uninstall or re-install it
  5. Go through each recommended package and uninstall it if you don’t need it
  6. You can also check out the category “Advanced” but be careful
  • If you want to know more about a specific app, set the category to “All” or search this page
  • If you want to uninstall apps fully with root, you can use an app like App Manager to do that.
  • If you want to use ADB directly you can export a list of apps and then use ADB commands.
Using ADB commands

Uninstall
Uninstall package for you (–user 0) but keep (-k) its /data and /cache directories
(App updates won´t get removed, won’t free up space)
adb pm uninstall --user 0 name.of.package

Uninstall package for you (–user 0) and delete the /data and /cache directories
(App updates will get deleted, will free up some space)
adb pm uninstall -k --user 0 name.of.package

Re-install
Re-install package for current user
adb shell cmd package install-existing name.of.package

This works because applications truly aren’t fully uninstalled from your device. They are just being uninstalled for the current user (user 0 is the default/main user of the phone). That’s why, if you omit the –user 0 and -k part of the uninstall command, the command won’t work. These two flags respectively specify the system app will only be uninstalled for the current user (and not all users, which is something that requires root access) and that the cache/data of the system application will be preserved (which can’t be removed without root). Therefore, even if you uninstall a system app using this method, you can still receive official OTA updates from your carrier or OEM.

XDA


Further information

Open Source apps

After you’ve successfully debloated your phone it’s probably time to install some Open Source apps to replace the uninstalled apps and try some new cool privacy-friendly apps.

Most of these suggested apps are from F-Droid.
So, it’s easiest if you install it first and install the apps afterwards from within F-Droid.


Launcher
To replace Quickstep launcher

Lawnchair
Other launcher suggestions


Google Play Store Client
To replace Google Play Store

Aurora Store


Camera
To replace Fairphone Camera

Open Camera
Google Camera (not Open Source) → Snapcam version


Browser
To replace Google Chrome

Mozilla Fennec


Maps and navigation
To replace Google Maps

OsmAnd+
Organic Maps
GMaps WV


SMS
To replace Messages

Simple SMS Messenger
Signal-FOSS from TwinHelix


Gallery
To replace Google Photos

Simple Gallery Pro


Calculator
To replace Calculator

Simple Calculator


Calendar
To replace Calendar

Simple Calendar Pro
Etar


Contacts
To replace Contacts

Simple Contacts Pro


Clock
To replace Clock

Simple Clock


Dialer
To replace Dialer

Simple Dialer
Emerald Dialer


Mail
To replace GMail

FairEmail
K-9 Mail


Notes
To replace Keep notes

Simple Notes Pro
Standard Notes
Joplin from the IzzyOnDroid repository


Text-To-Speech engine
To replace Speech services by Google

eSpeak


YouTube
To replace YouTube

NewPipe (NewPipe F-Droid repo for faster updates)
NewPipe x SponsorBlock from the IzzyOnDroid repository


Sound Recorder
To replace Sound Recorder

Audio Recorder


Ad blocker and firewall
Ad Blocker and Firewall?

NetGuard
Blokada
AdAway (requires root)


More Open Source apps

Privacy-friendly settings

Here are some suggestions for settings to improve your privacy even more:
Google Apps keep reinstalling/ reactivating - #34 by AnotherElk

New list of settings would be welcome :slight_smile:

Sources

physicsforum - Clearing Misconceptions and Some Tips on Debloating Android Phones
XDA - How to Uninstall Carrier/OEM Bloatware without Root Access

Further useful ADB commands

adb shell - this will connect your device after you confirmed the connection on your phone
pm list packages - will show you all installed packages
pm list packages | sort - will show you all installed packages sorted
pm list packages google - will show you all packages with google in it
dumpsys package package.name.example - this will show you more information about the package

20 Likes