iphone 2.0 firmware 需要CHECK每個應用程式的簽名,如果不通過,就會自動KILL.由於校正機製做到了核心中很多地方,簡單的給核心打補丁很難解決.
1. codesign利用apple sdk的工具進行self-sign
mac$ export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate mac$ codesign -fs "CertificateName" ProgramName
參考下述APPLE文檔如何建立自我簽署憑證.
http://developer.apple.com/documentatio … ion_2.html
2. ldid
在你的IPHONE上用Cydia安裝ldid, 然後運行
ldid -S programname
[自己找到xcode的編譯目錄build/Release-iphoneos目錄 將程式包用WinSCP之類的工具傳到iphone的Applications目錄
然後做數位簽章:
1.需要先在iphone安裝ldid,命令列: apt-get install ldid
2.然後簽名,命令列: ldid -S YouProgramName
你的程式就可以拷出來安裝到其他破解的2.0的iphone上了]
3.sysctl
我在機器上試了1和2都沒有作用,只有這種可以讓我的程式運行,不過這個是有其他影響的,不過可以很容易恢複,或者簡單重啟就行了.
取消codesign check:
sysctl -w security.mac.proc_enforce=0
sysctl -w security.mac.vnode_enforce=0
恢複codesign check:
sysctl -w security.mac.proc_enforce=1
sysctl -w security.mac.vnode_enforce=1