- 先日iPad Air 9.3.2を脱獄してから久しぶりにいろいろ遊んでます。
- ech0chrome iPhone Repo on Cydia (昔私がビルドしたソフト群)も一部使えました。ncompressとか(tar.Zとか今は使われてるんでしょうか…)
- しかし、nkfやPuTTY、OpenHSPは「Illegal Instruction: 4」と出て動かない。
- 少し調べたところ、http://theiostream.tumblr.com/post/63923259800/patching-iphone-gcc-binaries-to-armv7s に行き当たりました。
ldr r3, [r3]
命令がarmv6/v7専用命令になっていて、armv7sで解釈できないのが原因とのこと。armv7sで解釈できるように手直しすればよいそうです。crt1.oだけがおかしく、原因は不明とのこと。
#!/bin/sh
for file in "$@";do
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' $file
ldid -S $file
done
- まあ、当時はiPhone 3GSやiPhone 4の時代だったので、v7sのことなんて頭になかったですからねぇ…
- ビルドスクリプト、もしあったら、パッケージ化しようと思います。バックアップは今何処^^;(開発機のiPod Touch 3rdはヒューズが飛んだ状態)
てか、私の出してるiOS gccは間違いなく壊れたバイナリを出力するんですが、どうしたもんか。3.1.2用のtoolchainをセルフコンパイル用にポートしただけなので、新たにtoolchainを作る能力は私にはない^^;
ちなみに、Illegal Instruction: 4はこのパッチで直せますが、mmap error 22は直せません。
- https://forums.developer.apple.com/thread/7524 によると、32bit dylibを読み込むにはMach-Oのヘッダがどうこうという話っぽいです。
- 話は変わりますが、アプリ領域にアクセスするのが不便なのでapplinkなるソフトを作ってましたが、これもiOS8で使えなくなってた模様。com.apple.mobile.installation.plistがなくなったため。
- 突貫工事で新たに作りました。Pythonが必要ではありますが。しかもリンク名がアプリ識別子になる制限付き。
- https://gist.github.com/cielavenir/089ae47301458db8e2e04a67f72132b3