DVFS · HarmonyOS / Android
Phone DVFS monitor
Plug your phone into the computer and watch CPU, GPU and memory frequencies and temperatures live. Nothing to install; the data stays in your browser.
First time? Three steps
- Enable Developer options: Settings → About phone → tap “Software version” 7 times until you are told developer mode is on.
- Turn on USB debugging: Settings → System → Developer options → USB debugging.
- Connect the phone to this computer with a data cable, unlock it and keep the screen on. If the phone asks what the USB connection is for, choose “Transfer files”.
- Click “Connect phone” below and pick your phone in the list (usually “HDC Device”). When the phone asks whether to allow USB debugging, tap Allow and tick “Always allow”.
- Enable Developer options: Settings → About phone → tap “Build number” 7 times (Xiaomi: “OS version”) until developer mode is on.
- Turn on USB debugging in Developer options. On Xiaomi also enable “USB debugging (Security settings)”.
- Connect the phone to this computer with a data cable and unlock it. If asked what the USB connection is for, choose “Transfer files”.
- Click “Connect phone” below and pick your phone. When the phone asks “Allow USB debugging?”, tick “Always allow” and tap Allow.
The computer needs no HDC, ADB or driver package: the page talks to the phone by itself.
Can’t connect?
- Open this page in Chrome or Edge on a computer. Safari, Firefox and mobile browsers cannot connect to USB devices.
- Phone not in the list: try another data-capable cable or USB port, check that USB debugging is on, and replug once.
- Device busy: close DevEco Studio, Android Studio, phone-manager and screen-mirroring tools on the computer; they hold the phone. If you used the command line, run hdc kill or adb kill-server.
- Android phone missing on Windows: some brands need a USB driver installed once. Download the Google USB driver (official page) ↗
- Authorization denied: unlock the phone, keep the screen on, click “Connect phone” again and tap Allow on the phone.
Faster sampling loads the phone more (about 8–10% more total CPU in testing) and can nudge the small cores’ frequency up. Use it to catch short frequency jumps; 0.5 s is enough most of the time.
CPU cluster frequency
Per-core frequency (darker is higher)
GPU frequency
Memory (DDR) frequency
Temperature
Power
Battery power is positive while discharging and negative while charging. With the cable plugged in, the computer powers most of the phone: phones that report USB input (such as Pixel) show whole-phone power, USB input plus battery discharge; phones that do not (such as HarmonyOS phones) only show battery net power, which is not the phone’s consumption.
Frequency residency
Share of time each cluster spent at each frequency.
Record and export
Recording starts when you connect and is kept after disconnecting until the page reloads.
How it works: the page talks to the phone’s debugging interface directly through the browser’s WebUSB, without any server. HarmonyOS phones use the HDC protocol, and the system’s own SP_daemon reports per-core and per-cluster CPU frequency, GPU, DDR and temperatures once a second; retail HarmonyOS builds do not expose governors or frequency tables, so those are not shown, and which cores belong to each cluster is inferred from matching frequencies. Android phones use the ADB protocol, and the page reads the kernel’s cpufreq, devfreq and thermal nodes every 0.5 s by default (0.2 s or 0.1 s optional); paths differ by vendor and missing items are left blank. Power comes from the battery’s current and voltage: SmartPerf’s -p on HarmonyOS (as in the PC tool) and the power_supply nodes on Android, plus USB input power where the phone reports it. High performance is a SmartPerf frequency-lock session on HarmonyOS (the same as the PC tool HdcPerfController) and the system’s fixed performance mode on Android. The HDC client is implemented from the open-source OpenHarmony protocol; ADB uses the open-source Tango library (MIT).