Thursday, June 29, 2017

Enable the OnePlus 5’s DCI-P3 Wide Color Gamut Mode on the OnePlus 3T

It's been a little over a week since OnePlus officially launched its latest flagship smartphone – the OnePlus 5. The device is currently the most powerful Android smartphone on the market with an upgraded Snapdragon 835 SoC, 8GBs of RAM, and UFS 2.1 with two-lane ROM. But compared to its predecessor, the OnePlus 3T, the OnePlus 5's display does not seem to be a marked improvement on the surface. Both devices feature a 5.5″ 1080p AMOLED display at ~401ppi, but by default the OnePlus 5 features the DCI-P3 wide color gamut which is the same color gamut found in 4K Ultra High-Definition televisions and Digital Cinema.

Other than the OnePlus 5, there are other smartphones that support DCI-P3 like LG flagship devices (though apparently, not very accurately), the now-defunct Samsung Galaxy Note 7, the Samsung Galaxy S8/S8+, and the iPhone 7. However, there appears to be another smartphone that may support the DCI-P3 wide color gamut – the OnePlus 3T. Soon after the OnePlus 5 was officially announced, it was discovered that the display model found in the OnePlus 5 is actually the same display found in the OnePlus 3T. In particular, Roland Quandt (@rquandt) used AIDA64 to discover that the OnePlus 5 uses the Samsung S6E3FA5 display (for reference, OnePlus 3T devices feature either the aforementioned Samsung S6E3FA5 or S6E3FA3 displays).

That discovery got the ball rolling, and several Chinese OnePlus users began digging into kernel related files located in the /sys directory to see if they could find a way to enable DCI-P3 on the OnePlus 3T. Sure enough, located within the /sys/devices/virtual/graphics/fb0 directory are 3 files that can be modified to change the screen mode. These files are the following:

  • /sys/devices/virtual/graphics/fb0/SRGB
  • /sys/devices/virtual/graphics/fb0/Adobe_RBG
  • /sys/devices/virtual/graphics/fb0/DCI_P3

By writing a value of '1' to the DCI_P3 file (which requires root access), the color mode can be enabled on the OnePlus 3T. After much discussion on the OnePlus BBS forums, it was discovered that this trick only works on OnePlus 3T devices with the Samsung S6E3FA5 display. If your OnePlus 3T is rooted and has the right display model, then you can enable the OnePlus 5's awesome display mode right now.


Enable DCI-P3 for the OnePlus 3T

Thanks to XDA Member soccerwuedo5 for documenting the discoveries made on the Chinese OnePlus forums and writing a tutorial on our forums!

Here is a step-by-step set of instructions to enable this color gamut mode. Note that this only works on rooted phones:

  1. Verify that your display panel is compatible. Install AIDA64 and check Display –> Panel ID. If it reads "samsung s6e3fa5 1080p cmd mode dsi panel", then your device's display is compatible with this mode.

    AIDA64 Panel ID Value for the OnePlus 3T. Note: this is the incorrect model. (Credits: soccerwuedo5).

    • Alternatively, you can download a file browser such as MiXplorer and browse to the /sys/devices/virtual/graphics/fb0 directory. If you see a "DCI-P3" file, then your model is compatible.
  2. Install Terminal Emulator on your phone and enter the following two commands:
  su  echo 1 > /sys/devices/virtual/graphics/fb0/DCI_P3  

The change will take affect immediately, but the screen mode in settings will not be updated to reflect this change. Furthermore, if you reboot the device, the calibration will revert back to the "default" state. If you would like to revert these changes immediately, you can enter the following commands:

  su  echo 0 > /sys/devices/virtual/graphics/fb0/DCI_P3  

If you are looking for a way to have this change persist through reboots, you can use automation software such as Tasker, create an init.d script, or use this Magisk module created by XDA Senior Member doubleaykay.


How well does it work?

Once enabled, there is an immediate, noticeable difference in the screen quality. There's a clear saturation loss when changing the calibration mode to DCI-P3, and the change is noticeable no matter what screen mode you have enabled, which indicates the profile is different than the default or sRGB modes. Although in our own subjective comparison, Mario Serrafero notes that enabling DCI-P3 on the OnePlus 3T does not result in an identical display compared to the OnePlus 5's DCI-P3. Notably, yellows and blues appear to be a tad more saturated on the OnePlus 3T, and they slightly differ in temperature throughout as well. While the unofficial display calibration mode change does not perfectly match any of the available modes on the OnePlus 5, it appears to be closest to DCI-P3. A deeper display analysis could determine exactly what the difference is and how accurate this new color profile is.

Overall, we definitely feel the modification is definitely worth doing, if only to try it out and check whether you like the different display profile.


Was DCI-P3 Intentionally Disabled?

According to users on the OnePlusBBS forums, the preference to enable DCI-P3 on the OnePlus 3T is hidden from the settings application. Apparently, there is a "OPScreenColorMode.java" file that contains a line removing the preference from settings.

By editing this line, recompiling the APK, and pushing the updated system file to the device, the preference is indeed made available in the settings app.

Interestingly enough, XDA Member soccerwuedo5 did some digging of his own and found references to a disabled settings fragment called "OPReadingMode" within display_settings.xml that likely controls the new Reading Mode feature found on the OnePlus 5.

  <PreferenceScreen android:title="@string/oneplus_night_mode_enabled_op" android:key="oneplus_night_mode" android:fragment="com.oneplus.settings.better.OPNightMode" />  <PreferenceScreen android:title="@string/oneplus_reading_mode" android:key="oneplus_reading_mode" android:fragment="com.oneplus.settings.better.OPReadingMode" />  <PreferenceScreen android:title="@string/oneplus_screen_color_mode_title" android:key="screen_color_mode" android:fragment="com.oneplus.settings.better.OPScreenColorMode" />  

This isn't really unexpected, though OnePlus repeatedly claimed that Reading Mode makes use of a different ambient sensor to read not just ambient light intensity, but also tone, and thus it would make sense for the feature to be offered exclusively on the OnePlus 5. The existence of this string does indicate that it may be possible for the feature to be added to the OnePlus 3T in a future OxygenOS release, if not sooner thanks to modders on our forums, but if there is hardware at play it might perform differently than the OnePlus 5.


Conclusion

We can't speak for OnePlus as to why this display calibration modification is possible on the OnePlus 3T, but we have reached out to the company and will update our readers when we hear back. In the meantime, for any rooted OnePlus 3T owners – definitely give this modification a shot if your display is compatible.



from xda-developers http://ift.tt/2u1XzBp
via IFTTT

No comments:

Post a Comment