
SkypeとMobileSubstrateの問題の説明
- Lamiyi
- 0
- rhahw
Saurikは、SkypeとMobileSubstrateでユーザーが抱えている問題について、非常に詳細なメッセージを投稿しました。このメッセージはCydiaに投稿されましたが、参考までに以下でご覧いただけます。
-----
SkypeとMobileSubstrateのバグについて、たくさんのメールをいただいています。すべてが修正されたことに大変感謝しているユーザーもいれば、まだ問題を抱えていてMobileSubstrateのダウングレードを希望しているユーザーもいます。
この手紙は後者のグループの人々に向けたもので、問題と正しい解決方法、そして一見すると MobileSubstrate が原因のように見える理由 (実際にはそうではない) を完全に説明することを目的としています。
真面目な話、MobileSubstrateはあなたの問題ではありません。MobileSubstrateを0.9.2804-1にアップグレードしたら動作し、0.9.2805-1にアップグレードしたら動作しなくなったというのは理解しています。だからといって、0.9.2805-1が問題だというわけではありません。デバッグはそれよりもはるかに複雑な問題です。
MobileSubstrate は、「拡張機能」が既存の「アプリケーション」のコードを変更できるようにするフレームワークです。
典型的な例をいくつか挙げます。
* WinterBoard: グラフィックやその他のファイルの読み込み方法を変更します。
* SBSettings: ステータス バーを変更して、便利な設定パネルをドロップダウンします。
* Backgrounder: 任意のプログラムにコードを追加して、バックグラウンドで実行します。
* VoIPover3G: プログラムを騙して、WiFi (3G ではない) 上にあると信じ込ませます。
ご想像のとおり、これは少々難しい作業です。拡張するプログラムを壊さないように細心の注意を払わなければなりません。壊してしまうのは簡単ですから。
主なツールは libsubstrate (拡張機能でよく使用される) です。これは難しい部分を実行するためのツールをいくつか提供し、開発者が関数をフックできるようにします。
MobileSubstrate自体は、他の拡張機能(libsubstrateを使用する場合もあります)をロードする以外は何もしません。そのため、通常は無害です。
これにより、「モバイル セーフ モード」を通じて安全性の層を提供できます。
拡張機能によって SpringBoard がクラッシュした場合、MobileSubstrate がこれを検出し、拡張機能が読み込まれていない状態でデバイスを一時的に使用できるようになります。
その目的は、Cydia に安全にアクセスしてバグのあるパッケージを削除できるようにすることです。パフォーマンスを向上させるためにデバイスをセーフ モードで実行したり、ユーザーを困らせたりイライラさせたりすることではありません ;P。
さて、Skypeについてですが、Skypeは読み込み時に非常にトリッキーな動作をします。このような動作をするプログラムはSkypeだけではないかもしれませんが、よく知られているのはSkypeだけです。
この奇妙な読み込みメカニズムのため、MobileSubstrate 0.9.2690-1 自体、つまり拡張機能ローダーは、しばらく使用すると Skype がクラッシュする原因となっていました。つまり、「dyld」内の何かが「すぐに」使用されてしまい、最終的に誤った方法でアクセスされてクラッシュしてしまうのです。
これが大きなニュースになったのは午前2時で、私は一日中旅行していました。修正する立場になかったので、ハックバージョン0.9.2804-1をリリースしました。これは、人々が「動作する」と主張するものです。このバージョンは、Skypeに拡張機能を全く読み込まないという、意図的に動作しないバージョンです。
翌朝、何が問題なのかを実際に突き止め、MobileSubstrate 0.9.2805-1をリリースしました。このバージョンは100%動作します。
本当に、信じてください。Skypeでは100%正常に動作します。
つまり、0.9.2805-1 は実際に Skype にインストールされた拡張機能を読み込むことになります。これらの拡張機能にバグ(Skype 固有のバグも含む)がある場合、Skype は正常に動作しなくなります。
したがって、MobileSubstrate をダウングレードすることは正しい答えではありません。壊れた拡張機能を修正することが正しい答えです。
しかし、話はそれよりもさらに複雑です。拡張機能が Skype に読み込まれるようになったため、Skype のプロセスは以前よりも少し複雑になっています。Skype のコードとサードパーティのコードの両方を使用しているからです。
さて、先ほどの話に戻りますが、MobileSubstrate 0.9.2690-1 が Skype で問題を引き起こし、それに気づくまでにしばらく時間がかかりました (通常は約 45 秒)。何かが問題を「刺激」する必要がありました。
Skypeはより複雑になり、使用するコードも増え、動作も高速化し、不具合が発生する可能性も高まっています。dyldバグに遭遇した場合、クラッシュがさらに頻繁に発生し、深刻な問題を引き起こす可能性があります。
しかし、私は MobileSubstrate 0.9.2805-1 にはもうそのバグは存在しないと言いましたが、それは本当に本気でした。
残念ながら、拡張機能の開発にMobileSubstrateを実際に使っている開発者は皆無です。中には正当な理由がある開発者(mAdvLock)もいれば、そうでない開発者(IntelliScreen)もいます。
つまり、これらのMobileSubstrate以外の拡張機能は、MobileSubstrateが以前引き起こしたのと同じ根本的な問題を引き起こしているのです(そして常にそうでした)。つまり、dyldを不安定にし、Skypeがクラッシュしてしまうのです。しかし、拡張機能がそれぞれ異なる問題を引き起こしているため、症状は異なって見えます。
このため、MobileSubstrateからBetter Tap to Unlock(この問題とは全く関係ないように見えるので困惑します ;P)まで、さまざまなアプリが壊れているという報告が殺到しています。WinterBoardのテーマを使用していることが原因だと「特定」した人もいました。
しかし、それはまずあり得ないことです。Skypeは複雑ではありますが、他のプログラムと何ら変わりません。読み込みがおかしいので、MobileSubstrateはアップデートが必要でしたが、毎日使っている拡張機能が突然動作しなくなるようなことはあってはなりません。実際、これらの拡張機能がバグの原因ではありません。
したがって、MobileSubstrate をアンインストールまたはダウングレードしたり、特定の拡張機能を削除したりすると、役立つように見えるかもしれませんが、読み込まれた拡張機能を破棄することで、問題を Skype の目立たない場所に押し付けているだけです。
あなたが抱えているこれらのバグに対する唯一の正しい修正は、私ではなく、MobileSustrate ベースではない拡張機能のベンダーから提供される必要があります。
したがって、A) なぜこのようなことが起こるのか (コードのロードが早すぎると dyld が破損する)、B) MobileSubstrate をアップグレードする前は動作しているように見えた理由 (バグは常に存在していたが、プログラムが複雑になると、それに早く気付く) がわかりました。
現在知られているMobileSubstrateベース以外の拡張機能のリストを以下に示します。これらのパッケージをすべて削除しても問題が解決しなかったというユーザーは今のところ一人もいませんが、Cydiaには他にも同様の拡張機能が存在する可能性があります。
* IntelliScreen
* mAdvLock
* mCoolPhone
* MobileHook
* MobileLog/iLog
* Rock拡張機能
これらのパッケージをアンインストールしたくない場合は、それぞれの開発者に連絡して、Skype 用に修正および更新してもらってください。
本当は、MobileSubstrateのローダーを使うように修正すべきです。そうすれば、Skypeで使えるだけでなく、将来的に問題を修正するためのアップグレードをリリースしても(Skypeでの私の返信時間を見ればわかるように、私は気にかけています)、引き続き正常に動作するようになります。
これは、SpringBoard に独自のエントリを配置するのではなく、.dylib を DynamicLibraries フォルダーにリンクするだけです。修正には 5 分以上かかることはありません。
実際、これは非常に簡単なので、少しの技術知識があればユーザー自身で行うことができます。元の開発者がこれらの修正を行う必要さえありません。
さらに言えば、この状況は非常に面倒なので、十分な需要があれば、これらの拡張機能を改造して MobileSubstrate を使用できるようにするツールをリリースするかもしれません。
しかし、それがこの問題の正しい解決策だとは思いません。(それに、いつそれを書く時間があるか分かりません :(。)
-----

Related Posts

RIM、Mac向けソフトウェアツールを約束

Apple、脱獄を警告する文書を公開

新たな「M2 Max」ベンチマークがリーク
![電子書籍リーダーの未来 [ビデオ]](https://image.lamiyi.com/adampgdm/f6/a3/41229-64.webp)