Hook后还原不回去

我的问题和这个很像 :http://bbs.iosre.com/t/hook-backboardd-springboard/632
区别在于,我这个程序不是用theos也不是用iosopendev写的
这是一个原有的项目,hook程序就单独用的xcode写的,然后再和普通的app一起打包

//hook
MSHookMessageEx(objc_getClass(“SpringBoard”), @selector(lockButtonUp:fromSource:), (IMP)replaced_SpringBoard_lockButtonUp, (IMP *)&original_SpringBoard_lockButtonUp_);

    MSHookMessageEx(objc_getClass("SpringBoard"), @selector(_lockButtonDown:fromSource:), (IMP)replaced_SpringBoard_lockButtonDown_, (IMP *)&original_SpringBoard_lockButtonDown_);

//具体实现
//屏蔽锁屏键松开动作
static IMP original_SpringBoard_lockButtonUp_;

void replaced_SpringBoard_lockButtonUp_(SpringBoard* self, SEL _cmd,struct _IOHIDEvent *fp8,int arg2)
{
// static int i = 0;
// i++;
NSLog(@“勾取系统的lockButtonUp函数”);
if (!isShielding) {
NSLog(@"%s %d",FUNCTION,LINE);
original_SpringBoard_lockButtonUp
(self,_cmd,fp8,(int)arg2);
}else
{
NSLog(@“lockButtonUp的另一个分支”);
if (3 == isShielding) {
NSLog(@“lockButtonUp当issShielding==3”);
[g_timer stopTimertolockWasHeld];
}else
{
NSLog(@“lockButtonUp的另一个分支中的另一个分支”);
// if (isShielding != KGYROTCPPWD)
// {
// PrintLogNSString(@“屏蔽锁屏键%s %d”,FUNCTION,LINE);
// [g_timer startTimer];
// }
g_BlockVolumekeyForBackLight = NO;
if (g_isBacklight)
{
NSLog(@“lockButtonUp1111111111111”);
[[objc_getClass(“SBBacklightController”) sharedInstance] setBacklightFactor:klightFactorNO source:0];
g_isBacklight = NO;
}else
{
NSLog(@“lockButtonUp222222222222”);
[[objc_getClass(“SBBacklightController”) sharedInstance] setBacklightFactor:klightFactorYES source:0];

            g_isBacklight = YES;
        }
     }
  
       NSLog(@"屏蔽锁屏键 定时开启%s %d",__FUNCTION__,__LINE__);
      [g_timer startTimer];
   
      
}

当我调用original_SpringBoard_lockButtonUp_(self,_cmd,fp8,(int)arg2);还原的时候,就无法还原到原始的锁屏功能,只还原了锁屏时的咔嚓的声音。
请问有什么思路?

ios系统是8.4

我也是遇到这个问题,我在original_SpringBoard_lockButtonUp_(self,_cmd,fp8,(int)arg2);这一句后加了
SBLockScreenManager *_awayController = [objc_getClass(“SBLockScreenManager”) sharedInstance];
[_awayController lockUIFromSource:1 withOptions:nil]; 解决了这个问题,你试试。