1

私は脱獄の微調整を書いています。アプリ ストア ベースのアプリを含むすべてのアプリに接続しています。一部のデータをキャプチャするためにファイルを作成する必要があります。この回答に基づいて、すべてのアプリが SpringBoard に通知を送信し、SpringBoard がファイルを /var/mobile/application に書き込むようにするのが最善の方法です。しかし、CFNotificationCenterAddObserver をコンパイルできません。「....への呼び出しに一致する関数はありません」というエラーが発生します。以下はコードスニペットです。そうそう、「CoreFoundation.h」と「CFNotificationCenter.h」を含めました (それほど愚かではありません :-)

以下のコードのアイデアは、SpringBoard からの通知をリッスンし、他のすべてのアプリからの通知を投稿することです。

このエラーを解決する方法を知っている人はいますか。いくつかの github サンプル %ctor を見ましたが、消化できませんでした...

void LogEvent(CFNotificationCenterRef center,
              void *observer,
              CFStringRef name,
              const void *object,
              CFDictionaryRef userInfo)
{
    NSLog(@"RecordEvent");
}
%hook UIApplication
-(void)applicationDidFinishLaunching:(UIApplication*) application
{
    if(  [[[NSBundle mainBundle] bundleIdentifier] isEqualToString:@"com.apple.springboard"]  )
    {

        CFNotificationCenterAddObserver(
            CFNotificationCenterGetDistributedNotifyCenter(),
            NULL,
            &LogEvent,
            @"RecordTouch",
            NULL,
            CFNotificationSuspensionBehaviorDeliverImmediately);
    }

    %orig;
}
%end
4

1 に答える 1