非越狱下私有API实现自动接听电话-笔记

背景:

    在越狱状态下,iOS9及以下版本,均可通过调用动态库的方法,实现电话的拨打、接听、挂机及监听动作。本文拟探寻在非越狱下能否实现。

结论:方法在iOS6.1.4之前非越狱的版本下生效;在iOS7.1.2之后必须要在越狱的状态下起作用,非越狱下失效。

方法:

(一)函数

    void *handle = dlopen(CORETELPATH, RTLD_LAZY);

    CTTelephonyCenterGetDefault = (id (*)())dlsym(handle, "CTTelephonyCenterGetDefault");

    CTTelephonyCenterAddObserver = (void(*)(id,id,CFNotificationCallback,NSString*,void*,int))dlsym(handle,"CTTelephonyCenterAddObserver");

    CTCallCopyAddress = (NSString* (*)(void*, CTCall *))dlsym(handle, "CTCallCopyAddress");

    CTCallDisconnect = (void (*)(CTCall *))dlsym(handle, "CTCallDisconnect");

    CTCallAnswer = (void (*)(CTCall *))dlsym(handle, "CTCallAnswer");

    dlclose(handle);

(二)签名

    需要codesign,内容为com.apple.coretelephony.Calls.allow

原因分析:自从iOS7之后,调用接、挂、打,需要签名受限。App因没有有效地签名方法,导致不起作用。在越狱状态下,功能是能正常起作用的。

关键词:github上CallHandler有类似功能。

 

转载于:https://my.oschina.net/skwaityou/blog/784876

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值