How to Inspect Night Light and Display Color Modes on Android Using ADB dumpsys color_display

In modern Android architecture, display color rendering is not simply a static hardware calibration; it is dynamically manipulated by operating system services to support circadian rhythm health, accessibility color corrections, ambient light adaptations, and user saturation preferences. Features such as Night Light (which reduces blue light emissions on a schedule), Reduce Bright Colors / Extra Dim, Display White Balance, and Color Correction for visual impairments are managed centrally by ColorDisplayService. For display engineers, mobile application developers, and QA automation teams, Android Debug Bridge (ADB) provides full diagnostic transparency and programmatic control via dumpsys color_display.

Architecture of the Android Color Display Service

The color_display system service (implemented in com.android.server.display.color.ColorDisplayService) coordinates between high-level user preferences and low-level Hardware Composer (HWC) and SurfaceFlinger color transform matrices:

  • Night Light (CCT Adaptation): Manipulates Correlated Color Temperature (measured in Kelvin, typically ranging from 2,500K for warm amber to 6,500K for neutral daylight). It activates automatically via custom schedules or astronomical sunset-to-sunrise calculations.
  • Display Color Modes: Configures color gamut mapping across physical OLED and LCD panels (e.g., Natural / sRGB, Boosted / DCI-P3, Saturated, or Adaptive).
  • Accessibility Transforms: Applies real-time color blindness correction matrices (Deuteranomaly / green-weak, Protanomaly / red-weak, Tritanomaly / blue-weak, or full Grayscale / Monochromacy).
  • Extra Dim (Reduce Bright Colors): Compresses pixel luminance values below physical panel hardware minimums for comfortable dark-room viewing.

Querying the Color Display Subsystem via ADB

Connect your Android device with USB debugging authorized and execute the diagnostic command in your terminal:

adb shell dumpsys color_display

The command dumps complete configuration state tables for all active color transform features across user profiles.

Analysing Key Sections of dumpsys color_display

1. Night Light Configuration and Temperature Metrics

Inspect the Night Light block to verify schedule parameters and active color temperature:

Night display:
  Activated: true
  Color temp: 3200
  Auto mode: AUTO_MODE_SUNSET_TO_SUNRISE
  Custom start time: null
  Custom end time: null

Key indicators confirm state:

  • Activated: Indicates whether the amber blue-light suppression tint is currently active.
  • Color temp: The active color temperature in Kelvin (lower values indicate a warmer, more intense amber tint).
  • Auto mode: Confirms whether activation is manual (AUTO_MODE_DISABLED), scheduled by time (AUTO_MODE_CUSTOM_TIME), or synced to local astronomical dusk (AUTO_MODE_SUNSET_TO_SUNRISE).

2. Active Display Color Gamut Mode

Review the primary color mode used by SurfaceFlinger to render interface assets:

Color mode: 0 (COLOR_MODE_NATURAL)
Display white balance:
  Activated: false

Standard color mode integers include: 0 (Natural / calibrated sRGB), 1 (Boosted / vivid sRGB), 2 (Saturated / native panel gamut), and 3 (Adaptive / ambient color tuning).

3. Accessibility and Extra Dim Features

Inspect vision assistance and low-brightness luminance modifications:

Reduce bright colors:
  Activated: false
  Strength: 50
Display color transform (Accessibility):
  Activated: false
  Mode: 0 (CORRECTION_DEUTERANOMALY)

Simulating and Controlling Color Features via ADB

During automated testing or continuous integration UI validation, engineers can trigger Night Light or adjust color temperatures directly using cmd color_display:

1. Manually Toggle Night Light On or Off

# Activate Night Light
adb shell cmd color_display set-night-display-activated 1

# Deactivate Night Light
adb shell cmd color_display set-night-display-activated 0

2. Adjust Night Light Color Temperature

To evaluate UI readability at extreme amber warmth (e.g., 2,800K):

adb shell cmd color_display set-night-display-color-temperature 2800

3. Toggle Extra Dim (Reduce Bright Colors)

# Enable Extra Dim
adb shell cmd color_display set-reduce-bright-colors-activated 1

# Set Extra Dim Strength (1 to 100)
adb shell cmd color_display set-reduce-bright-colors-strength 75

Verifying UI Contrast and Asset Integrity

Applying warm color temperatures or accessibility corrections can alter perceptual contrast ratios on buttons, badges, and text. By using ADB to toggle color transforms and capturing screenshots via screencap:

adb shell screencap -p /sdcard/display_test.png
adb pull /sdcard/display_test.png .

QA automation rigs can programmatically verify that user interface elements remain compliant with WCAG accessibility contrast guidelines even when aggressive Night Light or grayscale filters are engaged.

Leveraging dumpsys color_display equips Android engineers and UI designers with authoritative, scriptable insight into display color transformations, guaranteeing consistent visual fidelity and accessibility across diverse lighting conditions.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.