You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

307 lines
8.9 KiB

syntax = "proto2";
option java_package = "org.android.btsap";
option java_outer_classname = "SapApi";
//
// SAP Interface to RIL
//
// The protocol for the binary wire format to RIL shall consist of
// the serialized format of MsgHeader.
// MsgHeader payload field will contain the serialized format of
// the actual message being sent, as described by the type and id
// fields.
// e.g. If type = REQUEST and id == RIL_SIM_SAP_CONNECT, payload
// will contain the serialized wire format of a
// RIL_SIM_SAP_CONNECT_REQ message.
//
// Message Header
// Each SAP message stream will always be prepended with a MsgHeader
message MsgHeader {
required fixed32 token = 1; // generated dynamically
required MsgType type = 2;
required MsgId id = 3;
required Error error = 4;
required bytes payload = 5;
}
enum MsgType {
UNKNOWN = 0;
REQUEST = 1;
RESPONSE = 2;
UNSOL_RESPONSE = 3;
}
enum MsgId {
UNKNOWN_REQ = 0;
//
// For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_CONNECT, Error: RIL_E_UNUSED,
// Message: message RIL_SIM_SAP_CONNECT_REQ
// For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_CONNECT, Error:Valid errors,
// Message: message RIL_SIM_SAP_CONNECT_RSP
//
RIL_SIM_SAP_CONNECT = 1;
//
// For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_DISCONNECT, Error: RIL_E_UNUSED,
// Message: message RIL_SIM_SAP_DISCONNECT_REQ
// For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_DISCONNECT, Error:Valid errors,
// Message: message RIL_SIM_SAP_DISCONNECT_RSP
// For MsgType: UNSOL_RESPONSE, MsgId: RIL_SIM_SAP_DISCONNECT, Error: RIL_E_UNUSED,
// Message: message RIL_SIM_SAP_DISCONNECT_IND
//
RIL_SIM_SAP_DISCONNECT = 2;
//
// For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_APDU, Error: RIL_E_UNUSED,
// Message: message RIL_SIM_SAP_APDU_REQ
// For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_APDU, Error:Valid errors,
// Message: message RIL_SIM_SAP_APDU_RSP
//
RIL_SIM_SAP_APDU = 3;
//
// For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_TRANSFER_ATR, Error: RIL_E_UNUSED,
// Message: message RIL_SIM_SAP_TRANSFER_ATR_REQ
// For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_TRANSFER_ATR, Error:Valid errors,
// Message: message RIL_SIM_SAP_TRANSFER_ATR_RSP
//
RIL_SIM_SAP_TRANSFER_ATR = 4;
//
// For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_POWER, Error: RIL_E_UNUSED,
// Message: message RIL_SIM_SAP_POWER_REQ
// For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_POWER, Error:Valid errors,
// Message: message RIL_SIM_SAP_POWER_RSP
//
RIL_SIM_SAP_POWER = 5;
//
// For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_RESET_SIM, Error: RIL_E_UNUSED,
// Message: message RIL_SIM_SAP_RESET_SIM_REQ
// For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_RESET_SIM, Error:Valid errors,
// Message: message RIL_SIM_SAP_RESET_SIM_RSP
//
RIL_SIM_SAP_RESET_SIM = 6;
//
// For MsgType: UNSOL_RESPONSE, MsgId: RIL_SIM_SAP_STATUS, Error: RIL_E_UNUSED,
// Message: message RIL_SIM_SAP_STATUS_IND
//
RIL_SIM_SAP_STATUS = 7;
//
// For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS, Error: RIL_E_UNUSED,
// Message: message RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS_REQ
// For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS, Error:Valid errors,
// Message: message RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS_RSP
//
RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS = 8;
//
// For MsgType: UNSOL_RESPONSE, MsgId: RIL_SIM_SAP_ERROR_RESP, Error: RIL_E_UNUSED,
// Message: message RIL_SIM_SAP_ERROR_RSP
//
RIL_SIM_SAP_ERROR_RESP = 9;
//
// For MsgType: REQUEST ,MsgId: RIL_SIM_SAP_SET_TRANSFER_PROTOCOL, Error: RIL_E_UNUSED,
// Message: message RIL_SIM_SAP_SET_TRANSFER_PROTOCOL_REQ
// For MsgType: RESPONSE, MsgId: RIL_SIM_SAP_SET_TRANSFER_PROTOCOL, Error:Valid errors,
// Message: message RIL_SIM_SAP_SET_TRANSFER_PROTOCOL_RSP
//
RIL_SIM_SAP_SET_TRANSFER_PROTOCOL = 10;
}
enum Error {
RIL_E_SUCCESS = 0;
RIL_E_RADIO_NOT_AVAILABLE = 1;
RIL_E_GENERIC_FAILURE = 2;
RIL_E_REQUEST_NOT_SUPPORTED = 3;
RIL_E_CANCELLED = 4;
RIL_E_INVALID_PARAMETER = 5;
RIL_E_UNUSED = 6;
}
// SAP 1.1 spec 5.1.1
message RIL_SIM_SAP_CONNECT_REQ {
required int32 max_message_size = 1;
}
// SAP 1.1 spec 5.1.2
message RIL_SIM_SAP_CONNECT_RSP {
enum Response {
RIL_E_SUCCESS = 0;
RIL_E_SAP_CONNECT_FAILURE = 1;
RIL_E_SAP_MSG_SIZE_TOO_LARGE = 2;
RIL_E_SAP_MSG_SIZE_TOO_SMALL = 3;
RIL_E_SAP_CONNECT_OK_CALL_ONGOING = 4;
}
required Response response = 1;
// must be present for RIL_E_SAP_MSG_SIZE_TOO_LARGE and contain the
// the suitable message size
optional int32 max_message_size = 2;
}
// SAP 1.1 spec 5.1.3
message RIL_SIM_SAP_DISCONNECT_REQ {
//no params
}
// SAP 1.1 spec 5.1.4
message RIL_SIM_SAP_DISCONNECT_RSP {
//no params
}
// SAP 1.1 spec 5.1.5
message RIL_SIM_SAP_DISCONNECT_IND {
enum DisconnectType {
RIL_S_DISCONNECT_TYPE_GRACEFUL = 0;
RIL_S_DISCONNECT_TYPE_IMMEDIATE = 1;
}
required DisconnectType disconnectType = 1;
}
// SAP 1.1 spec 5.1.6
message RIL_SIM_SAP_APDU_REQ { //handles both APDU and APDU7816
enum Type {
RIL_TYPE_APDU = 0;
RIL_TYPE_APDU7816 = 1;
}
required Type type = 1;
required bytes command = 2;
}
// SAP 1.1 spec 5.1.7
message RIL_SIM_SAP_APDU_RSP { //handles both APDU and APDU7816
enum Type {
RIL_TYPE_APDU = 0;
RIL_TYPE_APDU7816 = 1;
}
required Type type = 1;
enum Response {
RIL_E_SUCCESS = 0;
RIL_E_GENERIC_FAILURE = 1;
RIL_E_SIM_NOT_READY = 2;
RIL_E_SIM_ALREADY_POWERED_OFF = 3;
RIL_E_SIM_ABSENT = 4;
}
required Response response = 2;
optional bytes apduResponse = 3;
}
// SAP 1.1 spec 5.1.8
message RIL_SIM_SAP_TRANSFER_ATR_REQ {
// no params
}
// SAP 1.1 spec 5.1.9
message RIL_SIM_SAP_TRANSFER_ATR_RSP {
enum Response {
RIL_E_SUCCESS = 0;
RIL_E_GENERIC_FAILURE = 1;
RIL_E_SIM_ALREADY_POWERED_OFF = 3;
RIL_E_SIM_ALREADY_POWERED_ON = 18;
RIL_E_SIM_ABSENT = 4;
RIL_E_SIM_DATA_NOT_AVAILABLE = 6;
}
required Response response = 1;
optional bytes atr = 2; //must be present on SUCCESS
}
// SAP 1.1 spec 5.1.10 +5.1.12
message RIL_SIM_SAP_POWER_REQ {
required bool state = 1; //true = on, False = off
}
// SAP 1.1 spec 5.1.11 +5.1.13
message RIL_SIM_SAP_POWER_RSP {
enum Response {
RIL_E_SUCCESS = 0;
RIL_E_GENERIC_FAILURE = 2;
RIL_E_SIM_ABSENT = 11;
RIL_E_SIM_ALREADY_POWERED_OFF = 17;
RIL_E_SIM_ALREADY_POWERED_ON = 18;
}
required Response response = 1;
}
// SAP 1.1 spec 5.1.14
message RIL_SIM_SAP_RESET_SIM_REQ {
// no params
}
// SAP 1.1 spec 5.1.15
message RIL_SIM_SAP_RESET_SIM_RSP {
enum Response {
RIL_E_SUCCESS = 0;
RIL_E_GENERIC_FAILURE = 2;
RIL_E_SIM_ABSENT = 11;
RIL_E_SIM_NOT_READY = 16;
RIL_E_SIM_ALREADY_POWERED_OFF = 17;
}
required Response response = 1;
}
// SAP 1.1 spec 5.1.16
message RIL_SIM_SAP_STATUS_IND {
enum Status {
RIL_SIM_STATUS_UNKNOWN_ERROR = 0;
RIL_SIM_STATUS_CARD_RESET = 1;
RIL_SIM_STATUS_CARD_NOT_ACCESSIBLE = 2;
RIL_SIM_STATUS_CARD_REMOVED = 3;
RIL_SIM_STATUS_CARD_INSERTED = 4;
RIL_SIM_STATUS_RECOVERED = 5;
}
required Status statusChange = 1;
}
// SAP 1.1 spec 5.1.17
message RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS_REQ {
//no params
}
// SAP 1.1 spec 5.1.18
message RIL_SIM_SAP_TRANSFER_CARD_READER_STATUS_RSP {
enum Response {
RIL_E_SUCCESS = 0;
RIL_E_GENERIC_FAILURE = 2;
RIL_E_SIM_DATA_NOT_AVAILABLE = 6;
}
required Response response = 1;
optional int32 CardReaderStatus = 2;
}
// SAP 1.1 spec 5.1.19
message RIL_SIM_SAP_ERROR_RSP {
//no params
}
// SAP 1.1 spec 5.1.20
message RIL_SIM_SAP_SET_TRANSFER_PROTOCOL_REQ {
enum Protocol {
t0 = 0;
t1 = 1;
}
required Protocol protocol = 1;
}
// SAP 1.1 spec 5.1.21
message RIL_SIM_SAP_SET_TRANSFER_PROTOCOL_RSP {
enum Response {
RIL_E_SUCCESS = 0;
RIL_E_GENERIC_FAILURE = 2;
RIL_E_SIM_ABSENT = 11;
RIL_E_SIM_NOT_READY = 16;
RIL_E_SIM_ALREADY_POWERED_OFF = 17;
}
required Response response = 1;
}