1

iOS 5のクラスのメソッドをフックMPIncomingPhoneCallControllerして、電話がかかってきたときに何かを実行したいと考えています。私が使う

Class _$MPIncomingPhoneCallController = objc_getClass("MPIncomingPhoneCallController");

MSHookMessage(_$MPIncomingPhoneCallController, 
              @selector(updateLCDWithName:label:breakPoint:), 
             (IMP) &Hook_LCD, 
             "pre_");

をフックupdateLCDWithName:label:breakPoint:しますが、失敗しました。

これどうやってするの?

4

1 に答える 1

1

フックしようとしているクラスは、着信がある場合にのみ SpringBoard にロードされる IncomingCall.serviceBundle にあります。実際にいつロードされたかを判断するには、フックする必要がありますSBPluginManager loadPluginBundle:。ロードされたバンドルが になるまで待ちcom.apple.mobilephone.incomingcallます。そうして初めて、必要なものをフックできます。

于 2013-05-09T14:22:57.427 に答える