(iOS)私有API的使用(原創)


最近在做企業級程序,需要搞設備的udid等信息,但是ios7把udid私有化了,不公開使用。所以研究了一下ios的私有api。

調查了一下文章,發現這方面的文章不多,國內更是不全,高手們都懶得寫基礎教程哈,我就在此說一下如何調用ios的私有api吧。

首先要使用class-dump 和dumpFrameworks.pl 工具 將ios的framework導出來。

以下是工具的下載地址:

class-dump下載地址http://www.codethecode.com/projects/class-dump/

DumpFrameworks.pl原來的下載地址不能用了,我在github上的別人的越獄程序里面找到的。

下載地址:https://github.com/shuhongwu/HackSpringDemo/blob/master/DumpFrameworks.pl

 

將下載好的 class-dump 放入usr/local/bin 下. 

   如果 ‘/usr/local/bin’ 不知道在哪里,可以在terminal 下輸入 ‘open -a Finder /usr/local/bin’ 以便打開目錄.

這個bin文件夾  就是所有命令行的可執行文件所在地,並不一定是這個目錄,要看各自的系統。 

因為dumpFrameworks.pl中對ios庫的版本路徑可能不一定正確了,所以要自己手動改正。

用terminal直接執行dumpFrameworks.pl就可以了。

會將所有到處的頭文件,放到user/Headers文件夾下。

將想用的頭文件,組成xxx.framework/Headers的樣式。導入工程。

但是bulidsetting 設置framework的search path 時要設置真實的私有庫路徑,因為我們要用它的可執行文件,只有頭文件是不行的。

例如:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/PrivateFrameworks

這樣就可以調用ios的私有庫了

成功用他的私有庫  調取了 機器的udid。

-----------------2014/02/23----------------更新

網友對我提問,我就又寫了一個demo,結果udid  讀出來是null。最后在stackoverflow上查到是蘋果做過處理了,據說是驗證機制,系統和越獄用戶可以實現這個方法,其他得不到結果,目前還不知道通過其他方式獲取。如果有知道的看到了能回復一下,萬分感謝。

---------------demo------------------------------

https://github.com/hikoming/TestPrivate

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM