diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index 90dd68a..f9848ee 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -310,12 +310,37 @@
- 0:2:15
-
+
- - 0
- - 256
- - 257
- - 258
- - 259
+ - 0
+ - 1
+ - 2
+ - 3
+
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+
+
+
+ - 0
+ - 0
+ - 0
+ - 9
+
+
diff --git a/rootdir/Android.mk b/rootdir/Android.mk
index 3b2d524..78a79dd 100644
--- a/rootdir/Android.mk
+++ b/rootdir/Android.mk
@@ -120,6 +120,14 @@ LOCAL_SRC_FILES := etc/init.oem.rc
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
include $(BUILD_PREBUILT)
+include $(CLEAR_VARS)
+LOCAL_MODULE := init.color.rc
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE_CLASS := ETC
+LOCAL_SRC_FILES := etc/init.color.rc
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)/init/hw
+include $(BUILD_PREBUILT)
+
include $(CLEAR_VARS)
LOCAL_MODULE := init.qcom.factory.rc
LOCAL_MODULE_TAGS := optional
diff --git a/rootdir/etc/init.color.rc b/rootdir/etc/init.color.rc
new file mode 100644
index 0000000..c2e7ea0
--- /dev/null
+++ b/rootdir/etc/init.color.rc
@@ -0,0 +1,18 @@
+on boot
+ chown system system /sys/class/drm/card0-DSI-1/native_display_p3_mode
+ chown system system /sys/class/drm/card0-DSI-1/native_display_srgb_color_mode
+
+# Set sRGB calibration on Natural and Boosted Mode.
+on property:persist.sys.sf.native_mode=0
+ write /sys/class/drm/card0-DSI-1/native_display_p3_mode 0
+ write /sys/class/drm/card0-DSI-1/native_display_srgb_color_mode 1
+
+# Set unmanaged calibration on Saturated Mode.
+on property:persist.sys.sf.native_mode=1
+ write /sys/class/drm/card0-DSI-1/native_display_srgb_color_mode 0
+ write /sys/class/drm/card0-DSI-1/native_display_p3_mode 0
+
+# Set P3 calibration on Adaptive/Automatic Mode.
+on property:persist.sys.sf.native_mode=2
+ write /sys/class/drm/card0-DSI-1/native_display_srgb_color_mode 0
+ write /sys/class/drm/card0-DSI-1/native_display_p3_mode 1
diff --git a/sepolicy/vendor/file.te b/sepolicy/vendor/file.te
index 9e59a72..822555a 100644
--- a/sepolicy/vendor/file.te
+++ b/sepolicy/vendor/file.te
@@ -22,3 +22,4 @@ type sysfs_tpd, fs_type, sysfs_type;
type sysfs_tri_state_key, sysfs_type, fs_type;
type sysfs_vl53l1, fs_type, sysfs_type;
type vendor_sysfs_video_call_on, fs_type, sysfs_type;
+type sysfs_color, fs_type, sysfs_type;
diff --git a/sepolicy/vendor/genfs_contexts b/sepolicy/vendor/genfs_contexts
index 28783bb..b03ef72 100644
--- a/sepolicy/vendor/genfs_contexts
+++ b/sepolicy/vendor/genfs_contexts
@@ -17,6 +17,8 @@ genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/hbm u:object_r:sysfs_livedisplay_tuneable:s0
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/notify_dim u:object_r:sysfs_fod:s0
genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/notify_fppress u:object_r:sysfs_fod:s0
+genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/native_display_p3_mode u:object_r:sysfs_color:s0
+genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/card0-DSI-1/native_display_srgb_color_mode u:object_r:sysfs_color:s0
genfscon sysfs /devices/platform/soc/soc:tri_state_key/hall_data_calib u:object_r:sysfs_tri_state_key:s0
genfscon sysfs /module/memplus_core/parameters u:object_r:sysfs_memplus:s0
genfscon sysfs /module/qpnp_smb5/parameters/call_on u:object_r:sysfs_dash_charger:s0
diff --git a/sepolicy/vendor/hal_display_default.te b/sepolicy/vendor/hal_display_default.te
index 1dc242b..d285068 100644
--- a/sepolicy/vendor/hal_display_default.te
+++ b/sepolicy/vendor/hal_display_default.te
@@ -12,6 +12,8 @@ binder_call(hal_display_default, vendor_hal_display_color)
allow hal_display_default vendor_hal_display_postproc_hwservice:hwservice_manager find;
+allow hal_display_default sysfs_color:file rw_file_perms;
+
allow hal_display_default sysfs:file rw_file_perms;
allow hal_display_default sysfs_fod:file rw_file_perms;