What’s the difference between USSD, MMI and SS codes
来源:互联网 发布:北京亚信智慧数据科技 编辑:程序博客网 时间:2024/06/17 06:03
What’s the difference between USSD, MMI and SS codes?
The recent Samsung remote wipe attack got a lot of media coverage. In every article and blog post you could read that the attack made use of an "USSD code".
But that is not the case.
So what are the codes with those */# characters called and what is an USSD code?
Every code that you enter over your phones keypad that contains asterisk (*) or hash (#) characters is an MMI code. MMI stands for Man-Machine-Interface.
Even though most of these MMI codes look pretty similar, they fall into different groups with completely different actions. Some are just used locally on the device, some are sent to the SIM, others are sent to the network.
Different kinds of MMI codes
Supplementary Service (SS) codes
Those are the codes used to control, for example, call forwarding or number presentation.
With *21*123456789# <SEND> you would instruct your phone to ask the network to forward all your incoming calls to the number 123456789. But this code is not sent directly to the network. Instead, it is parsed by the phone which then constructs an ASN.1 coded request to the network.
These codes are hardcoded into every GSM/UMTS/LTE device worldwide and cannot be changed by your network operator.
Unstructured Supplementary Service Data (USSD) codes
If you enter a code that at least ends in a hash sign (and press <SEND>) and is not recognized by the phones MMI parser, the code will be sent to the network verbatim. It then depends on the network if this code is supported. One of the most used cases is a code for prepaid cards to check your balance. Many networks use something like *#100#. But it is really the choice of the network operator which code to use as long as it not already taken.
So entering *20*1234# <SEND> or *21*1234# <SEND> would do two completely different things: The first code would be sent as-is to the network for further processing (most likely returning an error), while the second code would be parsed by the phone and a structured request for activation of call forwarding would be sent to the network.
Please note: For SS and USSD codes you always need to press the <SEND> key after entering them, so it is not possible to automatically execute those codes with a tel-URL.
Manufacturer defined MMI codes
This is the category into which the much talked-about Samsung code falls.
Codes specific to your phone model that have been built in by the manufacturer to, for example, activate service menus or reset the device. These codes also contain * and # characters. Since the codes are not being sent to the network, you don’t have to press the <SEND> key at the end – they are executed as soon as the last digit or character has been entered. There is one code that is mandatory for all manufacturers of GSM/UMTS/LTE phones to implement:*#06#
It shows the devices IMEI (Internatiol Mobile Equipment Identifier)
SIM control codes
These codes are used, for example, to change your SIMs PIN code.
**04*1234*6789*6789# would change your PIN code from "1234" to "6789".
These codes are also executed without pressing the <SEND> key.
The complete specification for the MMI interface of GSM/UMTS/LTE devices can be found in 3GPP TS 22.030: "Man-Machine Interface (MMI) of the User Equipment (UE)"
- What’s the difference between USSD, MMI and SS codes
- difference between USSD, MMI and SS codes
- What's the difference between an event and a delegate?
- what's the difference between OnDraw and OnPaint
- What's the difference between stack and heap?
- What's the difference between LastWriteTime and ChangeTime in FILE_BASIC_INFO?
- What's the difference between Heap and Stack
- What's the difference between overload and override
- What's the difference between glibc and libc6?
- What's the difference between "but" and "yet"
- What's+the+difference+between+virtualization+and+cloud+computing?
- What's the difference between parallel and concurrent?
- What's the difference between program arguments and VM arguments?
- What's the difference between Template and Table in Smartforms
- What's the difference between “local” and “my” in Perl
- what's the difference between int (* f [])(); and int f[]();
- What's the difference between gcc and g++/gcc-c++?
- What's the difference between headsets and headphones?
- EXCEL 导入到 SQL2005遇到的错误集
- 类作用域
- 编写一个方法 求一个字符串的字节长度
- OpenCV 2 编译及在vs2010中配置方法
- 关于@property 声明变量与自己声明变量问题
- What’s the difference between USSD, MMI and SS codes
- JLDAP《实现密码验证》
- 《机器学习基石》第2讲 学习笔记
- 苏有朋单身罗志祥否认恋林心如 盘点娱乐圈极品剩男
- eclipse中svn插件的使用
- DAL,IDAL,BLL,Factory作用
- block一 : block的基本语法和使用
- Improve yourself in client development
- 从mediaReceiver到mediaScanner的扫描过程