iOS 15.0〜16.6.1向け脱獄である「Dopamine」ですが、iOS 15.xとiOS 16.xそれぞれに一部環境で発生する問題が存在していました。
この点について開発者であるOpa334氏より「原因の特定」と「発生頻度の軽減」の可能性が報告されています。
Dopamineでの問題点を発見
I recently discovered that apparently using DYLD_INTERPOSE wastes a fuck ton of RAM. Dopamine uses it for every single process and this seems to be the root cause why I had to patch the jetsam limits to be higher to stop stuff from crash looping.
— opa334 (@opa334dev) July 4, 2024
Dopamine開発者であるOpa334氏より、Dopamineに存在する問題点を発見したとの報告が行われています。
それによると「DopamineではDYLD_INTERPOSEを全てのプロセスで使用しているが、大量のメモリを消費していることが判明した」とのこと。
また、クラッシュループが発生してしまうためにJetsamのメモリ制限値を高くするパッチが必要となっていたのも、これが根本的な原因となっていたそうです。
iOS 16.xでの「通知問題」の原因
さらに、この問題が「iOS 16.xで通知受信に関する問題の原因となっていた可能性」が報告されています。
iOS 16.xのDopamine環境では、一部環境で通知が正常に受信できなかったり、受信時に問題が発生したり…という報告が以前から出ていたりしました。
Jetsam制限の緩和を行なっていたとしても、環境によりそれが十分ではなかったためにアプリ拡張機能がクラッシュループに陥り、結果として通知に問題が出ていた可能性がある模様。
iOS 15.xでのSpinlock Panicの発生低減にも?
また、iOS 15.xではランダムにデバイスが再起動してしまう「Spinlock Panic」という問題が以前から存在しており、これまでも修正ができるかどうか…発生頻度を低減できるかどうか…とOpa334氏により調査・作業が行われ続けてきました。
今回、Opa334氏からは「メモリ使用量が増加した際のSpinlock Panic発生が、今回の問題が潜在的な理由となっていた可能性がある」と報告。
そのため、今回の問題を回避することで発生頻度を低減できるかもしれない様です。
実際、「DYLD_INTERPOSEの問題はC関数フックを使用することで回避できる」とのことですが、XinaA15 v2.xではその様な仕様となっており、DopamineよりもSpinlock Panicの頻度が少ないとも報告されていた事があります。
そう考えると、DopamineとXinaA15 v2.xの発生頻度の差に説明が付く模様。
〆
今回判明したこと、調査に基づいて今後検討や作業を行なっていくとのことですが、最近あまり時間がないともされており、アップデートにはもう少し時間がかかるかもしれません。
ただ、Spinlock PanicについてはiOS側のバグが根本原因とされているため完全修正は難しいものの、発生頻度の低減が実現されるならば嬉しい対策となりそうです!
iOS 16.xでの通知問題に関してはそこまで多くの環境で発生している感じではないのですが、報告を見る限りでは少なくはないため、こちらも解決されればより安定して使える様になるのかなと…!
コメント
深夜にリスプリング?ユーザースペース再起動?してる現象も収まるか……?
通知は来るけどバッジがつかないことがある
これはバグなのだろうか
ios16.3.1 14promax
16.2バッテリー消費が激しくなった気かするけど
原因はそれ?突き止める方法あります?
1日1〜2回ペースでSpinlock Panicで苦しめられてたけど1.1.11で脱獄し直したら現在1週間安定中
最新verだとまっさらな状態でもSpinlock Panic1日1〜2回発生してた