The is how to patch these binaries without recompiling or when source code is not available
perl -pe 's/\x{00}\x{30}\x{93}\x{e4}/\x{00}\x{30}\x{93}\x{e5}/g;s/\x{00}\x{30}\x{d3}\x{e4}/\x{00}\x{30}\x{d3}\x{e5}/g;' < old_ios_binary > old_ios_binary_patched
chmod +x old_ios_binary_patched
ldid -s old_ios_binary_patched
mv old_ios_binary old_ios_binary_original
mv old_ios_binary_patched old_ios_binary
If you have gnu sed in iOS or OS X, you can patch directly without the temp file in one step
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' old_ios_binary
ldid -s old_ios_binary
iphone-gcc patched package for iPhone 5 / iPad 4 is here
http://code.google.com/p/apiexplorer/downloads/list
Thank you so much for this!!! I was wondering why NTPdate was croaking on my iPhone 5 but was fine on my iPhone 4 and iPad 3 ...
ReplyDeleteThis works brilliantly. Many thanks !
ReplyDeleteOkay this looks FANTASTIC! But as a new developer, I am unsure where my ios_binary or the ios_binary_patched is!!!
ReplyDeleteCan somebody do me the great favor or posting the ACTUAL commands for me??
I have the patched binary... How to I determine my old binary?!
ReplyDeleteCan somebody do me the great blessing of giving me the steps to follow?
Thanks so much ahead of time, guys.
Büyük posta. Paylaşım için teşekkürler.
ReplyDeleteI wrote a small blog post about why this works: http://theiostream.tumblr.com/post/63923259800/patching-iphone-gcc-binaries-to-armv7s
ReplyDeleteTo the author: How did you come up with this?
Ask saurik
ReplyDeleteAfter completing those steps it says new error:
ReplyDeletegcc: Internal error: Illegal instruction: 4 (program cc1)
Please submit a full bug report.
See for instructions.
What to do?
uname -a: root:xnu-2784.20.34~2/RELEASE_ARM64_T7001 iPad5,4 arm64 J82AP Darwin
uname -m: iPad5,4 (ipad air 2)
dpkg --print-architecture: iphoneos-arm
Because you have an older version of gcc and related libraries on a 64 bit device. please upgrade your gcc to clang in iOS.
ReplyDelete