如何在iPhone 5S(iOS 7.0.4)上以编程方式拨打电话

时间:2014-04-10 14:33:37

标签: ios7 jailbreak phone-call core-telephony

我正在使用不受限制的iOS 7 iPhone 5S越狱,我想拨打电话并以编程方式断开呼叫。

我知道api CTCall适用于iOS 6,但现在它不适用于iOS 7。 在this post,有人给出了解决方案 - 向应用添加权利。

如何在iOS 7上使用CTCall?

注意:我的应用不会出现在AppStore上。

1 个答案:

答案 0 :(得分:0)

Apple为许多私有API添加了新的权利 因此,对于您的调整,您可以使用com.apple.coretelephony.Calls.allow权利

对其进行签名 下面的代码从@b3ll MessageBox开始编辑,以使其与CTCallDial一起使用

#define XPCObjects "/System/Library/PrivateFrameworks/XPCObjects.framework/XPCObjects"

%config(generator=MobileSubstrate);

%group backboarddHooks

static int (*orig_XPConnectionHasEntitlement)(id connection, NSString *entitlement);

static int tw_XPConnectionHasEntitlement(id connection, NSString *entitlement) {
    DebugLog(@"XPCConnectionHasEntitlement... no u");

    //Only grant the required entitlement
    if (xpc_connection_get_pid(connection) == PIDForProcessNamed(@"SpringBoard") && [entitlement isEqualToString:@"com.apple.coretelephony.Calls.allow"])
        return true;

    return orig_XPConnectionHasEntitlement(connection, entitlement);
}

%end

%ctor {

    if ([bundleIdentifier isEqualToString:@"com.apple.backboardd"]) {
        %init(backboarddHooks);

        dlopen(XPCObjects, RTLD_LAZY);

        void *xpcFunction = MSFindSymbol(NULL, "_XPCConnectionHasEntitlement");

        MSHookFunction(xpcFunction, (void *)tw_XPConnectionHasEntitlement, (void **)&orig_XPConnectionHasEntitlement);
    }

}

现在你可以再次使用CTCallDial如果我没错;;) 从这里开始玩你的游览;)

编译支票@b3ll MessageBox时的任何错误 祝你好运