blob: 9d2f29e8ed59f0f565dd614b61a6aa4b1098a743 [file] [log] [blame]
zoey chene9b03412019-11-21 10:59:40 +08001//
2// Copyright (C) 2019 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17syntax = "proto2";
18
19package carrierIdentification;
20
21option java_package = "com.android.providers.telephony";
22option java_outer_classname = "CarrierIdProto";
23
24// A complete list of carriers
25message CarrierList {
26 // A collection of carriers. one entry for one carrier.
27 repeated CarrierId carrier_id = 1;
28 // Version number of current carrier list
29 optional int32 version = 2;
30};
31
32// CarrierId is the unique representation of a carrier in CID table.
33message CarrierId {
34 // [Optional] A unique canonical number designated to a carrier.
35 optional int32 canonical_id = 1;
36
37 // [Optional] A user-friendly carrier name (not localized).
38 optional string carrier_name = 2;
39
40 // [Optional] Carrier attributes to match a carrier. At least one value is required.
41 repeated CarrierAttribute carrier_attribute = 3;
42
43 // [Optional] A unique canonical number to represent its parent carrier. The parent-child
44 // relationship can be used to differentiate a single carrier by different networks,
45 // by prepaid v.s. postpaid or even by 4G v.s. 3G plan.
46 optional int32 parent_canonical_id = 4;
47};
48
49// Attributes used to match a carrier.
50// For each field within this message:
51// - if not set, the attribute is ignored;
52// - if set, the device must have one of the specified values to match.
53// Match is based on AND between any field that is set and OR for values within a repeated field.
54message CarrierAttribute {
55 // [Optional] The MCC and MNC that map to this carrier. At least one value is required.
56 repeated string mccmnc_tuple = 1;
57
58 // [Optional] Prefix of IMSI (International Mobile Subscriber Identity) in
59 // decimal format. Some digits can be replaced with "x" symbols matching any digit.
60 // Sample values: 20404794, 21670xx2xxx.
61 repeated string imsi_prefix_xpattern = 2;
62
63 // [Optional] The Service Provider Name. Read from subscription EF_SPN.
64 // Sample values: C Spire, LeclercMobile
65 repeated string spn = 3;
66
67 // [Optional] PLMN network name. Read from subscription EF_PNN.
68 // Sample values:
69 repeated string plmn = 4;
70
71 // [Optional] Group Identifier Level1 for a GSM phone. Read from subscription EF_GID1.
72 // Sample values: 6D, BAE0000000000000
73 repeated string gid1 = 5;
74
75 // [Optional] Group Identifier Level2 for a GSM phone. Read from subscription EF_GID2.
76 // Sample values: 6D, BAE0000000000000
77 repeated string gid2 = 6;
78
79 // [Optional] The Access Point Name, corresponding to "apn" field returned by
80 // "content://telephony/carriers/preferapn" on device.
81 // Sample values: fast.t-mobile.com, internet
82 repeated string preferred_apn = 7;
83
84 // [Optional] Prefix of Integrated Circuit Card Identifier. Read from subscription EF_ICCID.
85 // Sample values: 894430, 894410
86 repeated string iccid_prefix = 8;
87
88 // [Optional] Carrier Privilege Access Rule in hex string.
89 // Sample values: 61ed377e85d386a8dfee6b864bd85b0bfaa5af88
90 repeated string privilege_access_rule = 9;
91};
92