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 set up ahead of time. Please follow the how to install ADB and Fastboot tools guide if you haven't done so already. Then you will need to follow this guide: How to Enable Developer Mode, as well as this one which shows you How to Enable USB Debugging Mode.
You will then need to open a command prompt within the same folder as your ADB and Fastboot tools and execute the "adb devices" command (without quotes) to start the ADB service. From here, you can connect the device to the PC with a USB cable. If everything has been done properly then you'll be asked if you want to grant USB Debugging Mode access from the PC the phone is connected to.
Once granted, you can then test this by running the command "adb devices" again (without quotes) in a Command Prompt, Terminal, or Windows PowerShell to make sure the computer recognizes the 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 via PayPal, Patreon, Cryptocurrency, or GoFundMe. If you can't afford to donate then sharing this on social networks such as Facebook, Twitter, XDA, forums, etc. will also help a lot. I would also appreciate suggestions for Android tips and tutorials that you would like to see in the future.