拷贝几篇博文。

https://berlin.ccc.de/~tobias/mmi-ussd-ss-codes-explained.html
==============================================

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#  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 ) 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#  or *21*1234#  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  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  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  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)"

http://blog.csdn.net/u013083059/article/details/39337361
=====================================================

MMI是Man-Machine-Interface的缩写。从功能上来看,有一些从拨号盘拨出去的字符串,它的实际作用不是建立一个通话而是为了完成某种服务,这个就是MMI;从格式上来看,每一个从拨号盘输入的字符串,如果包含有*或者#,都可以称之为MMI.

MMI包括SS, USSD,Manufacturer defined MMI codes, SIM control codes等等。

Manufacturer defined MMI codes

一些嵌在手机里的服务码,比如你要查询一个手机的IMEI号码,你可以在拨号键盘输入*#06#,手机的IMEI码会自动弹出来。

SIM control codes

比如用来修改SIM卡PIN码的命令,在拨号键盘输入**04*1234*6789*6789#,这将会将SIM卡的PIN码从1234修改成为6789.

SS

Supplementary Service,补充服务,比如控制号码显示,呼叫转移等服务的号码串。这些号码串是每部GSM/UMTS/LTE手机中的固定服务号码,运营商是不能对它进行修改的。当手机系统接受到这些服务号码后,先在手机内部进行处理后,再传给网络。比如你随便拿个手机,在拨号盘输入*21*123456789#然后点击发送,这个时候你所有的来电都会直接转移到123456789。

USSD

与SS相对应的是Unstructured Supplementary Service Data。从字面上看,是非结构化的补充字符,曾经我以为字符串格式上的不同是SS和USSD间最大的区别,后来发现自己大错特错了:单从字符串格式上是没法区分的。那他俩到底有啥区别?一,USSD基本都是运营商根据自己的服务自己定制的,而SS就像上面说的是每个手机固有的;二,SS在发送给网络前,手机首先会自己处理一下,而USSD是完全透明的传送给网络。

SS和USSD都必须点击发送后才能生效,而Manufacturer defined MMI codes和SIM control codes都不需要点击,输入后直接生效。

MMI格式

手机支持如下格式的MMI。

Activation : *SC*SI#

Deactivation : #SC*SI#

Interrogation : *#SC*SI#

Registration :  *SC*SI# and **SC*SI#

Erasure : ##SC*SI#

Action:*,#,*#,**,##。

SC: Service Code, 由2-3位数字组成

SI:  Supplementary Information。

MMI串通常以*,#,*#,**,##等开头,以#结束。各个部分间以*隔开。

MMI、SS、USSD介绍相关推荐

  1. MMI SS USSD扫盲贴

    MMI是Man-Machine-Interface的缩写.从功能上来看,有一些从拨号盘拨出去的字符串,它的实际作用不是建立一个通话而是为了完成某种服务,这个就是MMI:从格式上来看,每一个从拨号盘输入 ...

  2. Android拨号盘特殊字符串处理

    Android拨号盘特殊字符串(例如*#06#显示IMEI或者MEID)处理的类是: packages/apps/Dialer/src/com/android/dialer/SpecialCharSe ...

  3. 手机开发平台指南、教程和资料介绍

    近来无事,把手机开发平台的学习指南.教程和资料总结一下,方便大家参考.     手机客户端软件开发最大的困难就是平台不统一,手机开发平台太多.     手机可分为智能手机开发和feather phon ...

  4. 各类手机开发平台介绍(转载)

    近来无事,把手机开发平台的学习指南.教程和资料总结一下,方便大家参考. 手机客户端软件开发最大的困难就是平台不统一,手机开发平台太多. 手机可分为智能手机开发和feather phone手机.开发平台 ...

  5. 【转】各类手机开发平台介绍

    原文:http://blog.sina.com.cn/s/blog_614814030100f9oy.html 近来无事,把手机开发平台的学习指南.教程和资料总结一下,方便大家参考. 手机客户端软件开 ...

  6. 手机开发平台资料介绍

    近来无事,把手机开发平台的学习指南.教程和资料总结一下,方便大家参考,欢迎转载,请注明出处http://blog.csdn.net/changduanwang. 手机客户端软件开发最大的困难就是平台不 ...

  7. 【转】手机开发平台介绍

    转自:作者:手机即信息 博客:http://canco.javaeye.com 手机客户端软件开发最大的困难就是平台不统一,手机开发平台太多.     手机可分为智能手机开发和feather phon ...

  8. 手机开发平台指南、教程和资料介绍(修改稿)

    欢迎转载,转载请注明出处.作者:手机即信息 博客:http://canco.javaeye.com 近来无事,把手机开发平台的学习指南.教程和资料总结一下,方便大家参考. 手机客户端软件开发最大的困难 ...

  9. DNS服务器分离解析 RAID阵列 进程管理 日志管理 systemd作用

    目录 分离解析 什么是分离解析 BIND的view视图 案例 案例2 RAID阵列概述 • 廉价冗余磁盘阵列 • RAID 0,条带模式 • RAID 1,镜像模式 • RAID5,高性价比模式 ​• ...

  10. linux新建文件夹明率,linux新建文件和文件夹命令

    1.touch命令 touch命令用来修改文件的访问时间.修改时间.如果没有指定时间,则将文件时间属性改为当前时间. 当指定文件不存在,touch命令变为创建该文件. 语法: touch [-acm] ...

最新文章

  1. 盘点“逆市上涨”BZ第一季度回购亮点
  2. [ 懒人神器 ] —— OO一键build:.zip - .jar
  3. Java程序设计4——集合类
  4. php 5.6 文档,文件存储 | 进阶系列 | Laravel 5.6 中文文档
  5. C++ vector 容器的使用
  6. 如下哪个是Java中的合法自定义标识符_吉大13春《面向对象程序设计》在线作业答案...
  7. 编程软件python-零基础学Python编程需要安装什么软件?
  8. React 进修之路(1)
  9. 腾讯裁员内幕:顶层反思推动,PCG与CSIG影响最大
  10. 推荐5个优秀的Java开源项目,初学者友好
  11. 秒杀项目(2)集成redis
  12. 河北源达投顾:用专业教学,用智能解决选股烦恼
  13. 电影院票务管理系统数据库设计
  14. Java中PDF转WORD
  15. BCH硬分叉,又一场“权力的游戏” | 8问大事件
  16. linux命令界面切换桌面,Linux图形界面和命令行界面切换
  17. Maven与Git速识
  18. 汉语拼音容易弄混的4个字母
  19. 用WWW::Mechanize来写twiki
  20. 制作PPT的5大秘密武器

热门文章

  1. FreeImage的学习总结总结(一)
  2. aliplayer隐藏工具条
  3. linux服务网卡速率查看,linux下查看网卡速率
  4. mysql高频面试题合集
  5. 关于深度森林的一点理解
  6. 基于javaweb+springboot的学生学科竞赛管理管理系统设计和实现(java+springboot+ssm+maven)
  7. dvwa linux安装教程,Redhat 下 XAMPP 安装部署 DVWA 教程(示例代码)
  8. Nginx基本配置参数说明与文档
  9. php laravel 分页,laravel 分页问题
  10. 【DS18B20】与之相连的引脚正确配置