diff --git a/Android.bp b/Android.bp
index b3c79cf..bd4ce93 100644
--- a/Android.bp
+++ b/Android.bp
@@ -325,6 +325,7 @@
     ":perfetto_src_traced_probes_filesystem_filesystem",
     ":perfetto_src_traced_probes_ftrace_format_parser",
     ":perfetto_src_traced_probes_ftrace_ftrace",
+    ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
     ":perfetto_src_traced_probes_metatrace_metatrace",
     ":perfetto_src_traced_probes_packages_list_packages_list",
     ":perfetto_src_traced_probes_power_power",
@@ -825,6 +826,7 @@
     ":perfetto_src_traced_probes_filesystem_filesystem",
     ":perfetto_src_traced_probes_ftrace_format_parser",
     ":perfetto_src_traced_probes_ftrace_ftrace",
+    ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
     ":perfetto_src_traced_probes_metatrace_metatrace",
     ":perfetto_src_traced_probes_packages_list_packages_list",
     ":perfetto_src_traced_probes_power_power",
@@ -1069,6 +1071,7 @@
     ":perfetto_src_traced_probes_filesystem_filesystem",
     ":perfetto_src_traced_probes_ftrace_format_parser",
     ":perfetto_src_traced_probes_ftrace_ftrace",
+    ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
     ":perfetto_src_traced_probes_metatrace_metatrace",
     ":perfetto_src_traced_probes_packages_list_packages_list",
     ":perfetto_src_traced_probes_power_power",
@@ -1456,6 +1459,7 @@
     ":perfetto_src_traced_probes_ftrace_ftrace",
     ":perfetto_src_traced_probes_ftrace_integrationtests",
     ":perfetto_src_traced_probes_ftrace_test_support",
+    ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
     ":perfetto_src_traced_probes_metatrace_metatrace",
     ":perfetto_src_traced_probes_packages_list_packages_list",
     ":perfetto_src_traced_probes_power_power",
@@ -3195,6 +3199,7 @@
   srcs: [
     "protos/perfetto/trace/android/android_log.proto",
     "protos/perfetto/trace/android/graphics_frame_event.proto",
+    "protos/perfetto/trace/android/initial_display_state.proto",
     "protos/perfetto/trace/android/packages_list.proto",
   ],
   tools: [
@@ -3205,6 +3210,7 @@
   out: [
     "external/perfetto/protos/perfetto/trace/android/android_log.gen.cc",
     "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.gen.cc",
+    "external/perfetto/protos/perfetto/trace/android/initial_display_state.gen.cc",
     "external/perfetto/protos/perfetto/trace/android/packages_list.gen.cc",
   ],
 }
@@ -3215,6 +3221,7 @@
   srcs: [
     "protos/perfetto/trace/android/android_log.proto",
     "protos/perfetto/trace/android/graphics_frame_event.proto",
+    "protos/perfetto/trace/android/initial_display_state.proto",
     "protos/perfetto/trace/android/packages_list.proto",
   ],
   tools: [
@@ -3225,6 +3232,7 @@
   out: [
     "external/perfetto/protos/perfetto/trace/android/android_log.gen.h",
     "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.gen.h",
+    "external/perfetto/protos/perfetto/trace/android/initial_display_state.gen.h",
     "external/perfetto/protos/perfetto/trace/android/packages_list.gen.h",
   ],
   export_include_dirs: [
@@ -3239,6 +3247,7 @@
   srcs: [
     "protos/perfetto/trace/android/android_log.proto",
     "protos/perfetto/trace/android/graphics_frame_event.proto",
+    "protos/perfetto/trace/android/initial_display_state.proto",
     "protos/perfetto/trace/android/packages_list.proto",
   ],
   tools: [
@@ -3248,6 +3257,7 @@
   out: [
     "external/perfetto/protos/perfetto/trace/android/android_log.pb.cc",
     "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pb.cc",
+    "external/perfetto/protos/perfetto/trace/android/initial_display_state.pb.cc",
     "external/perfetto/protos/perfetto/trace/android/packages_list.pb.cc",
   ],
 }
@@ -3258,6 +3268,7 @@
   srcs: [
     "protos/perfetto/trace/android/android_log.proto",
     "protos/perfetto/trace/android/graphics_frame_event.proto",
+    "protos/perfetto/trace/android/initial_display_state.proto",
     "protos/perfetto/trace/android/packages_list.proto",
   ],
   tools: [
@@ -3267,6 +3278,7 @@
   out: [
     "external/perfetto/protos/perfetto/trace/android/android_log.pb.h",
     "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pb.h",
+    "external/perfetto/protos/perfetto/trace/android/initial_display_state.pb.h",
     "external/perfetto/protos/perfetto/trace/android/packages_list.pb.h",
   ],
   export_include_dirs: [
@@ -3281,6 +3293,7 @@
   srcs: [
     "protos/perfetto/trace/android/android_log.proto",
     "protos/perfetto/trace/android/graphics_frame_event.proto",
+    "protos/perfetto/trace/android/initial_display_state.proto",
     "protos/perfetto/trace/android/packages_list.proto",
   ],
   tools: [
@@ -3291,6 +3304,7 @@
   out: [
     "external/perfetto/protos/perfetto/trace/android/android_log.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pbzero.cc",
+    "external/perfetto/protos/perfetto/trace/android/initial_display_state.pbzero.cc",
     "external/perfetto/protos/perfetto/trace/android/packages_list.pbzero.cc",
   ],
 }
@@ -3301,6 +3315,7 @@
   srcs: [
     "protos/perfetto/trace/android/android_log.proto",
     "protos/perfetto/trace/android/graphics_frame_event.proto",
+    "protos/perfetto/trace/android/initial_display_state.proto",
     "protos/perfetto/trace/android/packages_list.proto",
   ],
   tools: [
@@ -3311,6 +3326,7 @@
   out: [
     "external/perfetto/protos/perfetto/trace/android/android_log.pbzero.h",
     "external/perfetto/protos/perfetto/trace/android/graphics_frame_event.pbzero.h",
+    "external/perfetto/protos/perfetto/trace/android/initial_display_state.pbzero.h",
     "external/perfetto/protos/perfetto/trace/android/packages_list.pbzero.h",
   ],
   export_include_dirs: [
@@ -6965,6 +6981,22 @@
   ],
 }
 
+// GN: //src/traced/probes/initial_display_state:initial_display_state
+filegroup {
+  name: "perfetto_src_traced_probes_initial_display_state_initial_display_state",
+  srcs: [
+    "src/traced/probes/initial_display_state/initial_display_state_data_source.cc",
+  ],
+}
+
+// GN: //src/traced/probes/initial_display_state:unittests
+filegroup {
+  name: "perfetto_src_traced_probes_initial_display_state_unittests",
+  srcs: [
+    "src/traced/probes/initial_display_state/initial_display_state_data_source_unittest.cc",
+  ],
+}
+
 // GN: //src/traced/probes/metatrace:metatrace
 filegroup {
   name: "perfetto_src_traced_probes_metatrace_metatrace",
@@ -7609,6 +7641,8 @@
     ":perfetto_src_traced_probes_ftrace_test_messages_zero_gen",
     ":perfetto_src_traced_probes_ftrace_test_support",
     ":perfetto_src_traced_probes_ftrace_unittests",
+    ":perfetto_src_traced_probes_initial_display_state_initial_display_state",
+    ":perfetto_src_traced_probes_initial_display_state_unittests",
     ":perfetto_src_traced_probes_metatrace_metatrace",
     ":perfetto_src_traced_probes_packages_list_packages_list",
     ":perfetto_src_traced_probes_packages_list_unittests",
diff --git a/BUILD b/BUILD
index 6d507fa..da44927 100644
--- a/BUILD
+++ b/BUILD
@@ -177,6 +177,7 @@
         ":src_traced_probes_filesystem_filesystem",
         ":src_traced_probes_ftrace_format_parser",
         ":src_traced_probes_ftrace_ftrace",
+        ":src_traced_probes_initial_display_state_initial_display_state",
         ":src_traced_probes_metatrace_metatrace",
         ":src_traced_probes_packages_list_packages_list",
         ":src_traced_probes_power_power",
@@ -1156,6 +1157,15 @@
     ],
 )
 
+# GN target: //src/traced/probes/initial_display_state:initial_display_state
+filegroup(
+    name = "src_traced_probes_initial_display_state_initial_display_state",
+    srcs = [
+        "src/traced/probes/initial_display_state/initial_display_state_data_source.cc",
+        "src/traced/probes/initial_display_state/initial_display_state_data_source.h",
+    ],
+)
+
 # GN target: //src/traced/probes/metatrace:metatrace
 filegroup(
     name = "src_traced_probes_metatrace_metatrace",
@@ -2051,6 +2061,7 @@
     srcs = [
         "protos/perfetto/trace/android/android_log.proto",
         "protos/perfetto/trace/android/graphics_frame_event.proto",
+        "protos/perfetto/trace/android/initial_display_state.proto",
         "protos/perfetto/trace/android/packages_list.proto",
     ],
     visibility = [
diff --git a/protos/perfetto/trace/android/BUILD.gn b/protos/perfetto/trace/android/BUILD.gn
index 98163d6..a43e446 100644
--- a/protos/perfetto/trace/android/BUILD.gn
+++ b/protos/perfetto/trace/android/BUILD.gn
@@ -20,6 +20,7 @@
   sources = [
     "android_log.proto",
     "graphics_frame_event.proto",
+    "initial_display_state.proto",
     "packages_list.proto",
   ]
 }
diff --git a/protos/perfetto/trace/android/initial_display_state.proto b/protos/perfetto/trace/android/initial_display_state.proto
new file mode 100644
index 0000000..09c1b73
--- /dev/null
+++ b/protos/perfetto/trace/android/initial_display_state.proto
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+package perfetto.protos;
+
+message InitialDisplayState {
+  // Same values as android.view.Display.STATE_*
+  optional int32 display_state = 1;
+  optional double brightness = 2;
+}
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index 2935bfd..abcd848 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -1573,6 +1573,16 @@
 
 // End of protos/perfetto/trace/android/graphics_frame_event.proto
 
+// Begin of protos/perfetto/trace/android/initial_display_state.proto
+
+message InitialDisplayState {
+  // Same values as android.view.Display.STATE_*
+  optional int32 display_state = 1;
+  optional double brightness = 2;
+}
+
+// End of protos/perfetto/trace/android/initial_display_state.proto
+
 // Begin of protos/perfetto/trace/android/packages_list.proto
 
 message PackagesList {
@@ -6716,7 +6726,7 @@
 // TracePacket(s).
 //
 // Next reserved id: 13 (up to 15).
-// Next id: 70.
+// Next id: 71.
 message TracePacket {
   // The timestamp of the TracePacket.
   // By default this timestamps refers to the trace clock (CLOCK_BOOTTIME on
@@ -6771,6 +6781,7 @@
     CpuInfo cpu_info = 67;
     SmapsPacket smaps_packet = 68;
     TracingServiceEvent service_event = 69;
+    InitialDisplayState initial_display_state = 70;
 
     // Only used in profile packets.
     ProfiledFrameSymbols profiled_frame_symbols = 55;
diff --git a/protos/perfetto/trace/trace_packet.proto b/protos/perfetto/trace/trace_packet.proto
index 91a10ac..993b05c 100644
--- a/protos/perfetto/trace/trace_packet.proto
+++ b/protos/perfetto/trace/trace_packet.proto
@@ -20,6 +20,7 @@
 import "protos/perfetto/config/trace_config.proto";
 import "protos/perfetto/trace/android/android_log.proto";
 import "protos/perfetto/trace/android/graphics_frame_event.proto";
+import "protos/perfetto/trace/android/initial_display_state.proto";
 import "protos/perfetto/trace/android/packages_list.proto";
 import "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto";
 import "protos/perfetto/trace/chrome/chrome_metadata.proto";
@@ -61,7 +62,7 @@
 // TracePacket(s).
 //
 // Next reserved id: 13 (up to 15).
-// Next id: 70.
+// Next id: 71.
 message TracePacket {
   // The timestamp of the TracePacket.
   // By default this timestamps refers to the trace clock (CLOCK_BOOTTIME on
@@ -116,6 +117,7 @@
     CpuInfo cpu_info = 67;
     SmapsPacket smaps_packet = 68;
     TracingServiceEvent service_event = 69;
+    InitialDisplayState initial_display_state = 70;
 
     // Only used in profile packets.
     ProfiledFrameSymbols profiled_frame_symbols = 55;
diff --git a/src/traced/probes/BUILD.gn b/src/traced/probes/BUILD.gn
index a5d5cb0..7eec236 100644
--- a/src/traced/probes/BUILD.gn
+++ b/src/traced/probes/BUILD.gn
@@ -56,6 +56,7 @@
     "android_log",
     "common",
     "filesystem",
+    "initial_display_state",
     "metatrace",
     "packages_list",
     "power",
@@ -92,6 +93,7 @@
     "android_log:unittests",
     "common:unittests",
     "filesystem:unittests",
+    "initial_display_state:unittests",
     "packages_list:unittests",
     "ps:unittests",
     "sys_stats:unittests",
diff --git a/src/traced/probes/initial_display_state/BUILD.gn b/src/traced/probes/initial_display_state/BUILD.gn
new file mode 100644
index 0000000..ea71625
--- /dev/null
+++ b/src/traced/probes/initial_display_state/BUILD.gn
@@ -0,0 +1,45 @@
+# Copyright (C) 2020 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("../../../../gn/test.gni")
+
+source_set("initial_display_state") {
+  public_deps = [ "../../../tracing/core" ]
+  deps = [
+    "..:data_source",
+    "../../../../gn:default_deps",
+    "../../../../include/perfetto/ext/traced",
+    "../../../../protos/perfetto/trace:zero",
+    "../../../../protos/perfetto/trace/android:zero",
+    "../../../base",
+    "../common",
+  ]
+  sources = [
+    "initial_display_state_data_source.cc",
+    "initial_display_state_data_source.h",
+  ]
+}
+
+perfetto_unittest_source_set("unittests") {
+  testonly = true
+  deps = [
+    ":initial_display_state",
+    "../../../../gn:default_deps",
+    "../../../../gn:gtest_and_gmock",
+    "../../../../protos/perfetto/trace/android:cpp",
+    "../../../../src/tracing/test:test_support",
+    "../common:test_support",
+  ]
+  sources = [ "initial_display_state_data_source_unittest.cc" ]
+}
diff --git a/src/traced/probes/initial_display_state/initial_display_state_data_source.cc b/src/traced/probes/initial_display_state/initial_display_state_data_source.cc
new file mode 100644
index 0000000..5d3150e
--- /dev/null
+++ b/src/traced/probes/initial_display_state/initial_display_state_data_source.cc
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "src/traced/probes/initial_display_state/initial_display_state_data_source.h"
+
+#include "perfetto/base/time.h"
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/base/string_utils.h"
+
+#include "protos/perfetto/trace/android/initial_display_state.pbzero.h"
+#include "protos/perfetto/trace/trace_packet.pbzero.h"
+
+#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+#include <sys/system_properties.h>
+#endif
+
+namespace perfetto {
+
+// static
+const InitialDisplayStateDataSource::Descriptor
+    InitialDisplayStateDataSource::descriptor = {
+        /* name */ "android.polled_state",
+        /* flags */ Descriptor::kFlagsNone,
+};
+
+InitialDisplayStateDataSource::InitialDisplayStateDataSource(
+    TracingSessionID session_id,
+    std::unique_ptr<TraceWriter> writer)
+    : ProbesDataSource(session_id, &descriptor), writer_(std::move(writer)) {}
+
+void InitialDisplayStateDataSource::Start() {
+  auto packet = writer_->NewTracePacket();
+  packet->set_timestamp(static_cast<uint64_t>(base::GetBootTimeNs().count()));
+  const base::Optional<std::string> screen_state_str =
+      ReadProperty("debug.tracing.screen_state");
+  const base::Optional<std::string> screen_brightness_str =
+      ReadProperty("debug.tracing.screen_brightness");
+  const base::Optional<int> screen_state =
+      screen_state_str ? base::StringToInt32(*screen_state_str) : base::nullopt;
+  const base::Optional<double> screen_brightness =
+      screen_brightness_str ? base::StringToDouble(*screen_brightness_str)
+                            : base::nullopt;
+  if (screen_state || screen_brightness) {
+    auto* state = packet->set_initial_display_state();
+    if (screen_state) {
+      state->set_display_state(*screen_state);
+    }
+    if (screen_brightness) {
+      state->set_brightness(*screen_brightness);
+    }
+  }
+  packet->Finalize();
+  writer_->Flush();
+}
+
+#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+const base::Optional<std::string> InitialDisplayStateDataSource::ReadProperty(
+    const std::string name) {
+  char value[PROP_VALUE_MAX];
+  if (__system_property_get(name.c_str(), value)) {
+    return base::make_optional(value);
+  } else {
+    PERFETTO_ELOG("Unable to read %s", name.c_str());
+    return base::nullopt;
+  }
+}
+#else
+const base::Optional<std::string> InitialDisplayStateDataSource::ReadProperty(
+    const std::string name __attribute__((unused))) {
+  PERFETTO_ELOG("Initial display state only supported on Android.");
+  return base::nullopt;
+}
+#endif
+
+void InitialDisplayStateDataSource::Flush(FlushRequestID,
+                                          std::function<void()> callback) {
+  writer_->Flush(callback);
+}
+
+}  // namespace perfetto
diff --git a/src/traced/probes/initial_display_state/initial_display_state_data_source.h b/src/traced/probes/initial_display_state/initial_display_state_data_source.h
new file mode 100644
index 0000000..c3746d2
--- /dev/null
+++ b/src/traced/probes/initial_display_state/initial_display_state_data_source.h
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SRC_TRACED_PROBES_INITIAL_DISPLAY_STATE_INITIAL_DISPLAY_STATE_DATA_SOURCE_H_
+#define SRC_TRACED_PROBES_INITIAL_DISPLAY_STATE_INITIAL_DISPLAY_STATE_DATA_SOURCE_H_
+
+#include <memory>
+
+#include "perfetto/ext/base/optional.h"
+#include "perfetto/ext/tracing/core/trace_writer.h"
+#include "src/traced/probes/probes_data_source.h"
+
+namespace perfetto {
+
+class InitialDisplayStateDataSource : public ProbesDataSource {
+ public:
+  static const ProbesDataSource::Descriptor descriptor;
+
+  InitialDisplayStateDataSource(TracingSessionID,
+                                std::unique_ptr<TraceWriter> writer);
+
+  // ProbesDataSource implementation.
+  void Start() override;
+  void Flush(FlushRequestID, std::function<void()> callback) override;
+
+  // Virtual for testing.
+  virtual const base::Optional<std::string> ReadProperty(
+      const std::string name);
+
+ private:
+  std::unique_ptr<TraceWriter> writer_;
+};
+
+}  // namespace perfetto
+
+#endif  // SRC_TRACED_PROBES_INITIAL_DISPLAY_STATE_INITIAL_DISPLAY_STATE_DATA_SOURCE_H_
diff --git a/src/traced/probes/initial_display_state/initial_display_state_data_source_unittest.cc b/src/traced/probes/initial_display_state/initial_display_state_data_source_unittest.cc
new file mode 100644
index 0000000..a4f4f57
--- /dev/null
+++ b/src/traced/probes/initial_display_state/initial_display_state_data_source_unittest.cc
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "src/traced/probes/initial_display_state/initial_display_state_data_source.h"
+#include "src/tracing/core/trace_writer_for_testing.h"
+#include "test/gtest_and_gmock.h"
+
+#include "protos/perfetto/trace/android/initial_display_state.gen.h"
+#include "protos/perfetto/trace/trace_packet.gen.h"
+
+using ::testing::AnyOf;
+using ::testing::ElementsAre;
+using ::testing::Return;
+
+namespace perfetto {
+namespace {
+
+class TestInitialDisplayStateDataSource : public InitialDisplayStateDataSource {
+ public:
+  TestInitialDisplayStateDataSource(std::unique_ptr<TraceWriter> writer)
+      : InitialDisplayStateDataSource(
+            /* session_id */ 0,
+            std::move(writer)) {}
+
+  MOCK_METHOD1(ReadProperty,
+               const base::Optional<std::string>(const std::string));
+};
+
+class InitialDisplayStateDataSourceTest : public ::testing::Test {
+ protected:
+  std::unique_ptr<TestInitialDisplayStateDataSource>
+  GetInitialDisplayStateDataSource() {
+    auto writer =
+        std::unique_ptr<TraceWriterForTesting>(new TraceWriterForTesting());
+    writer_raw_ = writer.get();
+    auto instance = std::unique_ptr<TestInitialDisplayStateDataSource>(
+        new TestInitialDisplayStateDataSource(std::move(writer)));
+    return instance;
+  }
+
+  TraceWriterForTesting* writer_raw_ = nullptr;
+};
+
+TEST_F(InitialDisplayStateDataSourceTest, Success) {
+  ASSERT_TRUE(true);
+  auto data_source = GetInitialDisplayStateDataSource();
+  EXPECT_CALL(*data_source, ReadProperty("debug.tracing.screen_state"))
+      .WillOnce(Return(base::make_optional("2")));
+  EXPECT_CALL(*data_source, ReadProperty("debug.tracing.screen_brightness"))
+      .WillOnce(Return(base::make_optional("0.123456")));
+  data_source->Start();
+
+  protos::gen::TracePacket packet = writer_raw_->GetOnlyTracePacket();
+  ASSERT_TRUE(packet.has_initial_display_state());
+  auto state = packet.initial_display_state();
+  ASSERT_EQ(state.display_state(), 2);
+  ASSERT_EQ(state.brightness(), 0.123456);
+}
+
+TEST_F(InitialDisplayStateDataSourceTest, Invalid) {
+  ASSERT_TRUE(true);
+  auto data_source = GetInitialDisplayStateDataSource();
+  EXPECT_CALL(*data_source, ReadProperty("debug.tracing.screen_state"))
+      .WillOnce(Return(base::make_optional("2")));
+  EXPECT_CALL(*data_source, ReadProperty("debug.tracing.screen_brightness"))
+      .WillOnce(Return(base::make_optional("gotta wear shades")));
+  data_source->Start();
+
+  protos::gen::TracePacket packet = writer_raw_->GetOnlyTracePacket();
+  ASSERT_TRUE(packet.has_initial_display_state());
+  auto state = packet.initial_display_state();
+  ASSERT_EQ(state.display_state(), 2);
+  ASSERT_FALSE(state.has_brightness());
+}
+
+TEST_F(InitialDisplayStateDataSourceTest, Failure) {
+  ASSERT_TRUE(true);
+  auto data_source = GetInitialDisplayStateDataSource();
+  EXPECT_CALL(*data_source, ReadProperty("debug.tracing.screen_state"))
+      .WillOnce(Return(base::nullopt));
+  EXPECT_CALL(*data_source, ReadProperty("debug.tracing.screen_brightness"))
+      .WillOnce(Return(base::nullopt));
+  data_source->Start();
+
+  protos::gen::TracePacket packet = writer_raw_->GetOnlyTracePacket();
+  ASSERT_FALSE(packet.has_initial_display_state());
+}
+
+}  // namespace
+}  // namespace perfetto
diff --git a/src/traced/probes/probes_producer.cc b/src/traced/probes/probes_producer.cc
index 2d86c02..b1bfe5e 100644
--- a/src/traced/probes/probes_producer.cc
+++ b/src/traced/probes/probes_producer.cc
@@ -37,6 +37,7 @@
 #include "src/traced/probes/common/cpu_freq_info.h"
 #include "src/traced/probes/filesystem/inode_file_data_source.h"
 #include "src/traced/probes/ftrace/ftrace_data_source.h"
+#include "src/traced/probes/initial_display_state/initial_display_state_data_source.h"
 #include "src/traced/probes/metatrace/metatrace_data_source.h"
 #include "src/traced/probes/packages_list/packages_list_data_source.h"
 #include "src/traced/probes/power/android_power_data_source.h"
@@ -64,15 +65,16 @@
 constexpr size_t kTracingSharedMemPageSizeHintBytes = 32 * 1024;
 
 ProbesDataSource::Descriptor const* const kAllDataSources[]{
-    &FtraceDataSource::descriptor,        //
-    &ProcessStatsDataSource::descriptor,  //
-    &InodeFileDataSource::descriptor,     //
-    &SysStatsDataSource::descriptor,      //
-    &AndroidPowerDataSource::descriptor,  //
-    &AndroidLogDataSource::descriptor,    //
-    &PackagesListDataSource::descriptor,  //
-    &MetatraceDataSource::descriptor,     //
-    &SystemInfoDataSource::descriptor,    //
+    &FtraceDataSource::descriptor,               //
+    &ProcessStatsDataSource::descriptor,         //
+    &InodeFileDataSource::descriptor,            //
+    &SysStatsDataSource::descriptor,             //
+    &AndroidPowerDataSource::descriptor,         //
+    &AndroidLogDataSource::descriptor,           //
+    &PackagesListDataSource::descriptor,         //
+    &MetatraceDataSource::descriptor,            //
+    &SystemInfoDataSource::descriptor,           //
+    &InitialDisplayStateDataSource::descriptor,  //
 };
 }  // namespace
 
@@ -166,6 +168,8 @@
     data_source = CreateMetatraceDataSource(session_id, config);
   } else if (config.name() == SystemInfoDataSource::descriptor.name) {
     data_source = CreateSystemInfoDataSource(session_id, config);
+  } else if (config.name() == InitialDisplayStateDataSource::descriptor.name) {
+    data_source = CreateInitialDisplayStateDataSource(session_id, config);
   }
 
   if (!data_source) {
@@ -311,6 +315,15 @@
       std::unique_ptr<CpuFreqInfo>(new CpuFreqInfo())));
 }
 
+std::unique_ptr<ProbesDataSource>
+ProbesProducer::CreateInitialDisplayStateDataSource(
+    TracingSessionID session_id,
+    const DataSourceConfig& config) {
+  auto buffer_id = static_cast<BufferID>(config.target_buffer());
+  return std::unique_ptr<ProbesDataSource>(new InitialDisplayStateDataSource(
+      session_id, endpoint_->CreateTraceWriter(buffer_id)));
+}
+
 void ProbesProducer::StopDataSource(DataSourceInstanceID id) {
   PERFETTO_LOG("Producer stop (id=%" PRIu64 ")", id);
   auto it = data_sources_.find(id);
diff --git a/src/traced/probes/probes_producer.h b/src/traced/probes/probes_producer.h
index 7cab1ab..39d6425 100644
--- a/src/traced/probes/probes_producer.h
+++ b/src/traced/probes/probes_producer.h
@@ -90,6 +90,9 @@
   std::unique_ptr<ProbesDataSource> CreateSystemInfoDataSource(
       TracingSessionID session_id,
       const DataSourceConfig& config);
+  std::unique_ptr<ProbesDataSource> CreateInitialDisplayStateDataSource(
+      TracingSessionID session_id,
+      const DataSourceConfig& config);
 
  private:
   enum State {
