1option java_package = "org.android.btsap"; 2option java_outer_classname = "SapApi"; 3 4// 5// SAP Interface to RIL 6// 7// The protocol for the binary wire format to RIL shall consist of 8// the serialized format of MsgHeader. 9// MsgHeader payload field will contain the serialized format of 10// the actual message being sent, as described by the type and id 11// fields. 12// e.g. If type = REQUEST and id == RIL_SIM_SAP_CONNECT, payload 13// will contain the serialized wire format of a 14// RIL_SIM_SAP_CONNECT_REQ message. 15// 16 17// Message Header 18// Each SAP message stream will always be prepended with a MsgHeader 19message MsgHeader { 20 required fixed32 token = 1; // generated dynamically 21 required MsgType type = 2; 22 required MsgId id = 3; 23 required Error error = 4; 24 required bytes payload = 5; 25} 26 27enum MsgType { 28 UNKNOWN = 0; 29 REQUEST = 1; 30 RESPONSE = 2; 31 UNSOL_RESPONSE = 3; 32 } 33 34enum MsgId { 35 UNKNOWN_REQ = 0; 36 37 // 38 // For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_CONNECT, Error: RIL_E_UNUSED, 39 // Message: message RIL_SIM_SAP_CONNECT_REQ 40 // For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_CONNECT, Error:Valid errors, 41 // Message: message RIL_SIM_SAP_CONNECT_RSP 42 // 43 RIL_SIM_SAP_CONNECT = 1; 44 45 // 46 // For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_DISCONNECT, Error: RIL_E_UNUSED, 47 // Message: message RIL_SIM_SAP_DISCONNECT_REQ 48 // For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_DISCONNECT, Error:Valid errors, 49 // Message: message RIL_SIM_SAP_DISCONNECT_RSP 50 // For MsgType: UNSOL_RESPONSE, MsgId: RIL_SIM_SAP_DISCONNECT, Error: RIL_E_UNUSED, 51 // Message: message RIL_SIM_SAP_DISCONNECT_IND 52 // 53 RIL_SIM_SAP_DISCONNECT = 2; 54 55 // 56 // For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_APDU, Error: RIL_E_UNUSED, 57 // Message: message RIL_SIM_SAP_APDU_REQ 58 // For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_APDU, Error:Valid errors, 59 // Message: message RIL_SIM_SAP_APDU_RSP 60 // 61 RIL_SIM_SAP_APDU = 3; 62 63 // 64 // For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_TRANSFER_ATR, Error: RIL_E_UNUSED, 65 // Message: message RIL_SIM_SAP_TRANSFER_ATR_REQ 66 // For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_TRANSFER_ATR, Error:Valid errors, 67 // Message: message RIL_SIM_SAP_TRANSFER_ATR_RSP 68 // 69 RIL_SIM_SAP_TRANSFER_ATR = 4; 70 71 // 72 // For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_POWER, Error: RIL_E_UNUSED, 73 // Message: message RIL_SIM_SAP_POWER_REQ 74 // For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_POWER, Error:Valid errors, 75 // Message: message RIL_SIM_SAP_POWER_RSP 76 // 77 RIL_SIM_SAP_POWER = 5; 78 79 // 80 // For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_RESET_SIM, Error: RIL_E_UNUSED, 81 // Message: message RIL_SIM_SAP_RESET_SIM_REQ 82 // For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_RESET_SIM, Error:Valid errors, 83 // Message: message RIL_SIM_SAP_RESET_SIM_RSP 84 // 85 RIL_SIM_SAP_RESET_SIM = 6; 86 87 // 88 // For MsgType: UNSOL_RESPONSE, MsgId: RIL_SIM_SAP_STATUS, Error: RIL_E_UNUSED, 89 // Message: message RIL_SIM_SAP_STATUS_IND 90 // 91 RIL_SIM_SAP_STATUS = 7; 92 93 // 94 // For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS, Error: RIL_E_UNUSED, 95 // Message: message RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS_REQ 96 // For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS, Error:Valid errors, 97 // Message: message RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS_RSP 98 // 99 RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS = 8; 100 101 // 102 // For MsgType: UNSOL_RESPONSE, MsgId: RIL_SIM_SAP_ERROR_RESP, Error: RIL_E_UNUSED, 103 // Message: message RIL_SIM_SAP_ERROR_RSP 104 // 105 RIL_SIM_SAP_ERROR_RESP = 9; 106 107 // 108 // For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_SET_TRANSFER_PROTOCOL, Error: RIL_E_UNUSED, 109 // Message: message RIL_SIM_SAP_SET_TRANSFER_PROTOCOL_REQ 110 // For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_SET_TRANSFER_PROTOCOL, Error:Valid errors, 111 // Message: message RIL_SIM_SAP_SET_TRANSFER_PROTOCOL_RSP 112 // 113 RIL_SIM_SAP_SET_TRANSFER_PROTOCOL = 10; 114 } 115 116 enum Error { 117 RIL_E_SUCCESS = 0; 118 RIL_E_RADIO_NOT_AVAILABLE = 1; 119 RIL_E_GENERIC_FAILURE = 2; 120 RIL_E_REQUEST_NOT_SUPPORTED = 3; 121 RIL_E_CANCELLED = 4; 122 RIL_E_INVALID_PARAMETER = 5; 123 RIL_E_UNUSED = 6; 124 } 125 126// SAP 1.1 spec 5.1.1 127message RIL_SIM_SAP_CONNECT_REQ { 128 required int32 max_message_size = 1; 129} 130 131// SAP 1.1 spec 5.1.2 132message RIL_SIM_SAP_CONNECT_RSP { 133 enum Response { 134 RIL_E_SUCCESS = 0; 135 RIL_E_SAP_CONNECT_FAILURE = 1; 136 RIL_E_SAP_MSG_SIZE_TOO_LARGE = 2; 137 RIL_E_SAP_MSG_SIZE_TOO_SMALL = 3; 138 RIL_E_SAP_CONNECT_OK_CALL_ONGOING = 4; 139 } 140 required Response response = 1; 141// must be present for RIL_E_SAP_MSG_SIZE_TOO_LARGE and contain the 142// the suitable message size 143 optional int32 max_message_size = 2; 144} 145 146// SAP 1.1 spec 5.1.3 147message RIL_SIM_SAP_DISCONNECT_REQ { 148 //no params 149} 150 151 152// SAP 1.1 spec 5.1.4 153message RIL_SIM_SAP_DISCONNECT_RSP { 154 //no params 155} 156 157 158// SAP 1.1 spec 5.1.5 159message RIL_SIM_SAP_DISCONNECT_IND { 160 enum DisconnectType { 161 RIL_S_DISCONNECT_TYPE_GRACEFUL = 0; 162 RIL_S_DISCONNECT_TYPE_IMMEDIATE = 1; 163 } 164 required DisconnectType disconnectType = 1; 165} 166 167// SAP 1.1 spec 5.1.6 168message RIL_SIM_SAP_APDU_REQ { //handles both APDU and APDU7816 169 enum Type { 170 RIL_TYPE_APDU = 0; 171 RIL_TYPE_APDU7816 = 1; 172 } 173 required Type type = 1; 174 required bytes command = 2; 175} 176 177// SAP 1.1 spec 5.1.7 178message RIL_SIM_SAP_APDU_RSP { //handles both APDU and APDU7816 179 enum Type { 180 RIL_TYPE_APDU = 0; 181 RIL_TYPE_APDU7816 = 1; 182 } 183 required Type type = 1; 184 enum Response { 185 RIL_E_SUCCESS = 0; 186 RIL_E_GENERIC_FAILURE = 1; 187 RIL_E_SIM_NOT_READY = 2; 188 RIL_E_SIM_ALREADY_POWERED_OFF = 3; 189 RIL_E_SIM_ABSENT = 4; 190 } 191 required Response response = 2; 192 optional bytes apduResponse = 3; 193} 194 195// SAP 1.1 spec 5.1.8 196message RIL_SIM_SAP_TRANSFER_ATR_REQ { 197 // no params 198} 199 200// SAP 1.1 spec 5.1.9 201message RIL_SIM_SAP_TRANSFER_ATR_RSP { 202 enum Response { 203 RIL_E_SUCCESS = 0; 204 RIL_E_GENERIC_FAILURE = 1; 205 RIL_E_SIM_ALREADY_POWERED_OFF = 3; 206 RIL_E_SIM_ALREADY_POWERED_ON = 18; 207 RIL_E_SIM_ABSENT = 4; 208 RIL_E_SIM_DATA_NOT_AVAILABLE = 6; 209 } 210 required Response response = 1; 211 212 optional bytes atr = 2; //must be present on SUCCESS 213} 214 215 216// SAP 1.1 spec 5.1.10 +5.1.12 217message RIL_SIM_SAP_POWER_REQ { 218 required bool state = 1; //true = on, False = off 219} 220 221// SAP 1.1 spec 5.1.11 +5.1.13 222message RIL_SIM_SAP_POWER_RSP { 223 enum Response { 224 RIL_E_SUCCESS = 0; 225 RIL_E_GENERIC_FAILURE = 2; 226 RIL_E_SIM_ABSENT = 11; 227 RIL_E_SIM_ALREADY_POWERED_OFF = 17; 228 RIL_E_SIM_ALREADY_POWERED_ON = 18; 229 } 230 required Response response = 1; 231} 232 233// SAP 1.1 spec 5.1.14 234message RIL_SIM_SAP_RESET_SIM_REQ { 235 // no params 236} 237 238// SAP 1.1 spec 5.1.15 239message RIL_SIM_SAP_RESET_SIM_RSP { 240 enum Response { 241 RIL_E_SUCCESS = 0; 242 RIL_E_GENERIC_FAILURE = 2; 243 RIL_E_SIM_ABSENT = 11; 244 RIL_E_SIM_NOT_READY = 16; 245 RIL_E_SIM_ALREADY_POWERED_OFF = 17; 246 } 247 required Response response = 1; 248} 249 250// SAP 1.1 spec 5.1.16 251message RIL_SIM_SAP_STATUS_IND { 252 enum Status { 253 RIL_SIM_STATUS_UNKNOWN_ERROR = 0; 254 RIL_SIM_STATUS_CARD_RESET = 1; 255 RIL_SIM_STATUS_CARD_NOT_ACCESSIBLE = 2; 256 RIL_SIM_STATUS_CARD_REMOVED = 3; 257 RIL_SIM_STATUS_CARD_INSERTED = 4; 258 RIL_SIM_STATUS_RECOVERED = 5; 259 } 260 required Status statusChange = 1; 261} 262 263// SAP 1.1 spec 5.1.17 264message RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS_REQ { 265 //no params 266 267} 268 269// SAP 1.1 spec 5.1.18 270message RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS_RSP { 271 enum Response { 272 RIL_E_SUCCESS = 0; 273 RIL_E_GENERIC_FAILURE = 2; 274 RIL_E_SIM_DATA_NOT_AVAILABLE = 6; 275 } 276 required Response response = 1; 277 optional int32 CardReaderStatus = 2; 278} 279 280// SAP 1.1 spec 5.1.19 281message RIL_SIM_SAP_ERROR_RSP { 282 //no params 283} 284 285// SAP 1.1 spec 5.1.20 286message RIL_SIM_SAP_SET_TRANSFER_PROTOCOL_REQ { 287 enum Protocol { 288 t0 = 0; 289 t1 = 1; 290 } 291 required Protocol protocol = 1; 292} 293 294// SAP 1.1 spec 5.1.21 295message RIL_SIM_SAP_SET_TRANSFER_PROTOCOL_RSP { 296 enum Response { 297 RIL_E_SUCCESS = 0; 298 RIL_E_GENERIC_FAILURE = 2; 299 RIL_E_SIM_ABSENT = 11; 300 RIL_E_SIM_NOT_READY = 16; 301 RIL_E_SIM_ALREADY_POWERED_OFF = 17; 302 } 303 required Response response = 1; 304} 305