OEMs are Required to Not Modify Dumpsys Commands in Android Oreo
Each year, Google releases an updated version of their Compatibility Definition Document. These are the rules which every OEM must follow if they want to ship their own versions of Android with Google Play Services built-in. This means that new restrictions can be put in place but it can also mean that previous limitations can be relaxed. Another new change we’ve discovered in the CDD for Android Oreo requires OEMs to not modify the format or contents of Dumpsys commands.
Dumpsys is a command executed with ADB that outputs a variety of information related to the smartphone’s hardware and software. Most average users of Android will likely not know what the benefits of Dumpsys are, but some will likely know what Battery Historian is. Google used to be more generous with battery statistics, but the release of KitKat made them add in some restrictions to 3rd-party applications. However, with the release of Android 5.0 Lollipop, the company announced a feature called Battery Historian that would somewhat help fill this gap.
We’re able to get this new type of battery data with a Dumpsys command via ADB. For those who are curious, the command to do this is
adb shell dumpsys batterystats > batterystats.txt and you can then take that text file and create an HTML version that is easier to read thanks to a python script provided by Google. This data needs to be formatted in a specific type of way for the script to work properly and it’s commands like this that Google now prevents OEMs from modifying in Android Oreo.
There are a number of other useful Dumpsys commands for developers that can be accessed through ADB. The full list of Dumpsys commands that Google is requiring OEMs to not modify is batterystats, diskstats, fingerprint, graphicsstats, netstats, notification, and procstats. The full list of available dumpsys commands on any Android device can be found by entering
dumpsys -l in an ADB shell.
The data that is offered by these commands can be crucial for some application developers when debugging and optimizing their code, and Google wants the output of these commands to remain consistent across devices no matter what. Some dumpsys commands exist that are unique to certain devices, but at the very least Google is ensuring this set of useful commands is available no matter what device.