With a simple ADB command, we can stop OnePlus from collecting user analytics data from the OnePlus 6, OnePlus 5, OnePlus 5T, etc. without root access.
Recently, there has been a lot of focus put on OnePlus about how it collects user data from devices it sells that run OxygenOS. This includes the OnePlus 6, OnePlus 5, OnePlus 5T, OnePlus 3, OnePlus 3T, OnePlus 2 and the OnePlus One. If you are using the latest version of OxygenOS on a OnePlus device then it is sending personally identifiable information to the OnePlus server even if you have disabled the User Experience Program option from within the Settings application.
A lot of companies these days are use, let alone are built upon, the information they can summize from user data. Google does it, Facebook does it and it’s used to help improve the products and services that those companies build. However, this data is usually limited to things that the companies are focused on, and do not include things like IMEI numbers, SSID names, etc. However, OnePlus has been caught collecting the following bits of data: the phone’s IMEI(s), phone numbers, MAC addresses, mobile network(s) names and IMSI prefixes, as well as my wireless network ESSID and BSSID and, of course, the phone’s serial number.
This is done through the OxygenOS User Experience program but even if you disable this then there is a lot of data being sent back to the company. Thankfully, we know which application package is responsible for this stuff and while it’s not as easy to uninstall as other applications are, we can get rid of it with a simple ADB command from our computer. So let me show you how that is done right now.
In order to complete the tutorial below, you're going to need some things setup ahead of time. Please follow the how to install ADB and Fastboot tools guide if you haven't done so already. You're also going to need to start the ADB service by executing the "adb devices" command (no quotes) in the Command Prompt. Lastly, you'll need to follow the how to enable Developer Mode guide, as well as the how to enable USB Debugging Mode guide, and make sure to grant USB Debugging access from the PC to your device.
Disable OxygenOS Analytics
- Type the following into the Command Prompt. . .
- adb devices
- . . .to start the ADB service
- Then launch an ADB shell with the following command. . .
- adb shell
- . . .so you can then type out this command to uninstall the app from the current user’s profile. . .
pm uninstall -k --user 0 net.oneplus.odm
On the surface of things, this initially seems like it wouldn’t be a big deal because again, we’re so used to other companies collecting data from our phones, web browser usage, and more. The issue here is the type of data OnePlus is collecting, how they continue even if you opt out of the program, and that they aren’t upfront about this at all. Thankfully, OnePlus has said they “will no longer be collecting telephone numbers, MAC Addresses and WiFi information.”
Thanks to the investigation from Christopher Moore, we know that all of this is done thanks to a single application package. We also know how to easily disable this package even though it is a pre-installed application and we don’t even need root access to do it. Again, I want to point out that even if you opt out of the User Experience Program from the Settings application, OnePlus explicitly says they’ll continue to collect the data, but will not “tie it to your device information.”
Which again, if I opt out of an analytics program I expect it to not send back any analytics data at all. So to start, we need to have ADB installed and working on our PC so we can execute the command. If you haven’t done this before, then check out the important links in the blurb above the step by step guide. The process is easy once you get the hang of it and using the Minimal ADB & Fastboot tools provided by the XDA community makes it even easier since it gives you a desktop shortcut to click on to launch the Command Prompt.
Once the Command Prompt is open and you have Developer Mode and USB Debugging Mode enabled on your OnePlus 3, OnePlus 3T, OnePlus 5, etc. then we can truly begin. We need to make sure we have the ADB service running and we can do that with the ADB devices command. From here, we need to bring up an ADB shell on our device that is connected to the PC with a USB cable by using the adb shell command. Lastly, we just need to type out the pm uninstall command exactly as shown in Step 7 to uninstall the package from our current user.
This technically doesn’t uninstall the application entirely, and this is why it comes back after a factory reset. But it does uninstall it from the current user of the device. So while it doesn’t recover any of the data it uses in the /system partition, it will never be able to run or collect/send back any data to the OnePlus servers.
If this tutorial helped you in any way, please consider donating at Patreon or PayPal. If you can't afford to donate then sharing this on social networks such as Facebook, Twitter, etc. will also help a lot.