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