[MTCB Android Head Units Q&A] darkspr1te:
MCTCoreServices

So I've found the sources that document the protocol between CANBOX and HeadUnit for some CANBOX models,

public class CanBoxProtocol
{
private final static String TAG	= "CanBoxProtocol";
private boolean mIsValidProtocol = false;
private int mLengthFlag	= 0x1;//0 = 长度在前，1 = 长度在后
private int mHeadLength	= 0x00;//Head长度
private int[] mHeadTag	= new int[]{0xFF,0xFF,0xFF};//协议头，不够补0xFF
private int[] mBaudRate	= new int[]{0x00,0x00,0x00,0x00};//波特率
private int mChecksumAddLength	= 0x1;//0 checksum计算不需要包含length;1 需要包含length
private int mChecksumAddCmd	= 0x1;//0 checksum计算不需要包含cmd;1 需要包含cmd
private int mChecksumMode	= 0x1;//0 &0xFF; 1 ^0xFF
private int mChecksumExtern	= 0x0;//0 checksum不需要-1;1 不需要
private int mNeedAck	= 0x1;//是否需要ACK
private int mOkAck	= 0xFF;//成功ACK
private int mFailedAck	= 0xF0;//失败ACK
private int mCheckSumLength	= 0x01;//CheckSum长度
private int mDataLengthMode	= 0x00;//0 Data部分的长度;1 除协议头以外所有的数据长度

public CanBoxProtocol(int canBoxType,int carModel)
{
updateCanBoxType(canBoxType,carModel);
}

public void updateCanBoxType(int canBoxType,int carModel)
{
Log.i(TAG, "updateCanBoxType:"+canBoxType+",carModel:"+carModel);
switch(canBoxType)
{
case CarModelDefine.CAN_BOX_RZC:
{
//睿智诚标志雪铁龙车系协议格式要单独处理
if(carModel >= 250 && carModel <= 299)
{
mLengthFlag = 0x00;
mHeadTag[0] = 0xFD;
mHeadTag[1] = 0xFF;
mHeadTag[2] = 0xFF;
mHeadLength = 0x01;
mBaudRate[0] = 0x00;
mBaudRate[1] = 0x00;
mBaudRate[2] = 0x4B;
mBaudRate[3] = 0x00;
mChecksumAddLength = 0x01;
mChecksumAddCmd = 0x01;
mChecksumMode = 0x00;
mChecksumExtern = 0x00;
mNeedAck = 0x00;
mOkAck = 0xFF;
mFailedAck = 0xFF;
mIsValidProtocol = true;
mCheckSumLength = 0x01;
mDataLengthMode = 0x01;
}
else if(carModel >= 300 && carModel <= 349)
{
mLengthFlag = 0x00;
mHeadTag[0] = 0xFD;
mHeadTag[1] = 0xFF;
mHeadTag[2] = 0xFF;
mHeadLength = 0x01;
mBaudRate[0] = 0x00;
mBaudRate[1] = 0x00;
mBaudRate[2] = 0x4B;
mBaudRate[3] = 0x00;
mChecksumAddLength = 0x01;
mChecksumAddCmd = 0x01;
mChecksumMode = 0x00;
mChecksumExtern = 0x00;
mNeedAck = 0x00;
mOkAck = 0xFF;
mFailedAck = 0xFF;
mIsValidProtocol = true;
mCheckSumLength = 0x02;
mDataLengthMode = 0x01;
}
else
{
mLengthFlag = 0x01;
mHeadTag[0] = 0x2E;
mHeadTag[1] = 0xFF;
mHeadTag[2] = 0xFF;
mHeadLength = 0x01;
mBaudRate[0] = 0x00;
mBaudRate[1] = 0x00;
mBaudRate[2] = 0x96;
mBaudRate[3] = 0x00;
mChecksumAddLength = 0x01;
mChecksumAddCmd = 0x01;
mChecksumMode = 0x01;
mChecksumExtern = 0x00;
mNeedAck = 0x01;
mOkAck = 0xFF;
mFailedAck = 0xF0;
mIsValidProtocol = true;
mCheckSumLength = 0x01;
mDataLengthMode = 0x00;
}
}
break;
case CarModelDefine.CAN_BOX_SS:
mLengthFlag = 0x00;
mHeadTag[0] = 0xAA;
mHeadTag[1] = 0x55;
mHeadTag[2] = 0xFF;
mHeadLength = 0x02;
mBaudRate[0] = 0x00;
mBaudRate[1] = 0x00;
mBaudRate[2] = 0x96;
mBaudRate[3] = 0x00;
mChecksumAddLength = 0x01;
mChecksumAddCmd = 0x01;
mChecksumMode = 0x00;
mChecksumExtern = 0x01;
mNeedAck = 0x00;
mOkAck = 0xFF;
mFailedAck = 0xFF;
mIsValidProtocol = true;
mCheckSumLength = 0x01;
mDataLengthMode = 0x00;
break;
case CarModelDefine.CAN_BOX_XP:
mLengthFlag = 0x01;
mHeadTag[0] = 0x2E;
mHeadTag[1] = 0xFF;
mHeadTag[2] = 0xFF;
mHeadLength = 0x01;
mBaudRate[0] = 0x00;
mBaudRate[1] = 0x00;
mBaudRate[2] = 0x96;
mBaudRate[3] = 0x00;
mChecksumAddLength = 0x01;
mChecksumAddCmd = 0x01;
mChecksumMode = 0x01;
mChecksumExtern = 0x00;
mNeedAck = 0x01;
mOkAck = 0xFF;
mFailedAck = 0xF0;
mIsValidProtocol = true;
mCheckSumLength = 0x01;
mDataLengthMode = 0x00;
break;
default:
Log.e(TAG, "not support this can box type");
break;
}
}

and then theres the commands

//CanBox->HU
public static final int CH_CMD_STEERING_WHEEL_KEY	= 0x20;
public static final int CH_CMD_TRIP_PER_MINUTE_INFO	= 0x21;//每分钟油耗
public static final int CH_CMD_INSTANT_TRIP_INFO	= 0x22;//瞬时油耗
public static final int CH_CMD_HISTORY_TRIP_INFO	= 0x23;//历史油耗
public static final int CH_CMD_BASE_INFO	= 0x24;
public static final int CH_CMD_TPMS_INFO	= 0x25;
public static final int CH_CMD_VEHICLE_SETTING	= 0x26;
public static final int CH_CMD_TRIP_BEFORE_15_MINUTE	= 0x27;//过去15分钟每分钟油耗
public static final int CH_CMD_AIR_CONDITION_INFO	= 0x28;//空调信息
public static final int CH_CMD_STEERING_WHEEL_ANGLE	= 0x29;//方向盘转角信息
public static final int CH_CMD_PROTOCOL_VERSION_INFO	= 0x30;//协议版本信息
public static final int CH_CMD_AMPLIFIER_STATUS_INFO	= 0x31;//攻放信息
public static final int CH_CMD_SYSTEM_INFO	= 0x32;//系统信息
public static final int CH_CMD_OIL_ELEC_MIXED_INFO	= 0x1F;//油电混合指示
public static final int CH_CMD_REAR_RADAR_INFO	= 0x1E;//后雷达
public static final int CH_CMD_FRONT_RADAR_INFO	= 0x1D;//前雷达
public static final int CH_CMD_VEHICLE_SET_STATUS_INFO	= 0x50;//车辆设置状态
public static final int CH_CMD_AC_PANEL_KEY_INFO	= 0x51;//空调面板设置信息(皇冠)
public static final int CH_CMD_VECHILE_SET_RETURN_INFO= 0x52;//车辆设置返回信息(皇冠、汉兰达)
public static final int CH_CMD_AIR_CONDITION_INFO2	= 0x58;//车型空调信息(皇冠)

//HU->CanBox
public static final int HC_CMD_SWITCH	= 0x81;
public static final int HC_CMD_VEHICLE_SET	= 0x83;//车身中控设定命令
public static final int HC_CMD_COMMON_SET	= 0x84;//设定命令
public static final int HC_CMD_REQ_CONTROL_INFO	= 0x90;//请求控制信息

public static final int SWC_KEY_NONE	= 0x00;//无按键或者按键释放
public static final int SWC_KEY_VOLUME_UP	= 0x01;//音量加
public static final int SWC_KEY_VOLUME_DOWN	= 0x02;//音量键
public static final int SWC_KEY_MENU_RIGHT	= 0x03;//方向键-右
public static final int SWC_KEY_MENU_LEFT	= 0x04;//方向键-左
public static final int SWC_KEY_SRC	= 0x07;//源切换
public static final int SWC_KEY_SPEECH	= 0x08;//语音
public static final int SWC_KEY_PICK_UP	= 0x09;//接听
public static final int SWC_KEY_HANG_UP	= 0x0A;//挂断
public static final int SWC_KEY_BOX	= 0x0B;//方框键
public static final int SWC_KEY_MENU_UP	= 0x13;//方向键-上
public static final int SWC_KEY_MENU_DOWN	= 0x14;//方向键-下
public static final int SWC_KEY_BACK	= 0x15;//back
public static final int SWC_KEY_ENTER	= 0x16;//enter
public static final int SCROLL_KEY_VOLUME_UP	= 0x81;//音量旋钮-
public static final int SCROLL_KEY_VOLUME_DOWN	= 0x82;//音量旋钮+
public static final int SCROLL_KEY_CH_FLD_UP	= 0x83;//enter
public static final int SCROLL_KEY_CH_FLD_DOWN	= 0x84;//enter
public static final int SCROLL_KEY_TUNE_TRACK_UP	= 0x85;//收音调台-
public static final int SCROLL_KEY_TUNE_TRACK_DOWN	= 0x86;//收音调台+
public static final int SWC_KEY_POWER	= 0x87;//PWR
public static final int SWC_KEY_MODE	= 0x88;//MODE

and the models are

public static final short CAR_MODEL_VOLKSWAGEN_MAGOTAN = 0;//大众迈腾
public static final short CAR_MODEL_VOLKSWAGEN_SAGITAR	= 1;//大众速腾
public static final short CAR_MODEL_VOLKSWAGEN_GOLF7	= 2;//大众高尔夫7
public static final short CAR_MODEL_VOLKSWAGEN_POLO	= 3;//大众波罗
public static final short CAR_MODEL_VOLKSWAGEN_OCTAVIA	= 4;//大众明锐
public static final short CAR_MODEL_VOLKSWAGEN_17MAGOTAN= 5;//17款迈腾

//本田系列(50-99)
public static final short CAR_MODEL_HONDA_15CRV_L	= 50;//15CRV低配
public static final short CAR_MODEL_HONDA_15CRV_H	= 51;//15CRV高配
public static final short CAR_MODEL_HONDA_CROSSTOUR	= 52;//歌诗图
public static final short CAR_MODEL_HONDA_ACCORD_9L	= 53;//雅阁9代低配
public static final short CAR_MODEL_HONDA_ACCORD_9H	= 54;//雅阁9代高配
public static final short CAR_MODEL_HONDA_CRIDER	= 55;//凌派2016
public static final short CAR_MODEL_HONDA_JADE	= 56;//杰德
public static final short CAR_MODEL_HONDA_ODYSSEY	= 57;//奥德赛
public static final short CAR_MODEL_HONDA_FIDO	= 58;//飞度
public static final short CAR_MODEL_HONDA_WISDOM	= 59;//缤智
public static final short CAR_MODEL_HONDA_CITY	= 60;//锋范旗舰版2015
public static final short CAR_MODEL_HONDA_12CRV	= 61;//12CRV

//日产系列(100-149)
public static final short CAR_MODEL_NISSAN_X_TRAIL	=	100;//奇骏
public static final short CAR_MODEL_NISSAN_QASHQAI	=	101;//逍客
public static final short CAR_MODEL_NISSAN_NEW_TEANA	=	102;//新天籁
public static final short CAR_MODEL_NISSAN_TEANA	=	103;//天籁
public static final short CAR_MODEL_NISSAN_TIIDA	=	104;//骐达
public static final short CAR_MODEL_NISSAN_SUN	=	105;//阳光
public static final short CAR_MODEL_NISSAN_LI_WEI	=	106;//骊威
public static final short CAR_MODEL_NISSAN_BLUEBIRD	=	107;//蓝鸟
public static final short CAR_MODEL_NISSAN_INIFINITI_QX50_L	=	108;//英菲尼迪QX50低配
public static final short CAR_MODEL_NISSAN_INIFINITI_QX50_H=	109;//英菲尼迪QX50高配
public static final short CAR_MODEL_NISSAN_MORNAO	=	110;//楼兰
public static final short CAR_MODEL_NISSAN_CIMA_L	=	111;//西玛低配
public static final short CAR_MODEL_NISSAN_CIMA_H	=	112;//西玛高配
public static final short CAR_MODEL_NISSAN_VENUCIA_T70	= 113;//启辰T70
public static final short CAR_MODEL_NISSAN_VENUCIA_T90	= 114;//启辰T90
//丰田系列(150-199)
public static final short CAR_MODEL_TOYOTA_RAV4	= 150;//RAV4
public static final short CAR_MODEL_TOYOTA_VIOS	= 151;//威驰
public static final short CAR_MODEL_TOYOTA_REIZ	= 152;//锐志
public static final short CAR_MODEL_TOYOTA_OVERBEARING	= 153;//霸道
public static final short CAR_MODEL_TOYOTA_COROLLA	= 154;//卡罗拉
public static final short CAR_MODEL_TOYOTA_HIGHLANDER	= 155;//汉兰达
public static final short CAR_MODEL_TOYOTA_CAMRY	= 156;//凯美瑞
public static final short CAR_MODEL_TOYOTA_CROWN	= 157;//皇冠

//通用系列(200-249)
public static final short CAR_MODEL_GM_HIDEN	= 200;//英朗
public static final short CAR_MODEL_GM_CRUZE	= 201;//科鲁兹
public static final short CAR_MODEL_GM_MALIBU	= 202;//迈锐宝
public static final short CAR_MODEL_GM_16MALIBU_XL	= 203;//2016迈锐宝XL
public static final short CAR_MODEL_GM_GL8	= 204;//GL8
public static final short CAR_MODEL_GM_AVEO	= 205;//爱唯欧
public static final short CAR_MODEL_GM_REGAL	= 206;//君威
public static final short CAR_MODEL_GM_ENCORE	= 207;//昂科拉

//标志雪铁龙系列(250-299)
public static final short CAR_MODEL_PEUGEOT_16_308	= 250;//16款308
public static final short CAR_MODEL_PEUGEOT_14_408	= 251;//14款408
public static final short CAR_MODEL_PEUGEOT_ELYSEE	= 252;//爱丽舍
public static final short CAR_MODEL_PEUGEOT_301	= 253;//301
public static final short CAR_MODEL_PEUGEOT_2008	= 254;//2008
public static final short CAR_MODEL_PEUGEOT_3008	= 255;//3008
public static final short CAR_MODEL_PEUGEOT_C4L	= 256;//C4L
public static final short CAR_MODEL_PEUGEOT_DS5LS	= 257;//DS5LS
public static final short CAR_MODEL_PEUGEOT_C3XL	= 258;//C3XL
public static final short CAR_MODEL_PEUGEOT_SEGA	= 259;//世嘉
public static final short CAR_MODEL_PEUGEOT_4008	= 260;//4008

//韩系(300-349)
public static final short CAR_MODEL_KOREA_IX35	= 300;//IX35
public static final short CAR_MODEL_KOREA_IX45	= 301;//IX45
public static final short CAR_MODEL_KOREA_SONATA8	= 302;//索纳塔8
public static final short CAR_MODEL_KOREA_SONATA9	= 303;//索纳塔9
public static final short CAR_MODEL_KOREA_SORRENTO	= 304;//索兰托
public static final short CAR_MODEL_KOREA_KIA_K5	= 305;//起亚K5
public static final short CAR_MODEL_KOREA_KIA_KX5	= 306;//起亚KX5
public static final short CAR_MODEL_KOREA_16MISTRA	= 307;//16名图
public static final short CAR_MODEL_KOREA_KIA_16ELANTRA	= 308;//16领动
public static final short CAR_MODEL_KOREA_KIA_16K3	= 309;//16K3

//福特车系系列(350-399)
public static final short CAR_MODEL_FORD_12_FUCOS	= 350;//2012款福克斯
public static final short CAR_MODEL_FORD_13_KUGA	= 351;//2013款翼虎
public static final short CAR_MODEL_FORD_13_ECO_SPORT	= 352;//2013款翼博
public static final short CAR_MODEL_FORD_13_FIESTA	= 353;//2013款嘉年华
public static final short CAR_MODEL_FORD_15_FUCOS	= 354;//2015款福克斯
public static final short CAR_MODEL_FORD_17_KUGA	= 355;//2017款翼虎

//奔腾车系
public static final short CAR_MODEL_BESTURN_16_B50	= 400;//2016款奔腾B50
public static final short CAR_MODEL_BESTURN_X80	= 405;//奔腾X80

//广汽传祺车系
public static final short CAR_MODEL_TRUMPCH_GA3	= 450;
public static final short CAR_MODEL_TRUMPCH_GA3S	= 451;
public static final short CAR_MODEL_TRUMPCH_GA6	= 452;
public static final short CAR_MODEL_TRUMPCH_GS4	= 453;
public static final short CAR_MODEL_TRUMPCH_GS5	= 454;
public static final short CAR_MODEL_TRUMPCH_XINGLANG	= 455;//广汽吉奥星朗

//吉利车系
public static final short CAR_MODEL_GEELY_EMGRAND	= 500;//吉利帝豪
public static final short CAR_MODEL_GEELY_EMGRAND_GS	= 501;//吉利帝豪GS
public static final short CAR_MODEL_GEELY_NL_3	= 502;//吉利博越

//中华车系
public static final short CAR_MODEL_CHINA_MOTOR_V3	= 550;//中华V3
public static final short CAR_MODEL_CHINA_MOTOR_H3	= 551;//中华H3

//宝骏车系
public static final short CAR_MODEL_BAO_JUN_560_2015	= 600;//2015宝骏560
public static final short CAR_MODEL_BAO_JUN_730_2014	= 601;//2014宝骏730
public static final short CAR_MODEL_BAO_JUN_730_2017	= 602;//2017宝骏730

//吉普车系
public static final short CAR_MODEL_JEEP_FREELIGHT_2015	= 650;//2015吉普自由光
public static final short CAR_MODEL_JEEP_LIBERTY_2016	= 651;//2016吉普自由侠
public static final short CAR_MODEL_JEEP_COMPASS_2017	= 652;//2017吉普指南者

//长城车系
public static final short CAR_MODEL_GREAT_WALL_H2	= 700;//长城H2

More to come once i've studied the java and .so sources

darkspr1te