iOS - Cydia open命令及其对应的?

时间:2013-03-11 08:12:07

标签: ios iphone cydia

有一个名为open Cydia 命令行实用程序,它将打开一个iOS应用程序, 附加到SpringBoard。

是否有相应的close命令可以发送正确的信号 应用程序 ?它需要发送正确的信号,以便它能够完成 在终止之前必要的清理。 kill命令不能用作 应用程序无法捕获信号。

我一直在寻找这个特殊的命令行工具的高低,但是 尚未找到它。

谢谢。

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用

killall MobileCydia

应该有效

答案 1 :(得分:0)

我不知道任何这样的命令,但你当然可以自己构建一个模拟按钮按下的命令。这应该以正常的方式关闭打开的应用程序。这不是一个异常的kill。如果该应用支持多任​​务处理,它将转到后台,并且一路上都会进行所有正常的UIApplicationDelegate回调。

  1. 构建非图形化iOS应用程序。只需从UIApplicationMain()

  2. 中删除main.m来电即可
  3. 将您的应用程序与GraphicsServices.framework链接。它是一个私有框架,因此在Xcode Build Phases 设置窗口中,您通常选择要链接的框架,您将无法在公共列表中看到它。在文件系统上导航到私有框架文件夹(例如/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/System/Library/PrivateFrameworks)并选择它。

  4. 您需要为GSEvent.h(可能是GSWindow.h,它包含#includes)生成标头。 Here you can find a copy of both。将它们添加到您的项目中,并#include GSEvent.h文件中的main.m

  5. 使用此功能:

  6. #include "GSEvent.h"
    
    - (void)simulateHomeButton
    {
       struct GSEventRecord record;
       memset(&record, 0, sizeof(record));
       record.type = kGSEventMenuButtonDown;
       record.timestamp = GSCurrentEventTimestamp();
       GSSendSystemEvent(&record);
       record.type = kGSEventMenuButtonUp;
       GSSendSystemEvent(&record);
    }
    

    此代码应该可用作关闭当前应用程序的方法(即代码在前台的UIApplication内部运行),或另一个打开的应用程序(如构建一个应用程序的情况)命令行实用程序)。

    Hattip向libActivator提出这个想法。