非越狱下私有API实现自动接听电话-笔记
非越狱下私有API实现自动接听电话-笔记
skwaityou 发表于1年前
非越狱下私有API实现自动接听电话-笔记
  • 发表于 1年前
  • 阅读 131
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

背景:

    在越狱状态下,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有类似功能。

 

共有 人打赏支持
粉丝 2
博文 4
码字总数 612
×
skwaityou
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: