diff options
-rw-r--r-- | include/samsung-ipc.h | 1 | ||||
-rw-r--r-- | include/svc.h | 124 | ||||
-rw-r--r-- | samsung-ipc/ipc_util.c | 18 |
3 files changed, 143 insertions, 0 deletions
diff --git a/include/samsung-ipc.h b/include/samsung-ipc.h index 1868709..2a927d5 100644 --- a/include/samsung-ipc.h +++ b/include/samsung-ipc.h @@ -137,6 +137,7 @@ void ipc_rfs_message_fill(struct ipc_rfs_header *header, struct ipc_message_info #include "snd.h" #include "misc.h" #include "ss.h" +#include "svc.h" #include "gprs.h" #include "sat.h" #include "imei.h" diff --git a/include/svc.h b/include/svc.h new file mode 100644 index 0000000..5c068a7 --- /dev/null +++ b/include/svc.h @@ -0,0 +1,124 @@ +/* + * This file is part of libsamsung-ipc. + * + * Copyright (C) 2013 Paul Kocialkowski <contact@oaulk.fr> + * + * libsamsung-ipc is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * libsamsung-ipc is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. + * + */ + +#include <samsung-ipc.h> + +#ifndef __SAMSUNG_IPC_SVC_H__ +#define __SAMSUNG_IPC_SVC_H__ + +/* + * Types + */ + +#define IPC_SVC_ENTER 0x0B01 +#define IPC_SVC_END 0x0B02 +#define IPC_SVC_PRO_KEYCODE 0x0B03 +#define IPC_SVC_SCREEN_CFG 0x0B04 +#define IPC_SVC_DISPLAY_SCREEN 0x0B05 +#define IPC_SVC_CHANGE_SVC_MODE 0x0B06 +#define IPC_SVC_DEVICE_TEST 0x0B07 +#define IPC_SVC_DEBUG_DUMP_MESSAGE 0x0B08 +#define IPC_SVC_DEBUG_STRING_MESSAGE 0x0B09 + +/* + * Values + */ + +#define IPC_SVC_MODE_TEST_MANUAL 0x01 +#define IPC_SVC_MODE_TEST_AUTO 0x02 +#define IPC_SVC_MODE_NAM_EDIT 0x03 +#define IPC_SVC_MODE_MONITOR 0x04 +#define IPC_SVC_MODE_PHONE_TEST 0x05 + +#define IPC_SVC_TYPE_ENTER 0x00 +#define IPC_SVC_TYPE_SW_VERSION_ENTER 0x01 +#define IPC_SVC_TYPE_FTA_SW_VERSION_ENTER 0x02 +#define IPC_SVC_TYPE_FTA_HW_VERSION_ENTER 0x03 +#define IPC_SVC_TYPE_ALL_VERSION_ENTER 0x04 +#define IPC_SVC_TYPE_BATTERY_INFO_ENTER 0x05 +#define IPC_SVC_TYPE_CIPHERING_PROTECTION_ENTER 0x06 +#define IPC_SVC_TYPE_INTEGRITY_PROTECTION_ENTER 0x07 +#define IPC_SVC_TYPE_IMEI_READ_ENTER 0x08 +#define IPC_SVC_TYPE_BLUETOOTH_TEST_ENTER 0x09 +#define IPC_SVC_TYPE_VIBRATOR_TEST_ENTER 0x0A +#define IPC_SVC_TYPE_MELODY_TEST_ENTER 0x0B +#define IPC_SVC_TYPE_MP3_TEST_ENTER 0x0C +#define IPC_SVC_TYPE_FACTORY_RESET_ENTER 0x0D +#define IPC_SVC_TYPE_FACTORY_PRECONFIG_ENTER 0x0E +#define IPC_SVC_TYPE_TFS4_EXPLORE_ENTER 0x0F +#define IPC_SVC_TYPE_RSC_FILE_VERSION_ENTER 0x11 +#define IPC_SVC_TYPE_USB_DRIVER_ENTER 0x12 +#define IPC_SVC_TYPE_USB_UART_DIAG_CONTROL_ENTER 0x13 +#define IPC_SVC_TYPE_RRC_VERSION_ENTER 0x14 +#define IPC_SVC_TYPE_GPSONE_SS_TEST_ENTER 0x15 +#define IPC_SVC_TYPE_BAND_SEL_ENTER 0x16 +#define IPC_SVC_TYPE_GCF_TESTMODE_ENTER 0x17 +#define IPC_SVC_TYPE_GSM_FACTORY_AUDIO_LB_ENTER 0x18 +#define IPC_SVC_TYPE_FACTORY_VF_TEST_ENTER 0x19 +#define IPC_SVC_TYPE_TOTAL_CALL_TIME_INFO_ENTER 0x1A +#define IPC_SVC_TYPE_SELLOUT_SMS_ENABLE_ENTER 0x1B +#define IPC_SVC_TYPE_SELLOUT_SMS_DISABLE_ENTER 0x1C +#define IPC_SVC_TYPE_SELLOUT_SMS_TEST_MODE_ON 0x1D +#define IPC_SVC_TYPE_SELLOUT_SMS_PRODUCT_MODE_ON 0x1E +#define IPC_SVC_TYPE_GET_SELLOUT_SMS_INFO_ENTER 0x1F +#define IPC_SVC_TYPE_TST_AUTO_ANSWER_ENTER 0x20 +#define IPC_SVC_TYPE_TST_NV_RESET_ENTER 0x21 +#define IPC_SVC_TYPE_TST_FTA_SW_VERSION_ENTER 0x22 +#define IPC_SVC_TYPE_TST_FTA_HW_VERSION_ENTER 0x23 + +/* + * Structures + */ + +struct ipc_svc_enter_data { + unsigned char mode; + unsigned char type; + unsigned char unknown; +} __attribute__((__packed__)); + +struct ipc_svc_end_data { + unsigned char mode; +} __attribute__((__packed__)); + +struct ipc_svc_pro_keycode_data { + unsigned char key; +} __attribute__((__packed__)); + +struct ipc_svc_screen_cfg_data { + unsigned char count; + unsigned char unknown; +} __attribute__((__packed__)); + +struct ipc_svc_display_screen_header { + unsigned char count; +} __attribute__((__packed__)); + +struct ipc_svc_display_screen_data { + unsigned short index; + char line[32]; +} __attribute__((__packed__)); + +struct ipc_svc_change_svc_mode_data { + unsigned char mode; +} __attribute__((__packed__)); + +#endif + +// vim:ts=4:sw=4:expandtab diff --git a/samsung-ipc/ipc_util.c b/samsung-ipc/ipc_util.c index 1af1fec..4de39de 100644 --- a/samsung-ipc/ipc_util.c +++ b/samsung-ipc/ipc_util.c @@ -315,6 +315,24 @@ const char *ipc_command_to_str(int command) return "IPC_SS_AOC"; case IPC_SS_RELEASE_COMPLETE: return "IPC_SS_RELEASE_COMPLETE"; + case IPC_SVC_ENTER: + return "IPC_SVC_ENTER"; + case IPC_SVC_END: + return "IPC_SVC_END"; + case IPC_SVC_PRO_KEYCODE: + return "IPC_SVC_PRO_KEYCODE"; + case IPC_SVC_SCREEN_CFG: + return "IPC_SVC_SCREEN_CFG"; + case IPC_SVC_DISPLAY_SCREEN: + return "IPC_SVC_DISPLAY_SCREEN"; + case IPC_SVC_CHANGE_SVC_MODE: + return "IPC_SVC_CHANGE_SVC_MODE"; + case IPC_SVC_DEVICE_TEST: + return "IPC_SVC_DEVICE_TEST"; + case IPC_SVC_DEBUG_DUMP_MESSAGE: + return "IPC_SVC_DEBUG_DUMP_MESSAGE"; + case IPC_SVC_DEBUG_STRING_MESSAGE: + return "IPC_SVC_DEBUG_STRING_MESSAGE"; default: return "UNKNOWN"; } |