Tweak on Tweak
この記事は iOS Jailbreaking Advent Calendar 2015 の9日目の記事です。
はじめに
@r-plus の記事面白いですね。私は、最近CydiaSubStarteアドオンを作って遊んでいませんので、以前遊んでいたことを思い出しながら書いてみようと思います。
TweakのTweakについて考える
CCNowPlayingでAuxo 3に対してのTweakを実現して、Auxo 3のViewの上に対してボタンを配置していました。
CydiaSubstrateはプロセスが読み込まれる際に、アルファベット順で /Library/MobileSubstrate/DynamicLibraris
のdylibをロードするようです。もし自分のdylibが引っ掛けたいdylibより名前が若ければ引っ掛けれませんよね。
そういった場合、SpringBoardのロード後に %init
を実行し、擬似的に遅延ロードを起こしています。
また、対象とするdylibのロードのタイミングが違う場合は、それによって適宜ロードするタイミングを変えてやります。
%hook SpringBoard
- (void)applicationDidFinishLaunching:(id)application
{
%orig;
if (IS_IOS8()) {
%init(Auxo3);
}
}
%end
%init(hoge)
のhoge
に関しては、@r-plus の7日目の記事に書かれているMeta class hooking.と同じですね。
その結果、このような感じでAuxo 3に対してExtension出来ます。
%group Auxo3
%hook UminoControlCenterBottomView
- (void)scrollViewWillBeginDragging:(UminoControlCenterBottomScrollView *)scrollView
{
[self alphaButtonWithScrollView:scrollView];
%orig;
...
Author And Source
この問題について(Tweak on Tweak), 我々は、より多くの情報をここで見つけました https://qiita.com/wa_kinchan/items/476371914142ab7ee1db著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .