Merge "Cast PERFETTO_TYPE_IDENTIFIER to bool"
diff --git a/Android.bp b/Android.bp
index 2196b71..f4f9a2d 100644
--- a/Android.bp
+++ b/Android.bp
@@ -689,6 +689,7 @@
         "src/android_internal/health_hal.cc",
         "src/android_internal/incident_service.cc",
         "src/android_internal/power_stats.cc",
+        "src/android_internal/statsd.cc",
         "src/android_internal/statsd_logging.cc",
         "src/android_internal/tracing_service_proxy.cc",
     ],
@@ -706,6 +707,7 @@
         "libincident",
         "liblog",
         "libservices",
+        "libstatspull",
         "libstatssocket",
         "libtracingproxy",
         "libutils",
@@ -10038,6 +10040,7 @@
         "src/trace_processor/metrics/sql/android/java_heap_histogram.sql",
         "src/trace_processor/metrics/sql/android/java_heap_stats.sql",
         "src/trace_processor/metrics/sql/android/mem_stats_priority_breakdown.sql",
+        "src/trace_processor/metrics/sql/android/network_activity_template.sql",
         "src/trace_processor/metrics/sql/android/p_state.sql",
         "src/trace_processor/metrics/sql/android/power_drain_in_watts.sql",
         "src/trace_processor/metrics/sql/android/power_profile_data.sql",
diff --git a/BUILD b/BUILD
index 0f0551b..195292f 100644
--- a/BUILD
+++ b/BUILD
@@ -1787,6 +1787,7 @@
         "src/trace_processor/metrics/sql/android/java_heap_histogram.sql",
         "src/trace_processor/metrics/sql/android/java_heap_stats.sql",
         "src/trace_processor/metrics/sql/android/mem_stats_priority_breakdown.sql",
+        "src/trace_processor/metrics/sql/android/network_activity_template.sql",
         "src/trace_processor/metrics/sql/android/p_state.sql",
         "src/trace_processor/metrics/sql/android/power_drain_in_watts.sql",
         "src/trace_processor/metrics/sql/android/power_profile_data.sql",
diff --git a/include/perfetto/protozero/proto_decoder.h b/include/perfetto/protozero/proto_decoder.h
index 2210532..c27fcad 100644
--- a/include/perfetto/protozero/proto_decoder.h
+++ b/include/perfetto/protozero/proto_decoder.h
@@ -340,7 +340,8 @@
       uint32_t field_id,
       bool* parse_error_location) const {
     const Field& field = Get(field_id);
-    if (field.valid()) {
+    if (field.valid() &&
+        field.type() == proto_utils::ProtoWireType::kLengthDelimited) {
       return PackedRepeatedFieldIterator<wire_type, cpp_type>(
           field.data(), field.size(), parse_error_location);
     }
diff --git a/protos/perfetto/metrics/android/monitor_contention_metric.proto b/protos/perfetto/metrics/android/monitor_contention_metric.proto
index 91122eb..00585d8 100644
--- a/protos/perfetto/metrics/android/monitor_contention_metric.proto
+++ b/protos/perfetto/metrics/android/monitor_contention_metric.proto
@@ -21,28 +21,38 @@
 // This metric provides information about the monitor contention graph in a
 // trace
 message AndroidMonitorContentionMetric {
+  // Next field id: 24
   message Node {
+    // Global context
     optional int64 node_parent_id = 1;
     optional int64 node_id = 2;
     optional int64 ts = 3;
     optional int64 dur = 4;
-    optional string blocking_method = 5;
-    optional string blocked_method = 6;
-    optional string short_blocking_method = 7;
-    optional string short_blocked_method = 8;
-    optional string blocking_src = 9;
-    optional string blocked_src = 10;
-    optional uint32 waiter_count = 11;
-    optional string blocked_thread_name = 12;
-    optional string blocking_thread_name = 13;
     optional string process_name = 14;
-    optional bool is_blocked_thread_main = 15;
-    optional bool is_blocking_thread_main = 16;
-    optional int64 binder_reply_ts = 17;
-    optional uint32 binder_reply_tid = 18;
-
+    optional uint32 pid = 23;
+    optional uint32 waiter_count = 11;
     repeated ThreadStateBreakdown thread_states = 19;
     repeated BlockedFunctionBreakdown blocked_functions = 20;
+
+    // Blocking context
+    optional string blocking_method = 5;
+    optional string short_blocking_method = 7;
+    optional string blocking_src = 9;
+    optional string blocking_thread_name = 13;
+    optional bool is_blocking_thread_main = 16;
+    optional uint32 blocking_thread_tid = 22;
+
+    // Blocked context
+    optional string blocked_method = 6;
+    optional string short_blocked_method = 8;
+    optional string blocked_src = 10;
+    optional string blocked_thread_name = 12;
+    optional bool is_blocked_thread_main = 15;
+    optional uint32 blocked_thread_tid = 21;
+
+    // Binder context
+    optional int64 binder_reply_ts = 17;
+    optional uint32 binder_reply_tid = 18;
   }
 
   message ThreadStateBreakdown {
diff --git a/protos/perfetto/metrics/perfetto_merged_metrics.proto b/protos/perfetto/metrics/perfetto_merged_metrics.proto
index 5fb597d..393095c 100644
--- a/protos/perfetto/metrics/perfetto_merged_metrics.proto
+++ b/protos/perfetto/metrics/perfetto_merged_metrics.proto
@@ -1193,28 +1193,38 @@
 // This metric provides information about the monitor contention graph in a
 // trace
 message AndroidMonitorContentionMetric {
+  // Next field id: 24
   message Node {
+    // Global context
     optional int64 node_parent_id = 1;
     optional int64 node_id = 2;
     optional int64 ts = 3;
     optional int64 dur = 4;
-    optional string blocking_method = 5;
-    optional string blocked_method = 6;
-    optional string short_blocking_method = 7;
-    optional string short_blocked_method = 8;
-    optional string blocking_src = 9;
-    optional string blocked_src = 10;
-    optional uint32 waiter_count = 11;
-    optional string blocked_thread_name = 12;
-    optional string blocking_thread_name = 13;
     optional string process_name = 14;
-    optional bool is_blocked_thread_main = 15;
-    optional bool is_blocking_thread_main = 16;
-    optional int64 binder_reply_ts = 17;
-    optional uint32 binder_reply_tid = 18;
-
+    optional uint32 pid = 23;
+    optional uint32 waiter_count = 11;
     repeated ThreadStateBreakdown thread_states = 19;
     repeated BlockedFunctionBreakdown blocked_functions = 20;
+
+    // Blocking context
+    optional string blocking_method = 5;
+    optional string short_blocking_method = 7;
+    optional string blocking_src = 9;
+    optional string blocking_thread_name = 13;
+    optional bool is_blocking_thread_main = 16;
+    optional uint32 blocking_thread_tid = 22;
+
+    // Blocked context
+    optional string blocked_method = 6;
+    optional string short_blocked_method = 8;
+    optional string blocked_src = 10;
+    optional string blocked_thread_name = 12;
+    optional bool is_blocked_thread_main = 15;
+    optional uint32 blocked_thread_tid = 21;
+
+    // Binder context
+    optional int64 binder_reply_ts = 17;
+    optional uint32 binder_reply_tid = 18;
   }
 
   message ThreadStateBreakdown {
diff --git a/protos/third_party/chromium/chrome_track_event.proto b/protos/third_party/chromium/chrome_track_event.proto
index 1f5a211..cce5e76 100644
--- a/protos/third_party/chromium/chrome_track_event.proto
+++ b/protos/third_party/chromium/chrome_track_event.proto
@@ -513,7 +513,10 @@
   optional int32 browsing_instance_id = 1;
 
   // The ID of the CoopRelatedGroup that the BrowsingContextState belongs to.
-  optional int32 coop_related_group_id = 2;
+  optional int32 coop_related_group_id = 2 [deprecated = true];
+
+  // The token of the CoopRelatedGroup that the BrowsingContextState belongs to.
+  optional string coop_related_group_token = 3;
 
   // Additional untyped debug information associated with this
   // FrameTreeNode, populated via TracedProto::AddDebugAnnotations API.
diff --git a/python/perfetto/trace_processor/metrics.descriptor b/python/perfetto/trace_processor/metrics.descriptor
index f390a02..536dff9 100644
--- a/python/perfetto/trace_processor/metrics.descriptor
+++ b/python/perfetto/trace_processor/metrics.descriptor
Binary files differ
diff --git a/src/android_internal/BUILD.gn b/src/android_internal/BUILD.gn
index 8435eab..a175063 100644
--- a/src/android_internal/BUILD.gn
+++ b/src/android_internal/BUILD.gn
@@ -32,6 +32,7 @@
       "health_hal.cc",
       "incident_service.cc",
       "power_stats.cc",
+      "statsd.cc",
       "statsd_logging.cc",
       "tracing_service_proxy.cc",
     ]
@@ -53,7 +54,7 @@
       "services",
       "tracingproxy",
       "utils",
-      "libstatspull",
+      "statspull",
     ]
 
     # This target should never depend on any other perfetto target to avoid ODR
diff --git a/src/android_internal/statsd.cc b/src/android_internal/statsd.cc
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/android_internal/statsd.cc
diff --git a/src/protozero/proto_decoder_unittest.cc b/src/protozero/proto_decoder_unittest.cc
index 0991f88..1e962d7 100644
--- a/src/protozero/proto_decoder_unittest.cc
+++ b/src/protozero/proto_decoder_unittest.cc
@@ -592,5 +592,26 @@
   ASSERT_FALSE(field.valid());
 }
 
+// Check what happens when trying to parse packed repeated field and finding a
+// mismatching wire type instead. A compliant protobuf decoder should accept it,
+// but protozero doesn't handle that. At least it shouldn't crash.
+TEST(ProtoDecoderTest, PacketRepeatedWireTypeMismatch) {
+  protozero::HeapBuffered<pbtest::PackedRepeatedFields> message;
+  // A proper packed encoding should have a length delimited wire type. Use a
+  // var int wire type instead.
+  constexpr int kFieldId = pbtest::PackedRepeatedFields::kFieldInt32FieldNumber;
+  message->AppendTinyVarInt(kFieldId, 5);
+  auto data = message.SerializeAsArray();
+
+  pbtest::PackedRepeatedFields::Decoder decoder(data.data(), data.size());
+  bool parse_error = false;
+  auto it = decoder.field_int32(&parse_error);
+  // The decoder doesn't return a parse error (maybe it should, but that has
+  // been the behavior since the beginning).
+  ASSERT_FALSE(parse_error);
+  // But the iterator returns 0 elements.
+  EXPECT_FALSE(it);
+}
+
 }  // namespace
 }  // namespace protozero
diff --git a/src/trace_processor/db/sorting_overlay.h b/src/trace_processor/db/sorting_overlay.h
index 4d490e3..7b536a1 100644
--- a/src/trace_processor/db/sorting_overlay.h
+++ b/src/trace_processor/db/sorting_overlay.h
@@ -31,8 +31,8 @@
 class SortingOverlay : public ColumnOverlay {
  public:
   explicit SortingOverlay(ColumnOverlay* ancestor);
-  void Filter(FilterOp, SqlValue, RowMap&) override;
-  void StableSort(uint32_t* rows_order, uint32_t rows_size) override;
+  void Filter(FilterOp, SqlValue, RowMap&) const override;
+  void StableSort(uint32_t* rows_order, uint32_t rows_size) const override;
 
  private:
   std::unique_ptr<ColumnOverlay> inner_;
diff --git a/src/trace_processor/metrics/sql/android/BUILD.gn b/src/trace_processor/metrics/sql/android/BUILD.gn
index bf54d44..a566661 100644
--- a/src/trace_processor/metrics/sql/android/BUILD.gn
+++ b/src/trace_processor/metrics/sql/android/BUILD.gn
@@ -82,6 +82,7 @@
     "java_heap_histogram.sql",
     "java_heap_stats.sql",
     "mem_stats_priority_breakdown.sql",
+    "network_activity_template.sql",
     "p_state.sql",
     "power_drain_in_watts.sql",
     "power_profile_data.sql",
diff --git a/src/trace_processor/metrics/sql/android/android_monitor_contention.sql b/src/trace_processor/metrics/sql/android/android_monitor_contention.sql
index 7cfaeb8..52e1693 100644
--- a/src/trace_processor/metrics/sql/android/android_monitor_contention.sql
+++ b/src/trace_processor/metrics/sql/android/android_monitor_contention.sql
@@ -35,7 +35,10 @@
         'waiter_count', waiter_count,
         'blocking_thread_name', blocking_thread_name,
         'blocked_thread_name', blocked_thread_name,
+        'blocked_thread_tid', blocked_thread_tid,
+        'blocking_thread_tid', blocking_thread_tid,
         'process_name', process_name,
+        'pid', pid,
         'is_blocked_thread_main', is_blocked_thread_main,
         'is_blocking_thread_main', is_blocking_thread_main,
         'binder_reply_ts', binder_reply_ts,
diff --git a/src/trace_processor/metrics/sql/android/network_activity_template.sql b/src/trace_processor/metrics/sql/android/network_activity_template.sql
new file mode 100644
index 0000000..2dcfa31
--- /dev/null
+++ b/src/trace_processor/metrics/sql/android/network_activity_template.sql
@@ -0,0 +1,74 @@
+--
+-- Copyright 2023 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
+--
+--     https://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.
+
+SELECT IMPORT('android.network_packets');
+
+-- Creates a view of aggregated network activity. It is common among networking
+-- to have the interface active for some time after network use. For example, in
+-- mobile networking, it is common to have the cellular interface active for 10
+-- or more seconds after the last packet was sent or received. This view takes
+-- raw packet timing and aggregates it into something that approximates the
+-- activity of the underlying interface.
+--
+-- @arg view_name        The name of the output view.
+-- @arg group_by         Expression to group by (set to 'null' for no grouping).
+-- @arg filter           Expression on `android_network_packets` to filter by.
+-- @arg idle_ns          The amount of time before considering the network idle.
+-- @arg quant_ns         Quantization value, to group rows before the heavy
+--                       part of the query. This should be smaller than idle_ns.
+--
+-- @column group_by      The group_by columns are all present in the output.
+-- @column ts            The timestamp indicating the start of the segment.
+-- @column dur           The duration of the current segment.
+-- @column packet_count  The total number of packets in this segment.
+-- @column packet_length The total number of bytes for packets in this segment.
+CREATE VIEW {{view_name}} AS
+WITH quantized AS (
+  SELECT
+    {{group_by}},
+    MIN(ts) AS ts,
+    MAX(ts+dur)-MIN(ts) AS dur,
+    SUM(packet_count) AS packet_count,
+    SUM(packet_length) AS packet_length
+  FROM android_network_packets
+  WHERE {{filter}}
+  GROUP BY CAST(ts / {{quant_ns}} AS INT64), {{group_by}}
+),
+with_last AS (
+  SELECT
+    *,
+    LAG(ts) OVER (
+      PARTITION BY {{group_by}}
+      ORDER BY ts
+    ) AS last_ts
+  FROM quantized
+),
+with_group AS (
+  SELECT
+    *,
+    COUNT(IIF(ts-last_ts>{{idle_ns}}, 1, null)) OVER (
+      PARTITION BY {{group_by}}
+      ORDER BY ts
+    ) AS group_id
+  FROM with_last
+)
+SELECT
+  {{group_by}},
+  MIN(ts) AS ts,
+  MAX(ts+dur)-MIN(ts)+{{idle_ns}} AS dur,
+  SUM(packet_count) AS packet_count,
+  SUM(packet_length) AS packet_length
+FROM with_group
+GROUP BY group_id, {{group_by}}
diff --git a/src/trace_processor/metrics/sql/android/startup/thread_state_breakdown.sql b/src/trace_processor/metrics/sql/android/startup/thread_state_breakdown.sql
index b3939bb..4ef1fc4 100644
--- a/src/trace_processor/metrics/sql/android/startup/thread_state_breakdown.sql
+++ b/src/trace_processor/metrics/sql/android/startup/thread_state_breakdown.sql
@@ -38,8 +38,10 @@
 CREATE TABLE launch_thread_state_io_wait_dur_sum AS
 SELECT startup_id, state, is_main_thread, thread_name, io_wait, SUM(dur) AS dur
 FROM launch_threads_by_thread_state l
+JOIN android_startup_processes p USING (startup_id)
 WHERE
-  is_main_thread
+  -- If it is a main thread, only add it if it is the lauching thread.
+  (is_main_thread AND p.startup_type NOT NULL)
   -- Allowlist specific threads which need this. Do not add to this list
   -- without careful consideration as every thread added here can cause
   -- memory usage to balloon.
diff --git a/src/trace_processor/prelude/functions/utils.h b/src/trace_processor/prelude/functions/utils.h
index 21fed04..ac848d0 100644
--- a/src/trace_processor/prelude/functions/utils.h
+++ b/src/trace_processor/prelude/functions/utils.h
@@ -19,6 +19,7 @@
 
 #include <sqlite3.h>
 #include <unordered_map>
+
 #include "perfetto/ext/base/base64.h"
 #include "perfetto/ext/base/file_utils.h"
 #include "perfetto/ext/trace_processor/demangle.h"
@@ -26,9 +27,9 @@
 #include "src/trace_processor/export_json.h"
 #include "src/trace_processor/importers/common/clock_tracker.h"
 #include "src/trace_processor/prelude/functions/create_function_internal.h"
-#include "src/trace_processor/util/status_macros.h"
-
 #include "src/trace_processor/prelude/functions/sql_function.h"
+#include "src/trace_processor/sqlite/sqlite_utils.h"
+#include "src/trace_processor/util/status_macros.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/stdlib/android/battery_stats.sql b/src/trace_processor/stdlib/android/battery_stats.sql
index 753fd61..2507cb1 100644
--- a/src/trace_processor/stdlib/android/battery_stats.sql
+++ b/src/trace_processor/stdlib/android/battery_stats.sql
@@ -21,7 +21,7 @@
 -- @arg value LONG    The counter value.
 -- @ret STRING        The human-readable name for the counter value.
 SELECT CREATE_FUNCTION(
-  'BATTERY_STATS_COUNTER_TO_STRING(track STRING, value LONG)',
+  'BATTERY_STATS_COUNTER_TO_STRING(track STRING, value FLOAT)',
   'STRING',
   '
   SELECT
@@ -125,16 +125,16 @@
 --
 -- @column ts                  Timestamp in nanoseconds.
 -- @column dur                 The duration the state was active.
--- @column name                The name of the counter track.
+-- @column track_name          The name of the counter track.
 -- @column value               The counter value as a number.
 -- @column value_name          The counter value as a human-readable string.
 CREATE VIEW android_battery_stats_state AS
 SELECT
   ts,
-  name,
-  value,
-  BATTERY_STATS_VALUE_TO_STRING(name, value) AS value_name,
-  LEAD(ts, 1, TRACE_END()) OVER (PARTITION BY track_id ORDER BY ts) - ts AS dur
+  name AS track_name,
+  CAST(value AS INT64) AS value,
+  BATTERY_STATS_COUNTER_TO_STRING(name, value) AS value_name,
+  IFNULL(LEAD(ts) OVER (PARTITION BY track_id ORDER BY ts) - ts, -1) AS dur
 FROM counter
 JOIN counter_track
   ON counter.track_id = counter_track.id
diff --git a/src/trace_processor/stdlib/android/monitor_contention.sql b/src/trace_processor/stdlib/android/monitor_contention.sql
index c1de58f..595c1fe 100644
--- a/src/trace_processor/stdlib/android/monitor_contention.sql
+++ b/src/trace_processor/stdlib/android/monitor_contention.sql
@@ -192,10 +192,13 @@
   slice.dur,
   slice.track_id,
   thread.is_main_thread AS is_blocked_thread_main,
+  thread.tid AS blocked_thread_tid,
   blocking_thread.is_main_thread AS is_blocking_thread_main,
+  blocking_thread.tid AS blocking_thread_tid,
   binder_reply.id AS binder_reply_id,
   binder_reply.ts AS binder_reply_ts,
-  binder_reply_thread.tid AS binder_reply_tid
+  binder_reply_thread.tid AS binder_reply_tid,
+  process.pid
 FROM slice
 JOIN thread_track
   ON thread_track.id = slice.track_id
diff --git a/src/trace_processor/trace_processor_impl.cc b/src/trace_processor/trace_processor_impl.cc
index f00c7fa..f64b1c1 100644
--- a/src/trace_processor/trace_processor_impl.cc
+++ b/src/trace_processor/trace_processor_impl.cc
@@ -596,7 +596,7 @@
 
   // Legacy tables.
   engine_.RegisterVirtualTableModule<SqlStatsTable>(
-      "sql_stats", storage, SqliteTable::TableType::kEponymousOnly, false);
+      "sqlstats", storage, SqliteTable::TableType::kEponymousOnly, false);
   engine_.RegisterVirtualTableModule<StatsTable>(
       "stats", storage, SqliteTable::TableType::kEponymousOnly, false);
 
diff --git a/test/cts/reporter/reporter_test_cts.cc b/test/cts/reporter/reporter_test_cts.cc
index f9294f4..f27d3da 100644
--- a/test/cts/reporter/reporter_test_cts.cc
+++ b/test/cts/reporter/reporter_test_cts.cc
@@ -42,6 +42,7 @@
   trace_config.add_buffers()->set_size_kb(1024);
   trace_config.set_duration_ms(200);
   trace_config.set_allow_user_build_tracing(true);
+  trace_config.set_unique_session_name("TestEndToEndReport");
 
   auto* ds_config = trace_config.add_data_sources()->mutable_config();
   ds_config->set_name("android.perfetto.FakeProducer");
@@ -72,6 +73,7 @@
   auto perfetto_proc = Exec("perfetto",
                             {
                                 "--upload",
+                                "--no-guardrails",
                                 "-c",
                                 "-",
                             },
diff --git a/test/trace_processor/diff_tests/android/android_battery_stats_state.out b/test/trace_processor/diff_tests/android/android_battery_stats_state.out
new file mode 100644
index 0000000..04ea953
--- /dev/null
+++ b/test/trace_processor/diff_tests/android/android_battery_stats_state.out
@@ -0,0 +1,4 @@
+"ts","track_name","value","value_name","dur"
+1000,"battery_stats.audio",1,"active",-1
+1000,"battery_stats.data_conn",13,"lte",3000
+4000,"battery_stats.data_conn",20,"nr",-1
diff --git a/test/trace_processor/diff_tests/android/android_monitor_contention.out b/test/trace_processor/diff_tests/android/android_monitor_contention.out
index 02a6412..163815d 100644
--- a/test/trace_processor/diff_tests/android/android_monitor_contention.out
+++ b/test/trace_processor/diff_tests/android/android_monitor_contention.out
@@ -12,7 +12,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "PackageManager"
+    blocked_thread_tid: 693
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -39,7 +42,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -66,7 +72,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -93,7 +102,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "batterystats-ha"
+    blocked_thread_tid: 676
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -120,7 +132,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "binder:642_12"
+    blocked_thread_tid: 2720
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     binder_reply_ts: 1737055785896
@@ -154,7 +169,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "StorageUserConn"
+    blocked_thread_tid: 1759
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -171,7 +189,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "StorageUserConn"
+    blocked_thread_tid: 1759
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -208,7 +229,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -225,7 +249,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -242,7 +269,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -259,7 +289,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -276,7 +309,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -293,7 +329,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -310,7 +349,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -327,7 +369,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -344,7 +389,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -361,7 +409,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -378,7 +429,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -395,7 +449,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -412,7 +469,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -429,7 +489,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -446,7 +509,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -463,7 +529,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -480,7 +549,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -497,7 +569,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -514,7 +589,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -531,7 +609,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -548,7 +629,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -565,7 +649,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -582,7 +669,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -599,7 +689,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -616,7 +709,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -633,7 +729,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -650,7 +749,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -667,7 +769,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -684,7 +789,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -701,7 +809,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -718,7 +829,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -735,7 +849,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -752,7 +869,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -769,7 +889,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -786,7 +909,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -803,7 +929,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -820,7 +949,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -837,7 +969,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -854,7 +989,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -871,7 +1009,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -888,7 +1029,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -905,7 +1049,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -922,7 +1069,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -939,7 +1089,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -956,7 +1109,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -973,7 +1129,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -990,7 +1149,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1007,7 +1169,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1024,7 +1189,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1041,7 +1209,10 @@
     waiter_count: 1
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.display"
+    blocked_thread_tid: 663
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1063,7 +1234,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1090,7 +1264,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1117,7 +1294,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1144,7 +1324,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "binder:642_11"
+    blocked_thread_tid: 2505
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1182,7 +1365,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "binder:642_12"
+    blocked_thread_tid: 2720
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1210,7 +1396,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "binder:642_12"
+    blocked_thread_tid: 2720
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1237,7 +1426,10 @@
     waiter_count: 1
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -1269,7 +1461,10 @@
     waiter_count: 2
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "binder:642_2"
+    blocked_thread_tid: 658
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1291,7 +1486,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1308,7 +1506,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1325,7 +1526,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1342,7 +1546,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1359,7 +1566,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1376,7 +1586,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1393,7 +1606,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1410,7 +1626,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1427,7 +1646,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1444,7 +1666,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1461,7 +1686,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1478,7 +1706,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1495,7 +1726,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1512,7 +1746,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1529,7 +1766,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1546,7 +1786,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1563,7 +1806,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1580,7 +1826,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_12"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2720
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -1597,7 +1846,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1624,7 +1876,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1651,7 +1906,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1678,7 +1936,10 @@
     waiter_count: 0
     blocking_thread_name: "batterystats-handler"
     blocked_thread_name: "binder:642_11"
+    blocked_thread_tid: 2505
+    blocking_thread_tid: 676
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1710,7 +1971,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1737,7 +2001,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1764,7 +2031,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1791,7 +2061,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1818,7 +2091,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1845,7 +2121,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1872,7 +2151,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1899,7 +2181,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1926,7 +2211,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1953,7 +2241,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -1980,7 +2271,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -2007,7 +2301,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -2034,7 +2331,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -2061,7 +2361,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -2088,7 +2391,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -2115,7 +2421,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -2142,7 +2451,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -2169,7 +2481,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_11"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 2505
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -2196,7 +2511,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "PowerManagerSer"
+    blocked_thread_tid: 687
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -2223,7 +2541,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "PowerManagerSer"
+    blocked_thread_tid: 687
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -2245,7 +2566,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "binder:642_2"
+    blocked_thread_tid: 658
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     binder_reply_ts: 1737145697570
@@ -2274,7 +2598,10 @@
     waiter_count: 0
     blocking_thread_name: "Thread-45"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 3486
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -2301,7 +2628,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "batterystats-ha"
+    blocked_thread_tid: 676
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -2328,7 +2658,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "batterystats-ha"
+    blocked_thread_tid: 676
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -2355,7 +2688,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "PowerManagerSer"
+    blocked_thread_tid: 687
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -2382,7 +2718,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "PowerManagerSer"
+    blocked_thread_tid: 687
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -2410,7 +2749,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "binder:642_14"
+    blocked_thread_tid: 3485
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -2442,7 +2784,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -2479,7 +2824,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2496,7 +2844,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2513,7 +2864,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2530,7 +2884,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "binder:642_11"
+    blocked_thread_tid: 2505
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     binder_reply_ts: 1737164232343
@@ -2549,7 +2906,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2566,7 +2926,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2583,7 +2946,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2600,7 +2966,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2617,7 +2986,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2634,7 +3006,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2651,7 +3026,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2668,7 +3046,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2685,7 +3066,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2702,7 +3086,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2719,7 +3106,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2736,7 +3126,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2753,7 +3146,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2770,7 +3166,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2787,7 +3186,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2804,7 +3206,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2821,7 +3226,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2838,7 +3246,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -2855,7 +3266,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "batterystats-ha"
+    blocked_thread_tid: 676
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -2882,7 +3296,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -2909,7 +3326,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -2936,7 +3356,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -2963,7 +3386,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -2990,7 +3416,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -3017,7 +3446,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -3044,7 +3476,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -3071,7 +3506,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -3098,7 +3536,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -3125,7 +3566,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -3152,7 +3596,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -3179,7 +3626,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -3206,7 +3656,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3233,7 +3686,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3260,7 +3716,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3287,7 +3746,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "binder:642_11"
+    blocked_thread_tid: 2505
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     binder_reply_ts: 1737183173575
@@ -3316,7 +3778,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "binder:642_14"
+    blocked_thread_tid: 3485
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3343,7 +3808,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3370,7 +3838,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3397,7 +3868,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3424,7 +3898,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3451,7 +3928,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3478,7 +3958,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3505,7 +3988,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3532,7 +4018,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3559,7 +4048,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3586,7 +4078,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3613,7 +4108,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3640,7 +4138,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3667,7 +4168,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3694,7 +4198,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3721,7 +4228,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3748,7 +4258,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3775,7 +4288,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3802,7 +4318,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_14"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 3485
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3829,7 +4348,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3856,7 +4378,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3883,7 +4408,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3910,7 +4438,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "binder:642_12"
+    blocked_thread_tid: 2720
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3947,7 +4478,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -3964,7 +4498,10 @@
     waiter_count: 1
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "binder:642_2"
+    blocked_thread_tid: 658
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -3986,7 +4523,10 @@
     waiter_count: 2
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "binder:642_A"
+    blocked_thread_tid: 1675
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4008,7 +4548,10 @@
     waiter_count: 3
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "binder:642_8"
+    blocked_thread_tid: 1548
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4030,7 +4573,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_F"
     blocked_thread_name: "binder:642_1"
+    blocked_thread_tid: 657
+    blocking_thread_tid: 2029
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4062,7 +4608,10 @@
     waiter_count: 4
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "binder:642_13"
+    blocked_thread_tid: 2721
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4084,7 +4633,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4101,7 +4653,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4118,7 +4673,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4135,7 +4693,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4152,7 +4713,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4169,7 +4733,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4186,7 +4753,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4203,7 +4773,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4220,7 +4793,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4237,7 +4813,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4254,7 +4833,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4271,7 +4853,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4288,7 +4873,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4305,7 +4893,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4322,7 +4913,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4339,7 +4933,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -4356,7 +4953,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "binder:642_12"
+    blocked_thread_tid: 2720
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4383,7 +4983,10 @@
     waiter_count: 0
     blocking_thread_name: "android.ui"
     blocked_thread_name: "binder:642_12"
+    blocked_thread_tid: 2720
+    blocking_thread_tid: 661
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4405,7 +5008,10 @@
     waiter_count: 0
     blocking_thread_name: "android.ui"
     blocked_thread_name: "binder:642_12"
+    blocked_thread_tid: 2720
+    blocking_thread_tid: 661
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4432,7 +5038,10 @@
     waiter_count: 0
     blocking_thread_name: "android.ui"
     blocked_thread_name: "binder:642_2"
+    blocked_thread_tid: 658
+    blocking_thread_tid: 661
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4459,7 +5068,10 @@
     waiter_count: 0
     blocking_thread_name: "android.ui"
     blocked_thread_name: "binder:642_A"
+    blocked_thread_tid: 1675
+    blocking_thread_tid: 661
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4481,7 +5093,10 @@
     waiter_count: 0
     blocking_thread_name: "android.ui"
     blocked_thread_name: "binder:642_8"
+    blocked_thread_tid: 1548
+    blocking_thread_tid: 661
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4508,7 +5123,10 @@
     waiter_count: 0
     blocking_thread_name: "android.ui"
     blocked_thread_name: "binder:642_13"
+    blocked_thread_tid: 2721
+    blocking_thread_tid: 661
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4530,7 +5148,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_13"
     blocked_thread_name: "binder:642_12"
+    blocked_thread_tid: 2720
+    blocking_thread_tid: 2721
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     binder_reply_ts: 1737229638872
@@ -4564,7 +5185,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_13"
     blocked_thread_name: "binder:642_8"
+    blocked_thread_tid: 1548
+    blocking_thread_tid: 2721
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4591,7 +5215,10 @@
     waiter_count: 1
     blocking_thread_name: "binder:642_13"
     blocked_thread_name: "binder:642_A"
+    blocked_thread_tid: 1675
+    blocking_thread_tid: 2721
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4628,7 +5255,10 @@
     waiter_count: 2
     blocking_thread_name: "binder:642_13"
     blocked_thread_name: "binder:642_E"
+    blocked_thread_tid: 1934
+    blocking_thread_tid: 2721
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4650,7 +5280,10 @@
     waiter_count: 0
     blocking_thread_name: "android.ui"
     blocked_thread_name: "binder:642_8"
+    blocked_thread_tid: 1548
+    blocking_thread_tid: 661
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4672,7 +5305,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_A"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1675
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4699,7 +5335,10 @@
     waiter_count: 0
     blocking_thread_name: "android.ui"
     blocked_thread_name: "binder:642_E"
+    blocked_thread_tid: 1934
+    blocking_thread_tid: 661
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4721,7 +5360,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -4743,7 +5385,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -4770,7 +5415,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -4797,7 +5445,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -4824,7 +5475,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -4851,7 +5505,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -4878,7 +5535,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -4905,7 +5565,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -4932,7 +5595,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -4959,7 +5625,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -4986,7 +5655,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -5013,7 +5685,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -5040,7 +5715,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -5067,7 +5745,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -5094,7 +5775,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -5121,7 +5805,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -5148,7 +5835,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -5175,7 +5865,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5212,7 +5905,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
   }
@@ -5229,7 +5925,10 @@
     waiter_count: 0
     blocking_thread_name: "StorageManagerService"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 672
+    blocking_thread_tid: 743
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5256,7 +5955,10 @@
     waiter_count: 0
     blocking_thread_name: "StorageManagerService"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 743
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5283,7 +5985,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "tworkPolicy.uid"
+    blocked_thread_tid: 1193
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5310,7 +6015,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5337,7 +6045,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5359,7 +6070,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5386,7 +6100,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5413,7 +6130,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5440,7 +6160,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5467,7 +6190,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5494,7 +6220,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5521,7 +6250,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5548,7 +6280,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5575,7 +6310,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5602,7 +6340,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5629,7 +6370,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5656,7 +6400,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5683,7 +6430,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5710,7 +6460,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5737,7 +6490,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5764,7 +6520,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5791,7 +6550,10 @@
     waiter_count: 0
     blocking_thread_name: "StorageManagerService"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 743
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5818,7 +6580,10 @@
     waiter_count: 0
     blocking_thread_name: "StorageManagerService"
     blocked_thread_name: "PackageManager"
+    blocked_thread_tid: 693
+    blocking_thread_tid: 743
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5845,7 +6610,10 @@
     waiter_count: 0
     blocking_thread_name: "StorageManagerService"
     blocked_thread_name: "tworkPolicy.uid"
+    blocked_thread_tid: 1193
+    blocking_thread_tid: 743
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5872,7 +6640,10 @@
     waiter_count: 0
     blocking_thread_name: "StorageManagerService"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 743
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5899,7 +6670,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -5926,7 +6700,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 670
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -5953,7 +6730,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "batterystats-ha"
+    blocked_thread_tid: 676
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -5980,7 +6760,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "batterystats-ha"
+    blocked_thread_tid: 676
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6007,7 +6790,10 @@
     waiter_count: 0
     blocking_thread_name: "StorageManagerService"
     blocked_thread_name: "android.fg"
+    blocked_thread_tid: 660
+    blocking_thread_tid: 743
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6034,7 +6820,10 @@
     waiter_count: 0
     blocking_thread_name: "StorageManagerService"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 743
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -6076,7 +6865,10 @@
     waiter_count: 1
     blocking_thread_name: "StorageManagerService"
     blocked_thread_name: "binder:642_1"
+    blocked_thread_tid: 657
+    blocking_thread_tid: 743
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     binder_reply_ts: 1739927686578
@@ -6115,7 +6907,10 @@
     waiter_count: 2
     blocking_thread_name: "StorageManagerService"
     blocked_thread_name: "binder:642_E"
+    blocked_thread_tid: 1934
+    blocking_thread_tid: 743
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     binder_reply_ts: 1739931677940
@@ -6134,7 +6929,10 @@
     waiter_count: 1
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "StorageManagerS"
+    blocked_thread_tid: 743
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6161,7 +6959,10 @@
     waiter_count: 2
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
   }
@@ -6178,7 +6979,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "PowerManagerSer"
+    blocked_thread_tid: 687
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6200,7 +7004,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6227,7 +7034,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "PackageManager"
+    blocked_thread_tid: 693
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6254,7 +7064,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6281,7 +7094,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6308,7 +7124,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "binder:642_1"
+    blocked_thread_tid: 657
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6335,7 +7154,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6352,7 +7174,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6369,7 +7194,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6386,7 +7214,10 @@
     waiter_count: 1
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "binder:642_13"
+    blocked_thread_tid: 2721
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     binder_reply_ts: 1739956996641
@@ -6415,7 +7246,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6432,7 +7266,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6449,7 +7286,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6466,7 +7306,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6483,7 +7326,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6500,7 +7346,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6517,7 +7366,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6534,7 +7386,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6551,7 +7406,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6568,7 +7426,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6585,7 +7446,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -6617,7 +7481,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "batterystats-ha"
+    blocked_thread_tid: 676
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6634,7 +7501,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "batterystats-ha"
+    blocked_thread_tid: 676
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6651,7 +7521,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "PowerManagerSer"
+    blocked_thread_tid: 687
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6668,7 +7541,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "PowerManagerSer"
+    blocked_thread_tid: 687
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -6685,7 +7561,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "fg"
+    blocked_thread_tid: 3516
+    blocking_thread_tid: 3519
     process_name: "com.android.providers.media.module"
+    pid: 3487
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6712,7 +7591,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "binder:642_E"
+    blocked_thread_tid: 1934
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     binder_reply_ts: 1739981897430
@@ -6741,7 +7623,10 @@
     waiter_count: 1
     blocking_thread_name: "main"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -6778,7 +7663,10 @@
     waiter_count: 2
     blocking_thread_name: "main"
     blocked_thread_name: "StorageManagerS"
+    blocked_thread_tid: 743
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -6800,7 +7688,10 @@
     waiter_count: 3
     blocking_thread_name: "main"
     blocked_thread_name: "binder:642_13"
+    blocked_thread_tid: 2721
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     binder_reply_ts: 1739982622780
@@ -6819,7 +7710,10 @@
     waiter_count: 3
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -6841,7 +7735,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "fg"
+    blocked_thread_tid: 3516
+    blocking_thread_tid: 3487
     process_name: "com.android.providers.media.module"
+    pid: 3487
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -6868,7 +7765,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "fg"
+    blocked_thread_tid: 3516
+    blocking_thread_tid: 3519
     process_name: "com.android.providers.media.module"
+    pid: 3487
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6895,7 +7795,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_13"
     blocked_thread_name: "system_server"
+    blocked_thread_tid: 642
+    blocking_thread_tid: 2721
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -6922,7 +7825,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "fg"
+    blocked_thread_tid: 3516
+    blocking_thread_tid: 3487
     process_name: "com.android.providers.media.module"
+    pid: 3487
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -6949,7 +7855,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "fg"
+    blocked_thread_tid: 3516
+    blocking_thread_tid: 3519
     process_name: "com.android.providers.media.module"
+    pid: 3487
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -6976,7 +7885,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "binder:642_1"
+    blocked_thread_tid: 657
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     binder_reply_ts: 1740012085111
@@ -7010,7 +7922,10 @@
     waiter_count: 0
     blocking_thread_name: "android.bg"
     blocked_thread_name: "fg"
+    blocked_thread_tid: 3516
+    blocking_thread_tid: 3519
     process_name: "com.android.providers.media.module"
+    pid: 3487
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7037,7 +7952,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "binder:642_13"
+    blocked_thread_tid: 2721
+    blocking_thread_tid: 642
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     binder_reply_ts: 1740024094690
@@ -7066,7 +7984,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "StorageManagerS"
+    blocked_thread_tid: 743
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7098,7 +8019,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -7115,7 +8039,10 @@
     waiter_count: 1
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7137,7 +8064,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -7154,7 +8084,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -7171,7 +8104,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_E"
     blocked_thread_name: "tworkPolicy.uid"
+    blocked_thread_tid: 1193
+    blocking_thread_tid: 1934
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
   }
@@ -7188,7 +8124,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "fg"
+    blocked_thread_tid: 3516
+    blocking_thread_tid: 3487
     process_name: "com.android.providers.media.module"
+    pid: 3487
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -7215,7 +8154,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7242,7 +8184,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7269,7 +8214,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7296,7 +8244,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7323,7 +8274,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7350,7 +8304,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7377,7 +8334,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7404,7 +8364,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7431,7 +8394,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7458,7 +8424,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7485,7 +8454,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7512,7 +8484,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7539,7 +8514,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7566,7 +8544,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7593,7 +8574,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7620,7 +8604,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7647,7 +8634,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7674,7 +8664,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7701,7 +8694,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7728,7 +8724,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7755,7 +8754,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7782,7 +8784,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7809,7 +8814,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7836,7 +8844,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7863,7 +8874,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7890,7 +8904,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7917,7 +8934,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7944,7 +8964,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_1"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 657
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -7971,7 +8994,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -7998,7 +9024,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8025,7 +9054,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8052,7 +9084,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8079,7 +9114,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8106,7 +9144,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8133,7 +9174,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8160,7 +9204,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8187,7 +9234,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8214,7 +9264,10 @@
     waiter_count: 0
     blocking_thread_name: "android.ui"
     blocked_thread_name: "android.bg"
+    blocked_thread_tid: 670
+    blocking_thread_tid: 661
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8246,7 +9299,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8273,7 +9329,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "ActivityManager"
+    blocked_thread_tid: 671
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8300,7 +9359,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8327,7 +9389,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8354,7 +9419,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8381,7 +9449,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8408,7 +9479,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8435,7 +9509,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8462,7 +9539,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8489,7 +9569,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8516,7 +9599,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8543,7 +9629,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8570,7 +9659,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8597,7 +9689,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8624,7 +9719,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8651,7 +9749,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8678,7 +9779,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8705,7 +9809,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8732,7 +9839,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8759,7 +9869,10 @@
     waiter_count: 0
     blocking_thread_name: "binder:642_8"
     blocked_thread_name: "android.ui"
+    blocked_thread_tid: 661
+    blocking_thread_tid: 1548
     process_name: "system_server"
+    pid: 642
     is_blocked_thread_main: false
     is_blocking_thread_main: false
     thread_states {
@@ -8786,7 +9899,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8813,7 +9929,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8840,7 +9959,10 @@
     waiter_count: 0
     blocking_thread_name: "sAsyncHandlerThread"
     blocked_thread_name: "d.process.media"
+    blocked_thread_tid: 2003
+    blocking_thread_tid: 2128
     process_name: "android.process.media"
+    pid: 2003
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8867,7 +9989,10 @@
     waiter_count: 0
     blocking_thread_name: "SysUiBg"
     blocked_thread_name: "ndroid.systemui"
+    blocked_thread_tid: 1253
+    blocking_thread_tid: 1331
     process_name: "com.android.systemui"
+    pid: 1253
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8894,7 +10019,10 @@
     waiter_count: 0
     blocking_thread_name: "SysUiBg"
     blocked_thread_name: "ndroid.systemui"
+    blocked_thread_tid: 1253
+    blocking_thread_tid: 1331
     process_name: "com.android.systemui"
+    pid: 1253
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8921,7 +10049,10 @@
     waiter_count: 0
     blocking_thread_name: "SysUiBg"
     blocked_thread_name: "ndroid.systemui"
+    blocked_thread_tid: 1253
+    blocking_thread_tid: 1331
     process_name: "com.android.systemui"
+    pid: 1253
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8948,7 +10079,10 @@
     waiter_count: 0
     blocking_thread_name: "SysUiBg"
     blocked_thread_name: "ndroid.systemui"
+    blocked_thread_tid: 1253
+    blocking_thread_tid: 1331
     process_name: "com.android.systemui"
+    pid: 1253
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -8975,7 +10109,10 @@
     waiter_count: 0
     blocking_thread_name: "SysUiBg"
     blocked_thread_name: "ndroid.systemui"
+    blocked_thread_tid: 1253
+    blocking_thread_tid: 1331
     process_name: "com.android.systemui"
+    pid: 1253
     is_blocked_thread_main: true
     is_blocking_thread_main: false
     thread_states {
@@ -9002,7 +10139,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "SysUiBg"
+    blocked_thread_tid: 1331
+    blocking_thread_tid: 1253
     process_name: "com.android.systemui"
+    pid: 1253
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -9024,7 +10164,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "plugin"
+    blocked_thread_tid: 1341
+    blocking_thread_tid: 1253
     process_name: "com.android.systemui"
+    pid: 1253
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
@@ -9051,7 +10194,10 @@
     waiter_count: 0
     blocking_thread_name: "main"
     blocked_thread_name: "RenderThread"
+    blocked_thread_tid: 1436
+    blocking_thread_tid: 1253
     process_name: "com.android.systemui"
+    pid: 1253
     is_blocked_thread_main: false
     is_blocking_thread_main: true
     thread_states {
diff --git a/test/trace_processor/diff_tests/android/android_network_activity.out b/test/trace_processor/diff_tests/android/android_network_activity.out
new file mode 100644
index 0000000..14418e4
--- /dev/null
+++ b/test/trace_processor/diff_tests/android/android_network_activity.out
@@ -0,0 +1,4 @@
+"package_name","ts","dur","packet_count","packet_length"
+"uid=123",1000,1010,2,100
+"uid=123",3000,2500,4,200
+"uid=456",1005,1010,2,300
diff --git a/test/trace_processor/diff_tests/android/tests.py b/test/trace_processor/diff_tests/android/tests.py
index cec98ae..84bafc1 100644
--- a/test/trace_processor/diff_tests/android/tests.py
+++ b/test/trace_processor/diff_tests/android/tests.py
@@ -159,6 +159,109 @@
         """,
         out=Path('android_battery_stats_event_slices.out'))
 
+  def test_android_battery_stats_counters(self):
+    return DiffTestBlueprint(
+        trace=TextProto(r"""
+        packet {
+          ftrace_events {
+            cpu: 1
+            event {
+              timestamp: 1000
+              pid: 1
+              print {
+                buf: "C|1000|battery_stats.data_conn|13\n"
+              }
+            }
+            event {
+              timestamp: 4000
+              pid: 1
+              print {
+                buf: "C|1000|battery_stats.data_conn|20\n"
+              }
+            }
+            event {
+              timestamp: 1000
+              pid: 1
+              print {
+                buf: "C|1000|battery_stats.audio|1\n"
+              }
+            }
+          }
+        }
+        """),
+        query="""
+        SELECT IMPORT('android.battery_stats');
+        SELECT * FROM android_battery_stats_state
+        ORDER BY ts, track_name;
+        """,
+        out=Path('android_battery_stats_state.out'))
+
+  def test_android_network_activity(self):
+    # The following should have three activity regions:
+    # * uid=123 from 1000 to 2010 (note: end is max(ts)+idle_ns)
+    # * uid=456 from 1005 to 2015 (note: doesn't group with above due to name)
+    # * uid=123 from 3000 to 5500 (note: gap between 1010 to 3000 > idle_ns)
+    # Note: packet_timestamps are delta encoded from the base timestamp.
+    return DiffTestBlueprint(
+        trace=TextProto(r"""
+        packet {
+          timestamp: 0
+          network_packet_bundle {
+            ctx {
+              direction: DIR_EGRESS
+              interface: "wlan"
+              uid: 123
+            }
+            packet_timestamps: [
+              1000, 1010,
+              3000, 3050, 4000, 4500
+            ],
+            packet_lengths: [
+              50, 50,
+              50, 50, 50, 50
+            ],
+          }
+        }
+        packet {
+          timestamp: 0
+          network_packet_bundle {
+            ctx {
+              direction: DIR_EGRESS
+              interface: "wlan"
+              uid: 456
+            }
+            packet_timestamps: [1005, 1015]
+            packet_lengths: [100, 200]
+          }
+        }
+        packet {
+          timestamp: 0
+          network_packet_bundle {
+            ctx {
+              direction: DIR_INGRESS
+              interface: "loopback"
+              uid: 123
+            }
+            packet_timestamps: [6000]
+            packet_lengths: [100]
+          }
+        }
+        """),
+        query="""
+        SELECT RUN_METRIC(
+          'android/network_activity_template.sql',
+          'view_name', 'android_network_activity',
+          'group_by',  'package_name',
+          'filter',    'iface = "wlan"',
+          'idle_ns',   '1000',
+          'quant_ns',  '100'
+        );
+
+        SELECT * FROM android_network_activity
+        ORDER BY package_name, ts;
+        """,
+        out=Path('android_network_activity.out'))
+
   def test_binder_sync_binder_metrics(self):
     return DiffTestBlueprint(
         trace=DataPath('android_binder_metric_trace.atr'),
diff --git a/ui/src/common/query_result.ts b/ui/src/common/query_result.ts
index e8d482d..90fb8f4 100644
--- a/ui/src/common/query_result.ts
+++ b/ui/src/common/query_result.ts
@@ -159,7 +159,7 @@
 
 // One row extracted from an SQL result:
 export interface Row {
-  [key: string]: ColumnType;
+  [key: string]: ColumnType|undefined;
 }
 
 // The methods that any iterator has to implement.
diff --git a/ui/src/common/recordingV2/recording_config_utils.ts b/ui/src/common/recordingV2/recording_config_utils.ts
index 2840b3c..d02da5a 100644
--- a/ui/src/common/recordingV2/recording_config_utils.ts
+++ b/ui/src/common/recordingV2/recording_config_utils.ts
@@ -79,9 +79,8 @@
 
 export function genTraceConfig(
     uiCfg: RecordConfig, targetInfo: TargetInfo): TraceConfig {
-  const androidApiLevel = (targetInfo.targetType === 'ANDROID') ?
-      targetInfo.androidApiLevel :
-      undefined;
+  const isAndroid = targetInfo.targetType === 'ANDROID';
+  const androidApiLevel = isAndroid ? targetInfo.androidApiLevel : undefined;
   const protoCfg = new TraceConfig();
   protoCfg.durationMs = uiCfg.durationMs;
 
@@ -96,8 +95,8 @@
 
   protoCfg.buffers.push(new BufferConfig());
   protoCfg.buffers.push(new BufferConfig());
-  protoCfg.buffers[1].sizeKb = slowBufSizeKb;
   protoCfg.buffers[0].sizeKb = fastBufSizeKb;
+  protoCfg.buffers[1].sizeKb = slowBufSizeKb;
 
   if (uiCfg.mode === 'STOP_WHEN_FULL') {
     protoCfg.buffers[0].fillPolicy = BufferConfig.FillPolicy.DISCARD;
@@ -131,6 +130,14 @@
   let procThreadAssociationFtrace = false;
   let trackInitialOomScore = false;
 
+  if (isAndroid) {
+    const ds = new TraceConfig.DataSource();
+    ds.config = new DataSourceConfig();
+    ds.config.targetBuffer = 1;
+    ds.config.name = 'android.packages_list';
+    protoCfg.dataSources.push(ds);
+  }
+
   if (uiCfg.cpuSched) {
     procThreadAssociationPolling = true;
     procThreadAssociationFtrace = true;
diff --git a/ui/src/controller/record_controller_jsdomtest.ts b/ui/src/controller/record_controller_jsdomtest.ts
index f160290..bc7c15b 100644
--- a/ui/src/controller/record_controller_jsdomtest.ts
+++ b/ui/src/controller/record_controller_jsdomtest.ts
@@ -32,7 +32,8 @@
   const result =
       TraceConfig.decode(genConfigProto(config, {os: 'Q', name: 'Android Q'}));
   const sources = assertExists(result.dataSources);
-  const srcConfig = assertExists(sources[0].config);
+  // TODO(hjd): This is all bad. Should just match the whole config.
+  const srcConfig = assertExists(sources[1].config);
   const ftraceConfig = assertExists(srcConfig.ftraceConfig);
   const ftraceEvents = assertExists(ftraceConfig.ftraceEvents);
   expect(ftraceEvents.includes('raw_syscalls/sys_enter')).toBe(true);
@@ -45,7 +46,7 @@
   const result =
       TraceConfig.decode(genConfigProto(config, {os: 'S', name: 'Android S'}));
   const sources = assertExists(result.dataSources);
-  const srcConfig = assertExists(sources[1].config);
+  const srcConfig = assertExists(sources[2].config);
   const ftraceConfig = assertExists(srcConfig.ftraceConfig);
   const ftraceEvents = assertExists(ftraceConfig.ftraceEvents);
   expect(ftraceConfig.symbolizeKsyms).toBe(true);
@@ -58,7 +59,7 @@
   const result =
       TraceConfig.decode(genConfigProto(config, {os: 'Q', name: 'Android Q'}));
   const sources = assertExists(result.dataSources);
-  const srcConfig = assertExists(sources[1].config);
+  const srcConfig = assertExists(sources[2].config);
   const ftraceConfig = assertExists(srcConfig.ftraceConfig);
   const ftraceEvents = assertExists(ftraceConfig.ftraceEvents);
   expect(ftraceConfig.symbolizeKsyms).toBe(false);
@@ -72,7 +73,7 @@
   const result =
       TraceConfig.decode(genConfigProto(config, {os: 'Q', name: 'Android Q'}));
   const sources = assertExists(result.dataSources);
-  const srcConfig = assertExists(sources[0].config);
+  const srcConfig = assertExists(sources[1].config);
   const ftraceConfig = assertExists(srcConfig.ftraceConfig);
   const ftraceEvents = assertExists(ftraceConfig.ftraceEvents);
   expect(ftraceConfig.symbolizeKsyms).toBe(true);
@@ -86,7 +87,7 @@
   const result =
       TraceConfig.decode(genConfigProto(config, {os: 'Q', name: 'Android Q'}));
   const sources = assertExists(result.dataSources);
-  const srcConfig = assertExists(sources[0].config);
+  const srcConfig = assertExists(sources[1].config);
   const ftraceConfig = assertExists(srcConfig.ftraceConfig);
   const ftraceEvents = assertExists(ftraceConfig.ftraceEvents);
   expect(ftraceConfig.symbolizeKsyms).toBe(false);
diff --git a/ui/src/controller/track_decider.ts b/ui/src/controller/track_decider.ts
index 4882400..aadb889 100644
--- a/ui/src/controller/track_decider.ts
+++ b/ui/src/controller/track_decider.ts
@@ -198,14 +198,39 @@
     return 'Unknown';
   }
 
+  async guessCpuSizes(): Promise<Map<number, string>> {
+    const cpuToSize = new Map<number, string>();
+    await this.engine.query(`
+      SELECT IMPORT('common.cpus');
+    `);
+    const result = await this.engine.query(`
+      SELECT cpu, GUESS_CPU_SIZE(cpu) as size FROM cpu_counter_track;
+    `);
+
+    const it = result.iter({
+      cpu: NUM,
+      size: STR,
+    });
+
+    for (; it.valid(); it.next()) {
+      cpuToSize.set(it.cpu, it.size);
+    }
+
+    return cpuToSize;
+  }
+
   async addCpuSchedulingTracks(): Promise<void> {
     const cpus = await this.engine.getCpus();
+    const cpuToSize = await this.guessCpuSizes();
+
     for (const cpu of cpus) {
+      const size = cpuToSize.get(cpu);
+      const name = size === undefined ? `Cpu ${cpu}` : `Cpu ${cpu} (${size})`;
       this.tracksToAdd.push({
         engineId: this.engineId,
         kind: CPU_SLICE_TRACK_KIND,
         trackSortKey: PrimaryTrackSortKey.ORDINARY_TRACK,
-        name: `Cpu ${cpu}`,
+        name,
         trackGroup: SCROLLING_TRACK_GROUP,
         config: {
           cpu,
diff --git a/ui/src/frontend/clipboard.ts b/ui/src/frontend/clipboard.ts
index c7a27d7..38d0099 100644
--- a/ui/src/frontend/clipboard.ts
+++ b/ui/src/frontend/clipboard.ts
@@ -43,7 +43,7 @@
     const line = [];
     for (const col of resp.columns) {
       const value = row[col];
-      line.push(value === null ? 'NULL' : value.toString());
+      line.push(value === null ? 'NULL' : `${value}`);
     }
     lines.push(line);
   }
diff --git a/ui/src/frontend/query_table.ts b/ui/src/frontend/query_table.ts
index a58d1d6..a77c0ef 100644
--- a/ui/src/frontend/query_table.ts
+++ b/ui/src/frontend/query_table.ts
@@ -18,9 +18,7 @@
 
 import {Actions} from '../common/actions';
 import {QueryResponse} from '../common/queries';
-import {ColumnType, Row} from '../common/query_result';
-import {TPTime, tpTimeFromNanos} from '../common/time';
-import {TPDuration} from '../common/time';
+import {Row} from '../common/query_result';
 
 import {Anchor} from './anchor';
 import {copyToClipboard, queryResponseToClipboard} from './clipboard';
@@ -28,10 +26,7 @@
 import {globals} from './globals';
 import {Panel} from './panel';
 import {Router} from './router';
-import {
-  focusHorizontalRange,
-  verticalScrollToTrack,
-} from './scroll_helper';
+import {reveal} from './scroll_helper';
 import {Button} from './widgets/button';
 
 interface QueryTableRowAttrs {
@@ -39,116 +34,126 @@
   columns: string[];
 }
 
-// Convert column value to number if it's a bigint or a number, otherwise throw
-function colToTimestamp(colValue: ColumnType): TPTime {
-  if (typeof colValue === 'bigint') {
-    return colValue;
-  } else if (typeof colValue === 'number') {
-    return tpTimeFromNanos(colValue);
+type Numeric = bigint|number;
+
+function isIntegral(x: Row[string]): x is Numeric {
+  return typeof x === 'bigint' ||
+      (typeof x === 'number' && Number.isInteger(x));
+}
+
+function hasTs(row: Row): row is Row&{ts: Numeric} {
+  return ('ts' in row && isIntegral(row.ts));
+}
+
+function hasDur(row: Row): row is Row&{dur: Numeric} {
+  return ('dur' in row && isIntegral(row.dur));
+}
+
+function hasTrackId(row: Row): row is Row&{track_id: Numeric} {
+  return ('track_id' in row && isIntegral(row.track_id));
+}
+
+function hasType(row: Row): row is Row&{type: string} {
+  return ('type' in row && typeof row.type === 'string');
+}
+
+function hasId(row: Row): row is Row&{id: Numeric} {
+  return ('id' in row && isIntegral(row.id));
+}
+
+function hasSliceId(row: Row): row is Row&{slice_id: Numeric} {
+  return ('slice_id' in row && isIntegral(row.slice_id));
+}
+
+// These are properties that a row should have in order to be "slice-like",
+// insofar as it represents a time range and a track id which can be revealed
+// or zoomed-into on the timeline.
+type Sliceish = {
+  ts: Numeric,
+  dur: Numeric,
+  track_id: Numeric
+};
+
+export function isSliceish(row: Row): row is Row&Sliceish {
+  return hasTs(row) && hasDur(row) && hasTrackId(row);
+}
+
+// Attempts to extract a slice ID from a row, or undefined if none can be found
+export function getSliceId(row: Row): number|undefined {
+  if (hasType(row) && row.type.includes('slice')) {
+    if (hasId(row)) {
+      return Number(row.id);
+    }
   } else {
-    throw Error('Value is not a number or a bigint');
+    if (hasSliceId(row)) {
+      return Number(row.slice_id);
+    }
   }
-}
-
-function colToNumber(colValue: ColumnType): number {
-  if (typeof colValue === 'bigint') {
-    return Number(colValue);
-  } else if (typeof colValue === 'number') {
-    return colValue;
-  } else {
-    throw Error('Value is not a number or a bigint');
-  }
-}
-
-function colToDuration(colValue: ColumnType): TPDuration {
-  return colToTimestamp(colValue);
-}
-
-function clampDurationLower(
-    dur: TPDuration, lowerClamp: TPDuration): TPDuration {
-  return BigintMath.max(dur, lowerClamp);
+  return undefined;
 }
 
 class QueryTableRow implements m.ClassComponent<QueryTableRowAttrs> {
-  static columnsContainsSliceLocation(columns: string[]) {
-    const requiredColumns = ['ts', 'dur', 'track_id'];
-    for (const col of requiredColumns) {
-      if (!columns.includes(col)) return false;
-    }
-    return true;
-  }
-
-  static rowOnClickHandler(
-      event: Event, row: Row, nextTab: 'CurrentSelection'|'QueryResults') {
-    // TODO(dproy): Make click handler work from analyze page.
-    if (Router.parseUrl(window.location.href).page !== '/viewer') return;
-    // If the click bubbles up to the pan and zoom handler that will deselect
-    // the slice.
-    event.stopPropagation();
-
-    const sliceStart = colToTimestamp(row.ts);
-    // row.dur can be negative. Clamp to 1ns.
-    const sliceDur = clampDurationLower(colToDuration(row.dur), 1n);
-    const sliceEnd = sliceStart + sliceDur;
-    const trackId = colToNumber(row.track_id);
-    const uiTrackId = globals.state.uiTrackIdByTraceTrackId[trackId];
-    if (uiTrackId === undefined) return;
-    verticalScrollToTrack(uiTrackId, true);
-    focusHorizontalRange(sliceStart, sliceEnd);
-
-    let sliceId: number|undefined;
-    if (row.type?.toString().includes('slice')) {
-      sliceId = colToNumber(row.id);
-    } else {
-      sliceId = colToNumber(row.slice_id);
-    }
-    if (sliceId !== undefined) {
-      globals.makeSelection(
-          Actions.selectChromeSlice(
-              {id: sliceId, trackId: uiTrackId, table: 'slice'}),
-          nextTab === 'QueryResults' ? globals.state.currentTab :
-                                       'current_selection');
-    }
-  }
-
   view(vnode: m.Vnode<QueryTableRowAttrs>) {
-    const cells = [];
     const {row, columns} = vnode.attrs;
-    for (const col of columns) {
-      const value = row[col];
-      if (value instanceof Uint8Array) {
-        cells.push(
-            m('td',
-              m(Anchor,
-                {
-                  onclick: () => downloadData(`${col}.blob`, value),
-                },
-                `Blob (${value.length} bytes)`)));
-      } else if (typeof value === 'bigint') {
-        cells.push(m('td', value.toString()));
-      } else {
-        cells.push(m('td', value));
+    const cells = columns.map((col) => this.renderCell(col, row[col]));
+
+    // TODO(dproy): Make click handler work from analyze page.
+    if (Router.parseUrl(window.location.href).page === '/viewer' &&
+        isSliceish(row)) {
+      return m(
+          'tr',
+          {
+            onclick: () => this.highlightSlice(row, globals.state.currentTab),
+            // TODO(altimin): Consider improving the logic here (e.g. delay?) to
+            // account for cases when dblclick fires late.
+            ondblclick: () => this.highlightSlice(row),
+            clickable: true,
+          },
+          cells);
+    } else {
+      return m('tr', cells);
+    }
+  }
+
+  private renderCell(name: string, value: Row[string]) {
+    if (value instanceof Uint8Array) {
+      return m('td', this.renderBlob(name, value));
+    } else {
+      return m('td', `${value}`);
+    }
+  }
+
+  private renderBlob(name: string, value: Uint8Array) {
+    return m(
+        Anchor,
+        {
+          onclick: () => downloadData(`${name}.blob`, value),
+        },
+        `Blob (${value.length} bytes)`);
+  }
+
+  private highlightSlice(row: Row&Sliceish, nextTab?: string) {
+    const trackId = Number(row.track_id);
+    const sliceStart = BigInt(row.ts);
+    // row.dur can be negative. Clamp to 1ns.
+    const sliceDur = BigintMath.max(BigInt(row.dur), 1n);
+    const uiTrackId = globals.state.uiTrackIdByTraceTrackId[trackId];
+    if (uiTrackId !== undefined) {
+      reveal(uiTrackId, sliceStart, sliceStart + sliceDur, true);
+      const sliceId = getSliceId(row);
+      if (sliceId !== undefined) {
+        this.selectSlice(sliceId, uiTrackId, nextTab);
       }
     }
-    const containsSliceLocation =
-        QueryTableRow.columnsContainsSliceLocation(columns);
-    const maybeOnClick = containsSliceLocation ?
-        (e: Event) => QueryTableRow.rowOnClickHandler(e, row, 'QueryResults') :
-        null;
-    const maybeOnDblClick = containsSliceLocation ?
-        (e: Event) =>
-            QueryTableRow.rowOnClickHandler(e, row, 'CurrentSelection') :
-        null;
-    return m(
-        'tr',
-        {
-          'onclick': maybeOnClick,
-          // TODO(altimin): Consider improving the logic here (e.g. delay?) to
-          // account for cases when dblclick fires late.
-          'ondblclick': maybeOnDblClick,
-          'clickable': containsSliceLocation,
-        },
-        cells);
+  }
+
+  private selectSlice(sliceId: number, uiTrackId: string, nextTab?: string) {
+    const action = Actions.selectChromeSlice({
+      id: sliceId,
+      trackId: uiTrackId,
+      table: 'slice',
+    });
+    globals.makeSelection(action, nextTab);
   }
 }
 
diff --git a/ui/src/frontend/query_table_unittest.ts b/ui/src/frontend/query_table_unittest.ts
new file mode 100644
index 0000000..fc351a6
--- /dev/null
+++ b/ui/src/frontend/query_table_unittest.ts
@@ -0,0 +1,46 @@
+// Copyright (C) 2023 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 {getSliceId, isSliceish} from './query_table';
+
+describe('getSliceId', () => {
+  test('get slice_id if present when no other clues are available', () => {
+    expect(getSliceId({})).toBe(undefined);
+    expect(getSliceId({id: 123})).toBe(undefined);
+    expect(getSliceId({slice_id: 456})).toBe(456);
+    expect(getSliceId({id: 123, slice_id: 456})).toBe(456);
+
+    expect(getSliceId({type: 'foo'})).toBe(undefined);
+    expect(getSliceId({type: 'foo', id: 123})).toBe(undefined);
+    expect(getSliceId({type: 'foo', slice_id: 456})).toBe(456);
+    expect(getSliceId({type: 'foo', id: 123, slice_id: 456})).toBe(456);
+  });
+
+  test('get id if present when row looks like a slice', () => {
+    expect(getSliceId({type: 'slice'})).toBe(undefined);
+    expect(getSliceId({type: 'slice', id: 123})).toBe(123);
+    expect(getSliceId({type: 'slice', slice_id: 456})).toBe(undefined);
+    expect(getSliceId({type: 'slice', id: 123, slice_id: 456})).toBe(123);
+  });
+});
+
+test('isSliceish', () => {
+  expect(isSliceish({})).toBeFalsy();
+  expect(isSliceish({ts: 123, dur: 456})).toBeFalsy();
+  expect(isSliceish({ts: 123, dur: 456, track_id: 798})).toBeTruthy();
+  expect(isSliceish({ts: 123n, dur: 456n})).toBeFalsy();
+  expect(isSliceish({ts: 123n, dur: 456n, track_id: 798n})).toBeTruthy();
+  expect(isSliceish({ts: 123.4, dur: 456.7, track_id: 798.9})).toBeFalsy();
+  expect(isSliceish({ts: '123', dur: '456', track_id: '789'})).toBeFalsy();
+});
diff --git a/ui/src/frontend/scroll_helper.ts b/ui/src/frontend/scroll_helper.ts
index f177a65..671fd4b 100644
--- a/ui/src/frontend/scroll_helper.ts
+++ b/ui/src/frontend/scroll_helper.ts
@@ -153,3 +153,10 @@
   }
   horizontalScrollToTs(ts);
 }
+
+// Scroll vertically and horizontally to a track and time range
+export function reveal(
+    trackId: string|number, start: TPTime, end: TPTime, openGroup = false) {
+  verticalScrollToTrack(trackId, openGroup);
+  focusHorizontalRange(start, end);
+}
diff --git a/ui/src/frontend/widgets/tree.ts b/ui/src/frontend/widgets/tree.ts
index b362391..e797343 100644
--- a/ui/src/frontend/widgets/tree.ts
+++ b/ui/src/frontend/widgets/tree.ts
@@ -1,7 +1,10 @@
 import m from 'mithril';
+
 import {classNames} from '../classnames';
 import {globals} from '../globals';
+
 import {Button} from './button';
+import {Spinner} from './spinner';
 import {hasChildren} from './utils';
 
 export enum TreeLayout {
@@ -50,14 +53,14 @@
 interface TreeNodeAttrs {
   // Content to display in the left hand column.
   // If omitted, this side will be blank.
-  left?: m.Child;
+  left?: m.Children;
   // Content to display in the right hand column.
   // If omitted, this side will be left blank.
-  right?: m.Child;
+  right?: m.Children;
   // Content to display in the right hand column when the node is collapsed.
   // If omitted, the value of `right` shall be shown when collapsed instead.
   // If the node has no children, this value is never shown.
-  summary?: m.Child;
+  summary?: m.Children;
   // Whether this node is collapsed or not.
   // If omitted, collapsed state 'uncontrolled' - i.e. controlled internally.
   collapsed?: boolean;
@@ -92,7 +95,7 @@
 
   private renderRight(vnode: m.CVnode<TreeNodeAttrs>) {
     const {attrs: {right, summary}} = vnode;
-    if (hasChildren(vnode) && this.collapsed) {
+    if (hasChildren(vnode) && this.isCollapsed(vnode)) {
       return m('.pf-tree-right', summary ?? right);
     } else {
       return m('.pf-tree-right', right);
@@ -146,3 +149,70 @@
   }
   return m(Tree, children);
 }
+
+interface LazyTreeNodeAttrs {
+  // Same as TreeNode (see above).
+  left?: m.Children;
+  // Same as TreeNode (see above).
+  right?: m.Children;
+  // Same as TreeNode (see above).
+  summary?: m.Children;
+  // A callback to be called when the TreeNode is expanded, in order to fetch
+  // child nodes.
+  // The callback must return a promise to a function which returns m.Children.
+  // The reason the promise must return a function rather than the actual
+  // children is to avoid storing vnodes between render cycles, which is a bug
+  // in Mithril.
+  fetchData: () => Promise<() => m.Children>;
+  // Whether to keep child nodes in memory after the node has been collapsed.
+  // Defaults to true
+  hoardData?: boolean;
+}
+
+// This component is a TreeNode which only loads child nodes when it's expanded.
+// This allows us to represent huge trees without having to load all the data
+// up front, and even allows us to represent infinite or recursive trees.
+export class LazyTreeNode implements m.ClassComponent<LazyTreeNodeAttrs> {
+  private collapsed: boolean = true;
+  private renderChildren = this.renderSpinner;
+
+  private renderSpinner(): m.Children {
+    return m(TreeNode, {left: m(Spinner)});
+  }
+
+  view({attrs}: m.CVnode<LazyTreeNodeAttrs>): m.Children {
+    const {
+      left,
+      right,
+      summary,
+      fetchData,
+      hoardData = true,
+    } = attrs;
+
+    return m(
+        TreeNode,
+        {
+          left,
+          right,
+          summary,
+          collapsed: this.collapsed,
+          onCollapseChanged: (collapsed) => {
+            if (collapsed) {
+              if (!hoardData) {
+                this.renderChildren = this.renderSpinner;
+              }
+            } else {
+              fetchData().then((result) => {
+                if (!this.collapsed) {
+                  this.renderChildren = result;
+                  globals.rafScheduler.scheduleFullRedraw();
+                }
+              });
+            }
+            this.collapsed = collapsed;
+            globals.rafScheduler.scheduleFullRedraw();
+          },
+        },
+        this.renderChildren());
+  }
+}
diff --git a/ui/src/frontend/widgets_page.ts b/ui/src/frontend/widgets_page.ts
index 5d550e2..989be89 100644
--- a/ui/src/frontend/widgets_page.ts
+++ b/ui/src/frontend/widgets_page.ts
@@ -34,7 +34,7 @@
 import {Spinner} from './widgets/spinner';
 import {Switch} from './widgets/switch';
 import {TextInput} from './widgets/text_input';
-import {Tree, TreeLayout, TreeNode} from './widgets/tree';
+import {LazyTreeNode, Tree, TreeLayout, TreeNode} from './widgets/tree';
 
 const options: {[key: string]: boolean} = {
   foobar: false,
@@ -243,6 +243,18 @@
   }
 }
 
+function recursiveLazyTreeNode(
+    left: string, summary: string, hoardData: boolean): m.Children {
+  return m(LazyTreeNode, {
+    left,
+    summary,
+    hoardData,
+    fetchData: async () => {
+      await new Promise((r) => setTimeout(r, 200));
+      return () => recursiveLazyTreeNode(left, summary, hoardData);
+    },
+  });
+}
 
 export const WidgetsPage = createPage({
   view() {
@@ -563,6 +575,8 @@
                 left: 'Process',
                 right: m(Anchor, {text: '/bin/foo[789]', icon: 'open_in_new'}),
               }),
+              recursiveLazyTreeNode('Lazy', '(hoarding)', true),
+              recursiveLazyTreeNode('Lazy', '(non-hoarding)', false),
               m(
                   TreeNode,
                   {
diff --git a/ui/src/tracks/debug/add_debug_track_menu.ts b/ui/src/tracks/debug/add_debug_track_menu.ts
index d14bfd8..32bc871 100644
--- a/ui/src/tracks/debug/add_debug_track_menu.ts
+++ b/ui/src/tracks/debug/add_debug_track_menu.ts
@@ -89,7 +89,7 @@
         m(FormLabel,
           {for: 'track_name',
           },
-          'Name'),
+          'Track name'),
         m(TextInput, {
           id: 'track_name',
           onkeydown: (e: KeyboardEvent) => {