mitumblr.


語学とiPhoneとインターネット
グルメ、医学、数学、物理なんかも・・

画像の事前分布とは? - BayesWiki →

Tagged: imageprocessing

MobileStrate問題解決

MobileSubstrateの使えなくなったiPhone4であるが、結局再び4.1CFWで復元することとした。再び、林檎ループを食らってしまったが、
http://modmyi.com/forums/general/710060-solution-iphone-shut-off-during-boot-stuck-apple-logo.html
に従い、

cd /Library/MobileSubstrate/DynamicLibraries
mkdir backup
mv *.dylib backup

を行って再起動し、MobileSubstrate拡張が入っていない状態で立ち上げることが出来た。そこでいくつかのdylibを手動で戻し、respring後再起動にて確認する作業を行った。これは安全に行うことができ、昨日のようにMobileSubstrateが無効になることはなかった。

/Library/MobileSubstrate/MobileSubstrate.dylibがシンボリックリンクなのは、最新のMobileSubstareteでの変更によるもので、インストール失敗によるものではなかった。アップデート前のMobileSubstrateとは、ファイルやディレクトリ構成が変更になっているようだ。

結局問題を起こしたのは、直接debからインストールしたQuickDo 1.6.3であった。最新版のQuickDoはUIが気に入らず、iOS4.0.1では古いものを利用していたのだが、これが4.1で問題を起こしたらしい。インストール後、再起動するまではrespringしても正常に動いていたので甘く見てしまったのだ。

もう一つの問題はSnappyを起動すると、SpringBoardが落ちてSafe Modeに行ってしまうようだが、それ以外は4.0.1で使っていた環境に戻すことが出来た。

疲れて一時は凹んだが、再びMobileSubstrate拡張が問題を起こした時も、同じように対処できることが分かったのは収穫だった。



ああMobileSubstrate、
脱獄アプリの神様は悪戯好き。
(お前はRock Extensionか?)
お前のいないiPhoneなんて、甘口カレーみたいなものだ。

Tagged: iPhone

MobileSubstrate無情

昨日iPhone4 (4.0.1JB)でCydiaアプリを複数アップデートしたところ、その後のrespringは問題なかったが、再起動するとSpringBoardがクラッシュし、林檎ループに陥った。
翌日の話ではMusic Controlsアップデートのplistが壊れていたらしい。
林檎ループ中も何度かSSHアクセスに成功したため、
http://vicksfeels.wordpress.com/2010/05/12/safe-mode-iphone/
に従って、
touch /var/mobile/Library/Preferences/com.saurik.mobilesubstrate.dat
でSafe Modeに落とそうと試みたが、不成功。
不思議なことにSSHは有効なのだが、USB接続したiPhoneがなぜか認識されず、DiskAidなどによるAFCによるアクセスが全く出来なかった。
ここで焦って、浅はかにもMobileSubstrate全体を隠してやろうと
mv /Library/MobileSubstrate /var/root
を実行したところ、次の再起動ループからSSHすらアクセスできなくなりお手上げに。

PwnageToolで作った4.1CFWで復元することとした。
4.1も悪くないかと思い、一晩かかってそろそろ満足いく環境までもう少しと思っていた。
4.0.1環境で使っていた大量のMobileSubstateアプリを調子に乗ってインストールし、respringは問題なかった。
しかし再起動したところ、再び林檎ループに嵌ってしまったのだ。

またもやSafe Modeに落とすのは失敗したが、ループ中SSHから
mv /Library/MobileSubstrate/DynamicLibraries /var/root
killall SpringBoard
mv /var/root/DynamicLibraries /Library/MobileSubstrate
により、今度はMobileSubstrateが無効の状態で立ち上げることに成功した。
そこで再起動を何度も試しながら、Cydiaで犯人探しを始めた。

ところがそのうちSpringBoardがクラッシュし、DynamicLibrariesを元の場所に戻す前に再起動が始まってしまった。
その時は、MobileSubstrate無効のまま問題なく起動した。
そこでDynamicLibrariesを元に戻してまた再起動したが、MobileSubstrateが有効にならないことに気付く。
MobileSubstrateを再インストールし再起動したが、状況は変わらない。

MobileSubstrateのインストールは、最初にファイルが全部置かれるわけではなく、再起動時に重要な作業が行われるらしい。

ところが再起動しても
/Library/MobileSubstrate/MobileSubstrate.dylib
 -> /Library/Frameworks/CydiaSubstrate.framework/Libraries/SubstrateInjection.dylib
というシンボリックリンクが残っていて、インストール後の処理に失敗しているようだ。
多くのアプリを道連れにMobileSubstrateは削除した。
しかしどうインストールしても、MobileSubstrateが有効にならない。

redsn0wでre-jailbreakしてみるなど、試す価値はあるかもしれないが、確実に修復するには復元しかなさそうだ。

しかし、今手元にはMobileSubstrateの使えない4.1脱獄iPhoneがあるのだ。
原因アプリが特定出来ない以上、4.1で復元しても同じ環境にすれば林檎ループを起こすかもしれない。
4.0.1に戻せば元の環境が得られるかもしれない。

今はちょっと頭を冷やしてみよう。
沢山の便利な機能が使えないけれど・・



ああMobileSubstrate、
どうして林檎ループを起こすのか?
(お前はRock Extensionか?)
Safe Modeは肝心な時に役に立たない。



[参考]
http://modmyi.com/forums/general/710060-solution-iphone-shut-off-during-boot-stuck-apple-logo.html
http://modmyi.com/forums/general/710060-solution-iphone-shut-off-during-boot-stuck-apple-logo-21.html#post5245843

Tagged: iPhone

Lisper のためのゲーデルの不完全性定理 - あどけない話 →

Tagged: math