Set a Custom Saturation Level on your Google Pixel or Pixel 2 [Root]
Google’s latest flagship smartphones, the Google Pixel 2 and Pixel 2 XL, had a somewhat controversial launch week. Some early reviewers were complaining of display issues such as alleged burn-in and muted colors. After an investigation, Google concluded that the burn-in was just temporary image retention and that the muted colors are because display is color-accurate. Nonetheless, the company acknowledged user complaints by tweaking the navigation bar to prevent image retention and introducing new color modes in the November security update. Thanks to this update, though, we can take advantage of the methods introduced to set a custom saturation level for our devices.
With the November security update for the Google Pixel 2/2 XL, three new color modes were added: Natural, Boosted, and Saturated. According to the commit that adds these color modes, Natural is sRGB, Boosted is sRGB + 10% saturation, and Saturated is unmanaged colors. For an in-depth explanation of color management on Android, I recommend you read this excellent piece by Nick Butcher from Google.
Although these options were enough to placate most users, some wanted more. Several users, such as Artem Russakovski from AndroidPolice, wondered if it’s possible to add a saturation slider to customize exactly how the Pixel 2 XL display looks.
A saturation slider would go a long way here.
— Artem Russakovskii (@ArtemR) November 7, 2017
Color accurate or not, some users simply prefer to modify display settings until everything looks just right for them. After looking at the commits that introduced the new color modes, I can report that it is indeed possible to at least modify the saturation value. Unfortunately, this requires root access since the methods in SurfaceFlinger require the calling app to have the HARDWARE_TEST permission.
If you want to try this on your device, you’ll need to make sure your Google Pixel/Pixel XL is on Android 8.1 or your Google Pixel 2/2 XL is on at least the November security update. As for rooting your device, we have several guides available on our forums for how to do that. Once you meet those two requirements, then you can try using some of the following commands in terminal to play around with your device’s saturation level.
Setting a Custom Saturation Level on the Google Pixel
First, download a terminal emulator app on your phone. We recommend Material Terminal from the Google Play Store.
Open it up and then type “su” to grant root access. Then, you can enter this command to modify the saturation level:
service call SurfaceFlinger 1022 f X.X
where X.X is an integer value between 0.0 and 2.0. The higher the value, the more saturated the display. 0.0 makes the colors black and white while 2.0 sets the display at 100% saturation.
You can also toggle sRGB color management by issuing the following command:
service call SurfaceFlinger 1023 i32 0/1
where 0 sets sRGB color management and 1 disables color management.
Finally, you can set the following two system properties to have these values saved on boot.
setprop persist.sys.sf.color_saturation X.X\nsetprop persist.sys.sf.native_mode 0/1
In case you would like an easier way to change your display’s saturation level, you can also use this open source app made by XDA Forum Moderator Zacharee1. The app is available for free on XDA Labs, so you can grab it below.
If you would like more display calibration options such as setting the display gamma, you can always flash a custom kernel with the KCAL kernel module.