Перезапуск приложения VOIP из фонового режима с использованием частных API - PullRequest
3 голосов
/ 10 января 2011

Для начала - это приложение не должно входить в App Store.

Я думаю, что-то вроде следующего должно работать:

    mach_port_t *p;
void *uikit = dlopen(UIKITPATH, RTLD_LAZY);
int (*SBSSpringBoardServerPort)() = 
dlsym(uikit, "SBSSpringBoardServerPort");
p = (mach_port_t *)SBSSpringBoardServerPort(); 
dlclose(uikit);

void *sbserv = dlopen(SBSERVPATH, RTLD_LAZY);
int (*setAPMode)(mach_port_t* port, const char* appID, BOOL suspended, void* unknown, void* unknown2) = 
dlsym(sbserv, "SBSLaunchApplicationWithIdentifier");
setAPMode(p, "com.apple.weather", NO, nil, nil);
dlclose(sbserv);

Однако я получаю exc_bad_access, что, вероятно, связано с тем, что ему нужен токен авторизации - хотя я могу ошибаться.

В качестве альтернативы я пытаюсь использовать следующее:

Class $SBApplicationController=objc_getClass("SBApplicationController");

NSLog(@"[$SBApplicationController sharedInstance], %@", [$SBApplicationController sharedInstance]);

К сожалению, вывод равен нулю, так что я думаю, что это не может быть сделано в приложении.

Есть идеи? Это сводит меня с ума - спасибо!

1 Ответ

1 голос
/ 10 января 2011

Песочница iOS заблокирует или уничтожит любой процесс, не запущенный iOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...