File: checkin.proto

package info (click to toggle)
chromium 139.0.7258.127-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 6,122,068 kB
  • sloc: cpp: 35,100,771; ansic: 7,163,530; javascript: 4,103,002; python: 1,436,920; asm: 946,517; xml: 746,709; pascal: 187,653; perl: 88,691; sh: 88,436; objc: 79,953; sql: 51,488; cs: 44,583; fortran: 24,137; makefile: 22,147; tcl: 15,277; php: 13,980; yacc: 8,984; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (155 lines) | stat: -rw-r--r-- 6,243 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Request and reply to the "checkin server" devices poll every few hours.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package checkin_proto;

import "android_checkin.proto";

// A concrete name/value pair sent to the device's Gservices database.
message GservicesSetting {
  required bytes name = 1;
  required bytes value = 2;
}

// Devices send this every few hours to tell us how they're doing.
message AndroidCheckinRequest {
  // IMEI (used by GSM phones) is sent and stored as 15 decimal
  // digits; the 15th is a check digit.
  optional string imei = 1;       // IMEI, reported but not logged.

  // MEID (used by CDMA phones) is sent and stored as 14 hexadecimal
  // digits (no check digit).
  optional string meid = 10;      // MEID, reported but not logged.

  // MAC address (used by non-phone devices).  12 hexadecimal digits;
  // no separators (eg "0016E6513AC2", not "00:16:E6:51:3A:C2").
  repeated string mac_addr = 9;   // MAC address, reported but not logged.

  // An array parallel to mac_addr, describing the type of interface.
  // Currently accepted values: "wifi", "ethernet", "bluetooth".  If
  // not present, "wifi" is assumed.
  repeated string mac_addr_type = 19;

  // Serial number (a manufacturer-defined unique hardware
  // identifier).  Alphanumeric, case-insensitive.
  optional string serial_number = 16;

  // Older CDMA networks use an ESN (8 hex digits) instead of an MEID.
  optional string esn = 17;       // ESN, reported but not logged

  optional int64 id = 2;          // Android device ID, not logged
  optional int64 logging_id = 7;  // Pseudonymous logging ID for Sawmill
  optional string digest = 3;     // Digest of device provisioning, not logged.
  optional string locale = 6;     // Current locale in standard (xx_XX) format
  required AndroidCheckinProto checkin = 4;

  // DEPRECATED, see AndroidCheckinProto.requested_group
  optional string desired_build = 5;

  // Blob of data from the Market app to be passed to Market API server
  optional string market_checkin = 8;

  // SID cookies of any google accounts stored on the phone.  Not logged.
  repeated string account_cookie = 11;

  // Time zone.  Not currently logged.
  optional string time_zone = 12;

  // Security token used to validate the checkin request.
  // Required for android IDs issued to Froyo+ devices, not for legacy IDs.
  optional fixed64 security_token = 13;

  // Version of checkin protocol.
  //
  // There are currently two versions:
  //
  // - version field missing: android IDs are assigned based on
  //   hardware identifiers.  unsecured in the sense that you can
  //   "unregister" someone's phone by sending a registration request
  //   with their IMEI/MEID/MAC.
  //
  // - version=2: android IDs are assigned randomly.  The device is
  //   sent a security token that must be included in all future
  //   checkins for that android id.
  //
  // - version=3: same as version 2, but the 'fragment' field is
  //   provided, and the device understands incremental updates to the
  //   gservices table (ie, only returning the keys whose values have
  //   changed.)
  //
  // (version=1 was skipped to avoid confusion with the "missing"
  // version field that is effectively version 1.)
  optional int32 version = 14;

  // OTA certs accepted by device (base-64 SHA-1 of cert files).  Not
  // logged.
  repeated string ota_cert = 15;

  // Honeycomb and newer devices send configuration data with their checkin.
  // optional DeviceConfigurationProto device_configuration = 18;

  // A single CheckinTask on the device may lead to multiple checkin
  // requests if there is too much log data to upload in a single
  // request.  For version 3 and up, this field will be filled in with
  // the number of the request, starting with 0.
  optional int32 fragment = 20;

  // For devices supporting multiple users, the name of the current
  // profile (they all check in independently, just as if they were
  // multiple physical devices).  This may not be set, even if the
  // device is using multiuser.  (checkin.user_number should be set to
  // the ordinal of the user.)
  optional string user_name = 21;

  // For devices supporting multiple user profiles, the serial number
  // for the user checking in.  Not logged.  May not be set, even if
  // the device supportes multiuser.  checkin.user_number is the
  // ordinal of the user (0, 1, 2, ...), which may be reused if users
  // are deleted and re-created.  user_serial_number is never reused
  // (unless the device is wiped).
  optional int32 user_serial_number = 22;

  // NEXT TAG: 23
}

// The response to the device.
message AndroidCheckinResponse {
  required bool stats_ok = 1;    // Whether statistics were recorded properly.
  optional int64 time_msec = 3;  // Time of day from server (Java epoch).
  // repeated AndroidIntentProto intent = 2;

  // Provisioning is sent if the request included an obsolete digest.
  //
  // For version <= 2, 'digest' contains the digest that should be
  // sent back to the server on the next checkin, and 'setting'
  // contains the entire gservices table (which replaces the entire
  // current table on the device).
  //
  // for version >= 3, 'digest' will be absent.  If 'settings_diff'
  // is false, then 'setting' contains the entire table, as in version
  // 2.  If 'settings_diff' is true, then 'delete_setting' contains
  // the keys to delete, and 'setting' contains only keys to be added
  // or for which the value has changed.  All other keys in the
  // current table should be left untouched.  If 'settings_diff' is
  // absent, don't touch the existing gservices table.
  //
  optional string digest = 4;
  optional bool settings_diff = 9;
  repeated string delete_setting = 10;
  repeated GservicesSetting setting = 5;

  optional bool market_ok = 6;   // If Market got the market_checkin data OK.

  optional fixed64 android_id = 7;      // From the request, or newly assigned
  optional fixed64 security_token = 8;  // The associated security token

  optional string version_info = 11;
  // NEXT TAG: 12
}