While benchmarks are the last thing we look at when we review a smartphone, they’re necessary to understand the true capabilities of a smartphone, especially under load.
Some companies, however, only see benchmarks as headlines and will do anything to grab said headlines. The most notable in this regard, is, of course, OnePlus, which got caught deliberately targeting benchmarking apps and boosting performance in only those apps.
Parent company Oppo, it seems, has decided to take a page out of OnePlus’ handbook and also take a stab themselves at cheating on benchmarks, probably not for the first time. This is despite the fact that OnePlus got its proverbial head handed to it on a platter by fans and the media alike. To make matters worse, Oppo’s “cheating” wasn’t even intelligently done, and their excuse for doing so only makes things worse.
Vietnamese blog Genk.vn (in Vietnamese) first reported the cheat and went on to explain how they caught Oppo cheating. We decided to run our own tests and can confirm that Oppo is indeed cheating on benchmarks.
First, a little background. Benchmarking apps like AnTuTu perform a series of intensive tasks to put a smartphone through its paces. This includes things like image and video editing, web browsing, video streaming, 3D rendering (games), and so on. The phone is then rated against a baseline device. The higher the rating, the faster the phone.
A smartphone chipset normally contains several components, the most important of which is the CPU. The CPU consists of several discrete modules called ‘cores’ whose speed is measured in Hz. All things being equal, the faster the CPU, the better the performance. It’s important to note here that CPUs get hot when they run fast, so CPUs generally scale their speed depending on temperature. Also, if a CPU is running fast, it is also sucking up a lot of power, draining your battery. Even a really good smartphone cannot sustain a high speed for longer than two-three minutes. Flagships like the Samsung Galaxy S9 use fancy, expensive techniques to keep these chips cool, and thus maintain a higher level of performance for longer. Various techniques are used to find an optimum balance between power consumption, temperature and performance.
A high benchmark score is thus an indicator of a good smartphone design and a good chipset.
Now comes the Oppo F7. The F7, like every other smartphone, cannot normally sustain a very high clock speed for long because of the aforementioned thermal and power issues. Given that the Oppo F7 runs a decidedly mid-range CPU (on the MediaTek Helio P60 platform), we didn’t expect it to do exceptionally well. We were, in fact, quite surprised when the F7 beat out several handsets that we expected to be significantly more powerful, this includes the newer, more expensive Nokia 7 Plus running Qualcomm’s most powerful high-end chip . At the time, we shrugged it off thinking that Oppo did something good with the phone. As it turns out, they simply cheated.
The Oppo F7’s CPU is an octa-core unit that features ARM Cortex A53 cores clocked at up to 2 GHz. Normally, the cores should be running at around 800-1,200 MHz in light apps, intermittently hitting peaks of 2 GHz when absolutely essential, and that too on only a few cores at at time. Again, and this is important, the CPU clock speed should be governed by the load on the system. For all cores to be running at full speed for any length of time, the phone would have to be under a considerable amount of stress, more stress than even a heavy game can put a phone under.
In the case of the Oppo F7, however, it was discovered, and we can confirm, that the CPU ran continuously at maximum speed on all cores only when certain benchmarking apps were running.
Our starting point is a freshly wiped Oppo F7 running ColorOS 5.0 (Android 8.1.0) updated to the 5 February Android security patch.
We ran the initial phone setup and installed a CPU monitoring utility (CPU Monitor).
After updates were installed, we let the phone idle for several minutes and measured baseline performance. As you can see, at idle, all cores are operating at around 800 MHz.
We then installed and ran AnTuTu. The results were spectacular and we saw a score of over 138,000. The CPU monitoring app noted that the CPU was operating at maximum performance (2 GHz on all cores) throughout the time the app was active.
Next, we created a fake app that was named “AnTuTu Benchmark”. This app does nothing but display “Hello World” on the screen. It literally does nothing else. No fancy effects, no background tasks, nothing. You can’t even interact with the app.
We then uninstalled AnTuTu and installed the fake AnTuTu app. We let the fake app run for a few minutes and let the CPU monitor do its thing.
Wonder of wonders, the CPU was running at maximum performance (2 GHz on all cores) the whole time that the fake app was running!
Just to be sure, we created yet another app with identical code to the fake AnTuTu app, except this time, it wasn’t called AnTuTu. We ran this second app and noted CPU performance. Surprise surprise, the CPU was running as it normally should.
Translation: Oppo’s software is checking the names of apps against a list of benchmarking apps and then artificially boosting CPU performance to boost the final scores. In other words, Oppo has been caught red-handed cheating on benchmarks.
For comparison, here’s what a few minutes of browsing on Google Chrome looks like. As you’ll note, not all the CPU cores are under load and the CPU only briefly hits that magical 2 GHz mark.
Vietnamese blogger Bình Minh reported exactly these results when he ran his tests, confirming that Oppo was indeed cheating.
Soon after publishing his findings, Oppo seems to have sent Minh an official response.
The response is in Vietnamese, and, translated, says that Oppo’s “neural engine” “intelligently” determines apps that require more performance and then boosts performance for said apps. Even if we were to accept Oppo’s statement at face value, it’s so-called neural engine is quite clearly unsuited for its tasks. Besides targeting apps only by name, this “AI” is not intelligent enough to determine when the phone is under load and when it isn’t, making it worse than useless.
Cheating on benchmarks isn’t new, Samsung and OnePlus have been caught doing it in the past. It’s just that this is one of the sloppiest cheats we’ve seen in a long time, and a completely unnecessary one at that.
Editor’s note: An earlier version of this story did not furnish several key details. We have since thoroughly tested Minh’s claims and have updated the story to reflect our findings and provide a more complete picture.