Tweaking Oxygenos on Oneplus 10 Pro

Posted on May 29, 2022

I recently picked up a OnePlus 10 pro. It seems to be one of the most feature-rich modern phones on the market right now. It has loads of memory and should receive updates until 2026 so although the price is rather steep, I should be good for at least 4 years, unlike the Pixel 3a XL that I purchased 2 years ago which is already no longer receiving updates and which is continuously running out of storage memory. Despite the lower price, it was not a good investment.

But you don’t just by a phone, you also buy a flavor of Android. The OnePlus I knew had Cyanogen as its rom which was really clean and minimal.

Later they switched to their own OxygenOS and now their OxygenOS has merged with OPPO’s ColorOS which I, in the past, didn’t really like.

You see, ColorOS/OxygenOS is a bit spammy. What annoyed me the most in the past was the persistent login/signup nagging in the settings screen. OnePlus wants you to register for their oneplus services but the advantages are completely unclear to me, and the disadvantages are obvious. So each time you need to go to settings I get nagged by half ⅓rd of the screen being filled with a signup form that I am simply not interested in. I decided to accept that for now though, but when my phone kept interrupting with “Quick device connect” notifications and searching for it (what it does, how to disable) revealed that it was a battery drain, I decided it was time for some cleanup

The cleanup

“Quick Device connect” and some other useless apps can’t (always) be removed through the settings/apps menu, at best they can be disabled but sometimes not even that. But you often can remove them through adb. The process is actually quite simple.

The cleanup requires some shell interaction, either on MacOS or linux. Make sure you’re comfortable with that. And this is, of course, at your own risk. Make sure you have a backup. A factory restore should fix your phone if something goes wrong but you would lose data.

Install adb

adb is the Android debugging bridge. Instructions on how to install it can be found here. You only need the adb binary, so on MacOS just unzip the file and get the adb binary.

Connecting the device

Connect your phone to your laptop. Since it’s the only device there’s no need to specify any details. In the terminal, connect to a shell on the phone using

$ adb shell

You can list all installed pacakges using pm

(note the p255|OP516FL1 prompt - this means it’s the adb shell on your phone)

p255|OP516FL1:/ $ pm list packages

Remove packages, attempt #1

The packages I wanted to remove, at least, were

  • com.heytap.accessory
  • com.oneplus.membership
  • com.oneplus.account

This should get rid of, at least, device connect and the settings signup. This seemed to work partially:

255|OP516FL1:/ $ pm uninstall com.oneplus.membership
Success

pm uninstall --user 0 com.heytap.accessory
Failure [DELETE_FAILED_INTERNAL_ERROR]

The first package claimed to have succeeded (spoiler: it was still there), the second failed for unknown reasons (the error might be slightly different from what I show here. It was rather undescriptive at least)

Remove packages, attempt #2

The trick is to uninstall as the root user or for the root user, at least I assume that is what the flag --user 0 means. Rerunning these packages with this flag did indeed remove all of the packages. Victory!

255|OP516FL1:/ $ pm uninstall --user 0 com.oneplus.membership
Success

255|OP516FL1:/ $ pm uninstall --user 0 com.oneplus.account
Success

255|OP516FL1:/ $ pm uninstall --user 0 com.heytap.accessory
Success

More cleanup

Grepping for oneplus and heytap on pm list packages shows more candidates for cleanup. I removed some of these, try them yourself at your own risk.

1|OP516FL1:/ $ pm list packages | grep onep
package:com.oneplus.calculator
package:net.oneplus.weather
package:com.oneplus.note
package:com.oneplus.opscout
package:com.oneplus.opshelf
package:com.oneplus.soundrecorder
package:com.oneplus.brickmode
package:com.oneplus.deskclock
package:com.oneplus.setupwizard
package:com.oneplus.backuprestore
package:com.oneplus.gallery
package:net.oneplus.push
package:net.oneplus.forums
package:net.oneplus.widget
package:com.oneplus.filemanager
package:com.oplus.framework.rro.oneplus
package:com.oneplus.canvasresources
package:com.oneplus.opwlb
package:android.autoinstalls.config.oneplus
package:android.framework.res.rro.oneplus

Conclusion

Restarting the phone and gone is the waste of settings space and device connect notifications!