【技术实现步骤摘要】
屏蔽SDK危险调用的方法及装置
本专利技术涉及软件开发
,特别是涉及一种屏蔽SDK危险调用的方法及装置。
技术介绍
在开发app(Application,应用程序)的过程中,经常要使用第三方开发的SDK(SoftwareDevelopmentKit,软件开发工具包)。然而,这些第三方SDK质量良莠不齐,出于debug(排除程序故障)的目的,SDK可能会调用一些危险的系统API(ApplicationProgrammingInterface,应用程序编程接口)而导致app崩溃,例如调用assert函数(断言函数),而由于没有SDK的源代码,也就无法及时进行修改。常规的解决方式是,等待SDK更新,很明显这种方法无法适应现在互联网app快速更新的需求。另外一种解决方式是,对objc(扩充C的面向对象编程语言)函数的实现进行交换,但是这种方法对C函数无效。
技术实现思路
为了避免第三方SDK非法调用的危险,本专利技术实施例提供一种屏蔽SDK危险调用的方法及装置。本专利技术实施例提供一种屏蔽SDK危险调用的方法,用于在开发app的链接过程中,对第三方SDK的调用操作进行控 ...
【技术保护点】
1.一种屏蔽SDK危险调用的方法,其特征在于,用于在开发app的链接过程中,对第三方SDK的调用操作进行控制,所述方法包括:确定SDK当前调用操作为预设的危险调用操作后,判断当前调用操作属于全局修改操作还是局部修改操作;对于全局修改操作,将当前危险调用操作的符号绑定到预置的自定义空函数或空类;对于局部修改操作,将SDK文件拆分为多个对象文件,将各个对象文件所调用的函数名称替换为预置的自定义函数名称,并将修改后的对象文件整合为新SDK文件。
【技术特征摘要】
1.一种屏蔽SDK危险调用的方法,其特征在于,用于在开发app的链接过程中,对第三方SDK的调用操作进行控制,所述方法包括:确定SDK当前调用操作为预设的危险调用操作后,判断当前调用操作属于全局修改操作还是局部修改操作;对于全局修改操作,将当前危险调用操作的符号绑定到预置的自定义空函数或空类;对于局部修改操作,将SDK文件拆分为多个对象文件,将各个对象文件所调用的函数名称替换为预置的自定义函数名称,并将修改后的对象文件整合为新SDK文件。2.根据权利要求1所述的方法,其特征在于,所述将当前危险调用操作的符号绑定到预置的自定义空函数或空类,包括:通过设置链接器的方式,或者通过链接预置脚本的方式,将当前危险调用操作的符号绑定到预置的自定义空函数或空类;其中,所述设置链接器包括:设置链接器alias选项。3.根据权利要求1所述的方法,其特征在于,所述危险调用操作包括调用断言函数或调用断言类、通讯录权限申请操作,或,相册权限申请操作。4.根据权利要求3所述的方法,其特征在于,对于调用断言函数或调用断言类的全局修改操作,在所述设置链接器之前,所述方法还包括:针对所述断言函数,设置与所述断言函数具有相同函数签名但是名称不同的空函数,或者,设置与所述断言类具有相同属性声明和方法声明的空类。5.根据权利要求1-4任一项所述的方法,其特征在于,所述将SDK文件拆分为多个对象文件,将各个对象文件所调用的函数名称替换为预置的自定义函数名称,包括:将SDK文件拆分为多个对象文件;解析各个对象文件确定指针表位置;修改指针表中的符号名为预先确定的自定义函数...
【专利技术属性】
技术研发人员:张超然,
申请(专利权)人:北京奇艺世纪科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。