aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/samsung-ipc.h1
-rw-r--r--include/svc.h124
-rw-r--r--samsung-ipc/ipc_util.c18
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";
}