MDM獲取UDID的幾個技術點
title: 獲取UDID
date: 2018-02-02
categories:
tags: Objective-C,
MDM獲取UDID的幾個技術點
MDM服務
MDM - Moblie Device Management
介紹MDM的文章:
https://www.jianshu.com/p/6112050ea31a
MDM是服務於企業級應用的一種模式。
MDM可以突破許多App Store應用的束縛。
目前我實踐的有獲取UDID。
還有一個功能會吸引一些人:靜默更新(無提示的強制更新)。這個功能我沒有進行過實驗和驗證,是從幾個方面有提示和比較可信的推論。有興趣的可以進一步研究。
獲取UDID的證書
關於如何獲取手機的UDID。目前可行的方法是通過安裝描述檔案來獲取到裝置的真實UDID。
網上已經有許多相關的文章,大多數轉載自這一篇:
http://www.skyfox.org/safari-ios-device-udid.html
這個是關於證書【eizih
http://www.rootmanager.com/iphone-ota-configuration/iphone-ota-setup-with-signed-mobileconfig.html
本文僅介紹iOS方面的技術點,這篇文章有關於證書上傳伺服器的內容。瞭解原理可以看看。想拿現成就用下面舉例的內容,記得兩點就行:1、更改自定義的內容;2、檔案的格式為.mobileconfig
描述檔案舉例:
<!--參考:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/ConfigurationProfileExamples/ConfigurationProfileExamples.html-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<dict>
<key>URL</key>
<string>你接受資料的URL</string> <!--接收資料的介面地址-->
<key>DeviceAttributes</key>
<array>
<string>UDID</string>
<string>IMEI</string>
<string>ICCID</string>
<string>VERSION</string>
<string>PRODUCT</string>
</array>
</dict>
<key>PayloadOrganization</key>
<string>安裝顯示的組織者</string> <!--組織名稱-->
<key>PayloadDisplayName</key>
<string>安裝顯示標題</string> <!--安裝時顯示的標題-->
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadUUID</key>
<string>十六進位制,格式為:8-4-4-4-12</string> <!--自己隨機填寫的唯一字串-->
<key>PayloadIdentifier</key>
<string>你的識別符號</string>
<key>PayloadDescription</key>
<string>安裝顯示內容</string> <!--描述-->
<key>PayloadType</key>
<string>Profile Service</string>
</dict>
</plist>
關於獲取UDID的配置檔案有上述的格式。URL
是把UDID傳送給伺服器的介面array
裡面的資訊是獲取的裝置資訊PayloadOrganization
是組織者標識PayloadDisplayName
是顯示的標題PayloadDescription
是顯示的描述
證書的簽名
關於證書的簽名有兩種方式:使用SSL證書來進行簽名;使用描述檔案來進行簽名
我在處理的過程中使用的是SSL證書來進行簽名。
最好準備有如下六個檔案:ca.crt
額,根證書ssl.crt
公鑰ssl.pem
公鑰的一種格式,還是公鑰ssl.key
私鑰unsign.mobileconfig
未簽名配置檔案sign.mobileconfig
已簽名配置檔案(佔位作用,實際是未簽名檔案拷貝的)
注意的是SSL證書的頒發機構要和CA證書是同一家。
簡單介紹一下ssl.crt
和ssl.pem
。ssl.crt
和ssl.pem
是可以互相匯出的。
這兩個檔案內容是一樣的。區別在於格式。這個檔案其實是ssl證書的私鑰。pem是一種格式。一般情況下預設是這種格式。
ca.crt如何獲取
我在使用中用了兩家公司的。一個是symantec
GeoTrust
。其實不論哪一家,都是可以獲取到的,網上有很多方法,現在介紹一種簡單粗暴的。
Chrome中,訪問官網,然後通過點選瀏覽器輸入框的https:/****
前的鎖。來找到證書。拖動詳情裡的證書可以儲存在電腦。(我改機構後使用的證書是和知乎的一樣是RSA,GeoTrust官網的是SHA2。這個狀態是補這篇部落格的時候測試的)
如果獲取的證書的格式不正確,可以轉換格式。轉
.pem
來保證後續處理。
ssl檔案需要伺服器的同事去請求。
檔案準備全之後。開啟終端,進入到存放這些證書的資料夾。執行如下的命令
openssl smime -sign -in sign.mobileconfig -out sign.mobileconfig -signer ssl.crt -inkey ssl.key -certfile ca.crt -outform der -nodetach
上面的crt檔案
都可以改為pem檔案
.
關於簽名和未簽名
簽名後的證書在安裝的時候是綠色。未簽名的證書是紅色。
簽名的證書如果過期之後,瀏覽器可能顯示出證書內容,是亂碼。
未簽名證書也有可能被瀏覽器展示出來,是明文。
相關文章
- 如何獲取安全獲取蘋果udid,imei蘋果
- Android之獲取手機UDIDAndroid
- 蘋果手機獲取UDID蘋果
- C#中的幾個簡單技術點C#
- 獲取時間戳,幾個時間點的時間戳時間戳
- 基於HTTP協議的幾種實時資料獲取技術HTTP協議
- AI技術來干預麥克風獲取聲音並不是一個新奇的點子AI
- python怎麼獲取當前是幾點?Python
- “技術轉產品”比產品更噁心的幾個點
- 利用RectGetter元件獲取控制元件位置尺寸實現的幾個高階效果和功能 | 掘金技術徵文控制元件
- bat之獲取指定幾個月前的月份資訊BAT
- Python獲取星期幾Python
- Spring - 獲取ApplicationContext的幾種方式SpringAPPContext
- 技術人溝通中的幾個誤區
- 技術管理者的幾個實用技巧
- 如何獲取最新安全資訊與技術
- 獲取華為HCIE,需要具體哪些技術
- 獲取倒數第幾個元素程式碼例項
- jQuery獲取表單值及幾個表單事件jQuery事件
- Java獲取當前星期幾Java
- 技術選型的一點個人思考
- 程式設計師寫好技術文章的幾點小技巧程式設計師
- android獲取控制元件的幾種方法Android控制元件
- 大資料量獲取TopK的幾種方案大資料TopK
- 獲取當天是本月的第幾周
- PG獲取檔案大小的幾種方式
- 技術人溝通中的幾個常見問題
- PHP獲取和操作配置檔案php.ini的幾個函式PHP函式
- [急⚠] BasePage 如何封裝獲取 elements 的第 x 個的點選?封裝
- 技術負責人所需的四個核心能力,你具備幾個?
- 快取技術快取
- 獲取或操作DOM元素特性的幾種方式
- 快速提高程式設計技術的幾個小竅門程式設計
- jquery獲取元素節點jQuery
- 前端常用的快取技術前端快取
- 技術討論 | 如何利用Microsoft Edge漏洞獲取本地檔案?ROS
- 獲取上個月
- java學習路程(javaEE)之獲取表單資料、獲取引數、request域、會話技術(Cookie)Java會話Cookie