Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f1b3d46 authored by Adam Pardyl's avatar Adam Pardyl
Browse files

WindowManager ProtoLog feature

This CL implements the on-device part of ProtoLog
- the new logging system for WindowManager.

Design doc: go/windowmanager-log2proto

Change-Id: I2c88c97dabb3465ffc0615b8017b335a494bca59
Bug:
Test: atest FrameworksServicesTests:com.android.server.protolog protologtool-tests
parent eba21f1d
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -244,8 +244,9 @@ java_defaults {
    },

    required: [
        // TODO: remove gps_debug when the build system propagates "required" properly.
        // TODO: remove gps_debug and protolog.conf.json when the build system propagates "required" properly.
        "gps_debug.conf",
	"protolog.conf.json.gz",
    ],
}

+2 −2
Original line number Diff line number Diff line
@@ -30,9 +30,9 @@ cc_library_static {
}

java_library_host {
    name: "windowmanager-log-proto",
    name: "protolog-proto",
    srcs: [
        "android/server/windowmanagerlog.proto"
        "android/server/protolog.proto"
    ],
    proto: {
        type: "full",
+5 −5
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@

syntax = "proto2";

package com.android.server.wm;
package com.android.server.protolog;

option java_multiple_files = true;

@@ -36,16 +36,16 @@ message ProtoLogMessage {
    repeated bool boolean_params = 6 [packed=true];
}

/* represents a log file containing window manager log entries.
   Encoded, it should start with 0x9 0x57 0x49 0x4e 0x44 0x4f 0x4c 0x4f 0x47 (.WINDOLOG), such
/* represents a log file containing ProtoLog log entries.
   Encoded, it should start with 0x9 0x50 0x52 0x4f 0x54 0x4f 0x4c 0x4f 0x47 (.PROTOLOG), such
   that they can be easily identified. */
message WindowManagerLogFileProto {
message ProtoLogFileProto {
    /* constant; MAGIC_NUMBER = (long) MAGIC_NUMBER_H << 32 | MagicNumber.MAGIC_NUMBER_L
       (this is needed because enums have to be 32 bits and there's no nice way to put 64bit
        constants into .proto files. */
    enum MagicNumber {
        INVALID = 0;
        MAGIC_NUMBER_L = 0x444e4957; /* WIND (little-endian ASCII) */
        MAGIC_NUMBER_L = 0x544f5250; /* PROT (little-endian ASCII) */
        MAGIC_NUMBER_H = 0x474f4c4f; /* OLOG (little-endian ASCII) */
    }

+5 −0
Original line number Diff line number Diff line
@@ -133,3 +133,8 @@ prebuilt_etc {
    sub_dir: "permissions",
    src: "com.android.timezone.updater.xml",
}

filegroup {
    name: "services.core.protolog.json",
    srcs: ["services.core.protolog.json"],
}
+15 −0
Original line number Diff line number Diff line
{
  "version": "1.0.0",
  "messages": {
    "485522692": {
      "message": "Test completed successfully: %b %d %o %x %e %g %f %% %s.",
      "level": "ERROR",
      "group": "TEST_GROUP"
    }
  },
  "groups": {
    "TEST_GROUP": {
      "tag": "WindowManagetProtoLogTest"
    }
  }
}
Loading