STK

STK
(SIM Application Toolkit)诚纸,中文名為SIM卡應用工具包。它包含一系列手機與SIM卡的交互指令,SIM卡可以運行卡內(nèi)的小應用程序與手機以及用戶進行交互益兄,從而實現(xiàn)增值服務的目的罕容。
別名:
CAT:Card Application Toolkit颠蕴,另一個常用名哨免,Android的STK應用就被命名為CatAppUSAT:USIM Application Toolkit 亚情,3G SIM卡的STK功能。但是一般不會特別指出是3G的STK沸版,所以這個命令不常用嘁傀。
協(xié)議
2G協(xié)議:3GPP TS 11.143G協(xié)議:
3GPP TS 31.1112G測試協(xié)議:
3GPP TS 51.010-43G測試協(xié)議:3GPP TS 31.124,里面有大量引用ETSI TS 102.384的case對于測試協(xié)議视粮,不論51.010-4细办,31.124還是102.384,測試項都是27.22.蕾殴。
功能

Profile Download笑撞,配置下載開機初始化SIM卡的過程中,手機告訴SIM卡手機支持哪些STK命令钓觉。在STK中茴肥,Download指的是手機將數(shù)據(jù)發(fā)送給SIM卡。
Proactive SIM荡灾,主動式命令通過主動式命令瓤狐,SIM卡可以指示手機執(zhí)行一系列的行為,如:

  • 顯示菜單
  • 顯示文本
  • 發(fā)短信
  • 撥出電話
  • 發(fā)SS(輔助業(yè)務)或者USSD給網(wǎng)絡
  • 發(fā)點聲音
  • 重新初始化SIM卡或者更新手機緩存的SIM卡內(nèi)容
  • 獲取一些手機信息
  • 連接數(shù)據(jù)網(wǎng)絡卧晓,上傳/下載數(shù)據(jù)芬首。

主動式命令可以認為是STK最重要的功能之一很多其他的功能都需要有主動式命令來構(gòu)成。
Data download to SIM逼裆,數(shù)據(jù)下載使用Envelope命令郁稍,下載點對點短消息或者小區(qū)廣播給SIM卡。
Menu selection胜宇,菜單選擇菜單選擇功能耀怜。一般是剛開機的時候,SIM卡發(fā)送菜單給手機桐愉,手機緩存下來财破,生成STK應用(如Android的CatApp)的主菜單。當用戶點擊進入應用的時候从诲,該菜單會顯示給客戶左痢,由用戶進行選擇,從而進入二級菜單或者觸發(fā)其他功能系洛。
Call control俊性,呼叫控制如果手機/SIM卡支持呼叫控制功能,則手機撥出電話的時候(以及發(fā)送SS/USSD)描扯,必須先將通話請求發(fā)送給SIM卡定页,SIM卡可以決定是否允許通話/拒絕通話/修改參數(shù)之后通話。
MO Short Message control by SIM绽诚,短消息控制類似于呼叫控制典徊,SIM卡也可以對發(fā)出的短消息進行控制杭煎。
Event download,事件下載SIM卡可以向手機發(fā)送主動式命令(SET UP EVENT LIST)卒落,要求監(jiān)聽一些列事件羡铲。當這些事件發(fā)生時,手機需要使用ENVELOPE命令通知SIM卡詳細的事件信息儡毕。這些事件包括:

  • 來電
  • 電話接通/掛斷
  • 位置更新
  • 用戶操作
  • 手機進入待機界面
  • 手機語言變化
  • 數(shù)據(jù)網(wǎng)絡狀態(tài)變化
  • 有數(shù)據(jù)到達

BIP(Bearer Independent Protocol)犀勒,承載無關業(yè)務 一般使用BIP來表示承載無關業(yè)務,其實就是數(shù)據(jù)網(wǎng)絡相關功能妥曲,包括5個主動式命令和2個事件贾费。主動式命令包括:

  • OPEN CHANNEL:打開數(shù)據(jù)通道
  • CLOSE CHANNEL:關閉數(shù)據(jù)通道
  • SEND DATA:發(fā)送數(shù)據(jù)
  • RECEIVE DATA:接收數(shù)據(jù)
  • GET CHANNEL STATUS:獲取數(shù)據(jù)通道狀態(tài)事件為:
  • Data Available:有數(shù)據(jù)到達
  • Channel Status Change:數(shù)據(jù)通道狀態(tài)變化

命令流程
因為手機與SIM卡之間的交互,總是手機主動給SIM卡發(fā)出命令檐盟,這意味著SIM卡是無法主動向手機發(fā)出命令的褂萧。如下圖所示:

這里寫圖片描述
為此,定義了一個名為Fetch的命令葵萎。當手機給SIM卡發(fā)送普通命令(如Status等)的時候导犹,SIM卡的返回值可以是:我有一條主動式命令要發(fā)出(值為91XX)。當手機收到這個返回值時候羡忘,就立即發(fā)送Fetch命令給SIM卡谎痢,從而在SIM卡的返回值中獲取到這條主動式命令。在手機執(zhí)行完命令之后卷雕,需要發(fā)送返回值給SIM卡节猿。如果沒有后續(xù)命令,SIM卡返回結(jié)束消息(值為9000)如下圖所示:
這里寫圖片描述
從上圖還可以看出漫雕,手機對命令的執(zhí)行結(jié)果滨嘱,通過Terminal Response發(fā)送給SIM卡。
Terminal Response可以是:

  • 成功
  • 失敗浸间,有臨時性問題太雨。如手機正在打電話,有些命令暫時不能執(zhí)行魁蒜。
  • 失敗囊扳,有永久性問題。如命令無法解析兜看,命令超出手機執(zhí)行能力锥咸,或者和網(wǎng)絡相關的命令被網(wǎng)絡拒絕等。

命令 根據(jù)前面的描述铣减,可以總結(jié)出來她君,STK功能通過如下4個命令實現(xiàn)

  • TERMINAL PROFILE:告知SIM卡手機對STK的支持能力脚作。初始化SIM卡的過程中發(fā)給SIM卡葫哗。
  • FETCH:手機從SIM卡獲取命令
  • TERMINAL RESPONSE:手機返回SIM卡執(zhí)行主動式命令的結(jié)果
  • ENVELOPE:手機發(fā)送數(shù)據(jù)或者事件給SIM卡缔刹。

流程舉例
下圖是一個最常見的STK流程

  • 開機SIM卡初始化階段,手機發(fā)送Terminal Profile給SIM卡劣针,告知手機的支持能力校镐。然后SIM卡將Menu菜單發(fā)送給手機,手機保存該菜單并生成CatApp捺典。
  • 開機之后鸟廓,用戶點擊CatApp,選擇菜單中的某一項襟己,開始用SIM卡的STK交互引谜。
  • SIM卡根據(jù)用戶選擇的主菜單的菜單項,返回select item命令擎浴,內(nèi)容是一個item 列表员咽,用于生成子菜單
  • 在子菜單中,用戶選擇某一項贮预,觸發(fā)不同的行為贝室。可能是顯示一段文本仿吞,或者是發(fā)送SS給網(wǎng)絡滑频,或者輸入一段文本,等等唤冈。
    STK流程

命令解析
STK命令為TLV結(jié)構(gòu)峡迷,即Tag(標簽),Length(長度)你虹,Value(值)凉当。如下圖所示

TLV結(jié)構(gòu)
命令的Tag在協(xié)議11.14的第13.1和13.2章節(jié)中定義,常用的有:

  • D0:Proactive SIM command tag
  • D3:Menu Selection tag
  • D6:Event download tag命令TLV結(jié)構(gòu)的Value部分售葡,由多個內(nèi)容TLV組成看杭。內(nèi)容的Tag在協(xié)議11.14的第13.2章節(jié)中定義,太多挟伙,不在這里一一列舉楼雹。每一種內(nèi)容的value結(jié)構(gòu)定義都不同,在協(xié)議的第12章定義尖阔,每一種內(nèi)容有一個小節(jié)詳細說明贮缅。

舉例
下面是一個顯示文本命令的實例。在手機開機時介却,會彈出歡迎界面谴供,這個歡迎界面就是STK的主動式命令“Display Text”發(fā)起的。
命令:

D0308103012101820281028D25085C0A656C768475286237FF0C6B228FCE60A84F7F75284E2D56FD8054901A4E1A52A1FF01

解析:

D0:  TAG齿坷,表示主動式命令
30:  LENGTH桂肌,0x30=48数焊,表示命令的VALUE部分長度為48 byte。
以下是命令內(nèi)容
81:  Command details tag
03:  Command details length
01:  cmd.number
21:  cmd.type -> DISPLAY TEXT
01:  cmd.qual -> 
  high priority;
  clear message after a delay;

82:  Device identity tag
02:  Device identity length
81:  Devices.source -> SIM
02:  Devices.dest -> Display

8D:  Text string tag
25:  Text string length
08:  Data coding scheme崎场,表示字串使用UCS2編碼
5C0A:  UCS2[0]: 尊
656C:  UCS2[1]: 敬
7684:  UCS2[2]: 的
7528:  UCS2[3]: 用
6237:  UCS2[4]: 戶
FF0C:  UCS2[5]: 佩耳,
6B22:  UCS2[6]: 歡
8FCE:  UCS2[7]: 迎
60A8:  UCS2[8]: 您
4F7F:  UCS2[9]: 使
7528:  UCS2[10]: 用
4E2D:  UCS2[11]: 中
56FD:  UCS2[12]: 國
8054:  UCS2[13]: 聯(lián)
901A:  UCS2[14]: 通
4E1A:  UCS2[15]: 業(yè)
52A1:  UCS2[16]: 務
FF01:  UCS2[17]: !
執(zhí)行結(jié)果就是:手機立即顯示“尊敬的用戶谭跨,歡迎您使用中國聯(lián)通業(yè)務干厚!”,并且顯示一會兒后會自動消失
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末螃宙,一起剝皮案震驚了整個濱河市蛮瞄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌谆扎,老刑警劉巖裕坊,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異燕酷,居然都是意外死亡籍凝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門苗缩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饵蒂,“玉大人,你說我怎么就攤上這事酱讶⊥硕ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵泻肯,是天一觀的道長渊迁。 經(jīng)常有香客問我,道長灶挟,這世上最難降的妖魔是什么琉朽? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮稚铣,結(jié)果婚禮上箱叁,老公的妹妹穿的比我還像新娘。我一直安慰自己惕医,他們只是感情好耕漱,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著抬伺,像睡著了一般螟够。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上峡钓,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天妓笙,我揣著相機與錄音若河,去河邊找鬼。 笑死给郊,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的捧灰。 我是一名探鬼主播淆九,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼毛俏!你這毒婦竟也來了炭庙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤煌寇,失蹤者是張志新(化名)和其女友劉穎焕蹄,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阀溶,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡腻脏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了银锻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片永品。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖击纬,靈堂內(nèi)的尸體忽然破棺而出鼎姐,到底是詐尸還是另有隱情,我是刑警寧澤更振,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布炕桨,位于F島的核電站,受9級特大地震影響肯腕,放射性物質(zhì)發(fā)生泄漏献宫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一实撒、第九天 我趴在偏房一處隱蔽的房頂上張望遵蚜。 院中可真熱鬧,春花似錦奈惑、人聲如沸吭净。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寂殉。三九已至,卻和暖如春原在,著一層夾襖步出監(jiān)牢的瞬間友扰,已是汗流浹背彤叉。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留村怪,地道東北人秽浇。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像甚负,于是被迫代替她去往敵國和親柬焕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容