iOS - Cydia open command and its counterpart?

只谈情不闲聊 提交于 2019-11-28 02:24:30

Have you tried using

killall MobileCydia

should work

I don't know of any such command, but you could certainly build one yourself that simulates a home button press. That should close the open app the normal way. It's not an abnormal kill. If the app supports multitasking, it'll go to the background, with all the normal UIApplicationDelegate callbacks along the way.

  1. Build a non-graphical iOS application. Just strip the UIApplicationMain() call out of main.m

  2. Link your application against GraphicsServices.framework. It's a private framework, so in the Xcode Build Phases settings window, where you normally choose frameworks to link against, you won't see it in the public list. Navigate on the file system to the Private Frameworks folder (e.g. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/System/Library/PrivateFrameworks) and pick it.

  3. You'll need to generate headers for GSEvent.h (and probably GSWindow.h, which it #includes). Here you can find a copy of both. Add them to your project, and #include GSEvent.h in your main.m file.

  4. Use this function:

#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);
}

This code should be usable as a method to close the current app (i.e. the code runs inside the UIApplication that's in the foreground), or another open app (as would be the case for building a command line utility).

Hattip to libActivator for the idea.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!