After being in the beta phase for several months, OxygenOS 12 for the OnePlus 9 series has finally started rolling out to devices in select regions.
This is possibly the most significant update in OnePlus history, as not only is it adopting a new build of Android (Android 12), overhauling the UI, but also merging with Oppo’s ColorOS codebase to create what is now part OnePlus, part Oppo, and part Google software.
For our assessment today, we will be testing the first stable release of OxygenOS 12 on the company’s premier OnePlus 9 Pro device. This update was installed as an OTA incremental update over the previous OxygenOS 11 build and lets us see how the experience would be for most users.
The first thing you’re always greeted by is the launcher and the one in OxygenOS 12 has received several updates. In fact, it’s no longer the old launcher but rather replaced with the one from ColorOS.
The most obvious change would be to the app icons. The new launcher has a more elaborate app icon customizer than its predecessor. By default, the icons now have a larger, squared-off design with rounded corners. You can choose between a couple more presets or enter the custom mode, which basically provides a few more shapes for the icons. Any third-party icon packs will also show up here but due to the side scrolling nature of this list, you may not know where they are unless you swipe sideways on the icons preset list.
Aside from that, you can now also adjust the icon size in a more fine-grained manner. You can also adjust the size of the app names or hide them completely. A change with OxygenOS 12 is that hiding the app icon names hides them on the home screen as well as the app drawer, whereas OxygenOS 11 would only hide them on the home screen. This behavior cannot be customized.
Speaking of the app drawer, it shows a lot more icons than before. A new option lets you change the sorting order and select multiple icons. The latter can be used to move a bunch of icons at once to the home screen or uninstall them in a batch.
The second option is very convenient, and something other companies like Xiaomi have offered for a while.
One annoyance with the new app drawer is that icons with names that don’t start with letters (e.g. 1Password) now appear at the bottom of the list rather than at the top before the alphabetical list. This is going to be frustrating to anyone used to how things worked in previous versions of the OS. This is also non-customizable.
The new launcher now allows disabling the app drawer and placing all icons on the home screen, iOS-style. This has been a staple feature on most other Android phones but something OnePlus never indulged in the past.
OnePlus has also changed the Hidden Space feature. This would previously appear to the left of the traditional app drawer but has now been turned into a secret vault of sorts that requires you to first set a passcode for it and then create a second code that needs to be entered through the dial pad of the Phone app to access the hidden apps.
This is useful if you really, really want to hide some of your apps and there’s also a separate app lock feature that features similar security hoops to set up and use. But the previous Hidden Space feature was a convenient way to quickly tuck away unnecessary apps and this new feature is way too complex for that while not offering a more convenient alternative.
OnePlus has also made the Google Feed page a permanent part of the launcher on the leftmost page. You get no say in this matter nor any option to replace it with something else.
The Shelf feature has been updated with a new UI. This feature can now be accessed at any time by swiping down on the top-right edge of the screen. If you prefer not to use it, then it can be disabled from the settings.
The launcher now also supports changing the transition animation between page swipes. The widgets screen now gets a clear transparent background. Finally, the wallpaper selection has also changed and is much better laid out than before.
While the drop-down notification toggles aren’t exactly part of the launcher, this is probably a good place to mention that they haven’t really changed in appearance since OxygenOS 11. What has changed is how the battery percentage indicator is shown, which now doesn’t appear at all if you choose to disable it through the settings even if you expand the notifications. This means it’s either on all the time, taking up space in the status bar, or it’s always off. The old circular battery indicator has also been removed.
The app switcher gets a larger button to close all apps and the option to show the remaining memory. There is now a separate screen where you can more easily pick which apps get to stay open in the background even if you press the Close all button. This screen can be accessed by pressing and holding the Close all button.
The Settings app in OxygenOS 12 has also received several changes, putting it somewhere between OxygenOS 11 and ColorOS.
If you’re a dark mode user, you’ll notice that the background for the Settings app is now all-black instead of black with gray background around the settings categories. However, this behavior can be customized.
OxygenOS 12 dark mode lets you choose between all black, dark gray, and gray backgrounds. This affects only OnePlus apps, however, as third-party and Google apps simply switch to their own dark mode, whatever that may be.
A lot of sub-menus in the app have changed. One of them is the Personalizations screen. The options are still the same but are laid out differently. However, the way some of the options are applied has changed for the better. For example, changing the color theme, fonts, or icon packs now no longer quits all background apps. This was a frustrating aspect of OxygenOS 11, which meant if you did something basic as changing the color theme your music playing in the background would stop. Now, you may hear a slight stutter at times but none of the background apps are closed when making UI changes.
The screen color adjustments are now simpler. Aside from the usual Vivid and Natural (sRGB) presets, you get a Pro mode that lets you choose between Cinematic that claims the gamut to Display P3 and Brilliant, which unlocks the full-color spectrum of the display while throwing accuracy and color management out the window. You can adjust the color temperature of the display in any mode now but there is no longer a tint adjustment option available anymore.
Within the audio settings, the biggest change is to the Dolby Atmos mode. It now features scenario or environment-specific profiles. Within scenario-specific, you get the same options as before for smart, movie, music, as well as new gaming presets. The music preset can be customized further with a custom EQ. The environment-specific presets include indoor, on-the-go, commute, flight. For whatever reason, none of these seemed to make any difference, at least for audio played through Apple Music.
One of the most useful features in OxygenOS 11 and prior versions was navigation bar customization. This lets those who still use the traditional navigation bar instead of navigation gestures to customize the three buttons by assigning various functions to a double-press or press and hold gesture. This feature was unceremoniously removed from the Nord 2 and it’s absent in OxygenOS 12 on the OnePlus 9 Pro as well.
This means that now the only customization you can do to the navigation bar is to swap the back and recent buttons. The navigation bar itself has been altered and the keys are now weirdly spaced out and placed awkwardly far from each other.
If you do use gesture navigation, you can now access the new one-handed mode, which works similarly to that on iOS. It brings the top of the screen down, making it easy to reach. However, this mode is only available on the gesture navigation mode, adding further insult to injury for traditional navigation bar users.
Moreover, the gestures still don’t work that well; you still cannot disable swiping from the right edge to go back and will often find yourself inadvertently going back if your thumb ends up a little too close to the right edge while scrolling.
Within the connectivity features, Bluetooth on the OnePlus 9 series now offers LHDC connectivity as was promised at the OnePlus Buds Pro launch. We were able to pair our OnePlus Buds Pro unit with the OnePlus 9 Pro and get LHDC to work, although for some reason the phone had locked out all the bit-depth and sampling rate options in the developer settings for these earbuds. The Nord 2 already had LHDC support and does offer access to those options for the OnePlus Buds Pro.
One of the final bit of changes we want to talk about regarding the Settings app is the switch from a native software update mechanism to using Google’s updater. We have seen the company do this before for the Nord 2 and Nord CE but this is the first time we have seen it on our Indian review unit of the OnePlus 9 Pro.
The immediate downside of this is that it’s now more difficult to update the phone from a locally downloaded file. The previous mechanism had an option that let you apply a downloaded file with ease. Now, you will need to restart the phone into recovery mode and then use the menu to install the downloaded update. Meanwhile, there are no real upsides to this system to the user that we can think of to balance the downside.
The system apps that come pre-installed on the phone have also received some changes although in most cases they are not severe. The Clock and Calculator apps are mostly similar to what they were like on OxygenOS 11 apart from the minor UI tweaks. It’s the same with other apps like Weather. The My Files app (previously File manager) has been redesigned but is functionally similar to the previous version.
Photos and Camera
One of the apps that got a major rework is Gallery, which has now been renamed to Photos. This obviously makes no sense considering the app also hosts videos but that’s a discussion for another day since the entire industry seems to have no idea what “photos” means anymore.
The Photos app now always starts by default in the initial Photos tab, which is in contrast to the previous Gallery app that remembered your position and would launch in the Collections tab (now called Albums) if that’s where you left it.
The Photos tab also works differently now. Previously, it only showed images and videos captured by the phone’s camera. Now, it’s every single image or video on the phone sorted by date. This is similar to how the Photos app on iOS works and is just a very cluttered and confusing way to access media.
You can pinch to adjust the three size options for the thumbnails but annoyingly the screen just constantly blacks out while doing this, which seems like a bug.
If you open an image, you get a lot more editing options than before, including an option to remove objects from the background that is vogue these days.
The albums tab has all the images sorted in different folders as before, making them easier to get to instead of just wading through a sea of thumbnails.
The Explore tab is the same as before, making ‘memories’ out of photos and videos and also listing people and places.
One of the baffling things about the Photos app is the extremely small UI size. Everything is two sizes too small and stays the same regardless of what the phone’s UI size is set to. This also seems like a bug and if not is a really weird UI decision.
The other app that has seen a major change is the Camera app. This is now basically the Oppo camera app with a few features shuffled around. If you’re a long-time OnePlus user, you’d immediately be caught off-guard by the lack of the swipe-up drawer for additional camera modes. They are now in a More button at the end, which is much less convenient. The good thing is you can just move the modes you want out to the main slider, except for the XPan mode, which cannot be moved for some reason.
Aside from the annoyance with the removal of the Modes drawer, the new app is an improvement over its predecessor. You now have tap to capture, which lets you tap anywhere on the screen to not just adjust the focus and exposure for that spot but then also instantly take a picture. You also have the option to save images in the more efficient HEIF.
A great new addition is the ability to shoot in RAW on all three cameras on the back of the OnePlus 9 Pro instead of just the main wide camera. Unfortunately, this camera app has the same issue as the one on the Nord 2, where if you enable RAW+JPEG shooting, it resets to just JPEG automatically after some time has passed, whereas the previous Camera app in OxygenOS 11 would remember that you had enabled RAW capture.
We wish OnePlus would have also added a Pro mode for video with manual controls, something other brands like Xiaomi offer. The video functionality has remained unchanged since OxygenOS 11.
If you are a OnePlus user who ever looked at your friend’s Xiaomi or Realme phone and wished that you, too, could make your phone’s UI look tacky beyond belief then good news, OnePlus has added a Themes store.
The Themes store here works pretty much the same way you have seen on a bunch of other Android phones already. You can download wallpapers, fonts, and entire theme packs that change things like wallpapers and icons in one fell swoop. Some of these are free while others are paid.
One of the new performance related additions to OxygenOS 12 is a Performance mode, buried deep in the battery settings. This was first seen on the Nord 2 and seems like a solution for all the throttling the system does otherwise in standard mode.
As was noted by AnandTech earlier this year, OxygenOS 11 on the OnePlus 9 Pro does not make much use of the Prime core on the Snapdragon 888 outside of select scenarios such as playing games or running benchmarks. This makes everyday applications run worse than they do on competing devices that make much better use of all the CPU power. OnePlus’ explanation for this was that this method helps save battery and prevents overheating of the device.
The company hasn’t really changed how the CPU scheduler behaves in OxygenOS 12. Instead, the Performance mode has been added as a method of brute forcing performance. On the Nord 2, the performance mode would lock all CPU cores to their maximum clock speed perpetually. On the OnePlus 9 Pro, this would likely cause a nuclear meltdown so instead the system only maxes out the Silver cores while the Gold cores are set at a relatively high clock speed. The most power-hungry Prime core is left unchanged.
Setting aside the monkey’s paw-like nature of this solution, the Performance mode still doesn’t fix the main problem, which is that the Prime core isn’t used as often as it should. Instead, it blasts every other core on the CPU as if to make up for it. This will likely not make much of a difference to performance but should still increase power consumption and heat output of the device.
Indeed, we saw not much difference in enabling the Performance mode in everyday use. Maybe some animations and scrolling in problematic apps got a bit smoother but it’s difficult to quantify. Benchmarks won’t show any difference since the device was already using its full power in those.
It’s worth noting that performance is still good on the OnePlus 9 Pro; it’s just that it could have been better considering all the power it has under the hood. A better, more considerate solution would have been to optimize the performance characteristics of the device rather than to give a nitro boost switch (which isn’t even that effective).
UI and aesthetics
One of the things OnePlus users have always appreciated about OxygenOS was its largely clean and minimal aesthetic. While most of the other Android OEMs have gravitated towards aping the design of iOS, OnePlus has chosen to stick close to Google’s design guidelines. This did somewhat change with OxygenOS 11, which had more than a passing resemblance to Samsung’s One UI but by and large, the UI still looked like Android rather than iOS while still being clean and elegant.
Unfortunately, that has gone out the window now that Oppo is involved, at least in a more meaningful way than before. While Oppo’s own ColorOS no longer slavishly copies iOS like it used to, it still draws inspiration in many ways, big and small.
When OnePlus had said that it would be merging OxygenOS code base with ColorOS, the common fear was that it would simply turn into ColorOS. That hasn’t quite happened; instead, it has turned into a stranger beast, one which halfheartedly retains elements from previous versions of OxygenOS while haphazardly shoving in ColorOS design elements without any care for how it looks or works. The result is a weird mishmash of ideas and design philosophies that is neither here nor there.
For example, one of the common motifs in OxygenOS 11 was circles as this was something used in the past versions of stock Android. The app icons were round, the notification toggles were round, the icons in the Settings app were round.
ColorOS, however, is based more around squared icons partially inspired by iOS. That is visible in its icons, notification toggles, and other UI elements such as brightness and volume slider.
OxygenOS 12 uses both of these design motifs without any attention to how well they work together. App icons? Square. Notification toggles? Round. Consistency? None.
Also, let’s not forget that underneath all of this is Android 12, which actually has a new and fairly distinct design philosophy of its own and it fits about as well in all this as a square peg in a round hole.
More than just the visual assault of mismatching ideas is whatever that’s happening with the font and UI size. For some odd reason, the UI and font on the OnePlus 9 Pro running OxygenOS 12 are comically large. The icons are huge with billboard-sized text labels below them. Both the default fonts (Roboto and OnePlus Sans) look permanently in bold mode, particularly on the homescreen. It’s like the default parameters were set in an emulator and never ran on the actual device to see if they make any sense at all.
The end result of all of this is a UI that is practically offensive to anyone with even a little bit of design sensibility. Not only did OnePlus take the previous OxygenOS design ethos out the back door and shoot it in the head, it also forgot to replace it with anything else. Instead, the strategy was seemingly to just toss in every single idea they had lying around and hope for the best.
The good thing is that this is still Android so you can just toss aside the changes OnePlus has made and do your own thing. The problem is, you shouldn’t have to. It’s also disappointing from the point of view of a customer who bought the phone because it looks and works a certain way. It also brought in new buyers because they liked the look of older OnePlus software. But with the company moving down the path of a generic, Chinese phone UI design, then you may as well just buy something else.
One of the things OnePlus had promised when announcing the merger of OxygenOS with ColorOS is that the former would get the latter’s stability. Clearly, the software department responsible for making this happen didn’t read the CEO’s forum post because that’s not at all what’s happening here.
If you are a long-time OnePlus user, bugs and instability have become second nature for you by now. Some of you may not even notice anything different when upgrading to OxygenOS 12. So you’ll just have to take our word for it when we say that OxygenOS 12 is indeed objectively buggier than before.
To list all of the bugs we noticed in just a day of use may take a while but one of our favorites is the phone repeatedly failing to unlock promptly because it runs both the fingerprint reader and face unlock at the same time, who then collide in the hallway while rushing to authenticate you and thus no one gets there on time. At one point the motion smoothening for videos was enabled even though the setting itself was off. Meanwhile, the always-on display decided to turn itself off after a short time even though it was set to be permanently on.