[发明专利]一种执行可执行文件的方法及设备有效
申请号: | 201710910912.6 | 申请日: | 2017-09-29 |
公开(公告)号: | CN108228273B | 公开(公告)日: | 2021-07-16 |
发明(设计)人: | 江威 | 申请(专利权)人: | 珠海市魅族科技有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401;G06F9/445 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 519000 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 执行 可执行文件 方法 设备 | ||
一种执行可执行文件的方法及设备,所述方法应用于安卓设备,所述安卓设备包括兼容模块,所述方法包括:通过所述兼容模块将至少一个可执行文件加载到所述安卓设备的内存中,所述可执行文件为IOS环境下的文件;对所述可执行文件进行符号重定向处理;调用所述可执行文件中的入口函数,以执行所述可执行文件,所述入口函数是指外部符号指向的函数。通过采用本方案,能够实现安卓设备执行IOS环境下的可执行文件。
技术领域
本申请涉及操作系统技术领域,尤其涉及一种执行可执行文件的方法及设备。
背景技术
目前,主要采用可执行文件去实现按照预定义的顺序和方式来完成预定义的任务,以实现对应的效果。可执行文件是指可以由操作系统进行加载执行的文件,在不同的操作系统环境下,可执行程序的呈现方式不同。基于IOS的终端设备能够面向用户提供性能稳定和效果较好的功能,例如消息的收发、游戏的操纵等优异的功能,IOS所提供的各项功能一般来说都优于其他移动操作系统。
但目前无法将IOS环境下的可执行文件运用到其他移动操作系统,例如安卓设备无法执行IOS环境下的可执行文件。
发明内容
本申请提供了一种执行可执行文件的方法及设备,能够解决现有技术中安卓设备无法执行IOS环境下的可执行文件的问题。
本申请第一方面提供一种执行可执行文件的方法,所述方法应用于安卓设备,所述安卓设备包括兼容模块,所述方法包括:
通过所述兼容模块将至少一个可执行文件加载到所述安卓设备的内存中,所述可执行文件为IOS环境下的文件;
对所述可执行文件进行符号重定向处理;
调用所述可执行文件中的入口函数,以执行所述可执行文件,所述入口函数是指外部符号指向的函数。
在一些可能的设计中,所述通过所述兼容模块将至少一个可执行文件加载到所述安卓设备的内存中之后,所述调用所述可执行文件中的入口函数之前,所述方法还包括:
对所述可执行文件内的各函数进行懒绑定处理,以使所述可执行文件内的函数被调用时,寻找所述入口函数的内存地址;
所述调用所述可执行文件中的入口函数,包括:
根据寻找到的所述入口函数的内存地址调用所述入口函数。
在一些可能的设计中,所述将兼容模块加载到所述安卓设备的内存中,包括:
将所述可执行文件划分为多个段,每个所述段包括文件偏移、内存起始地址和字段大小;
将所述文件偏移至字段大小之间的数据加载到所述内存的内存起始地址位置。
在一些可能的设计中,所述可执行文件包括至少两个可执行模块,每个所述可执行模块包括至少一个函数,所述至少两个可执行模块包括第一可执行模块和第二可执行模块,所述第一可执行模块和所述第二可执行模块之间存在相互调用函数的关联关系;
所述对所述可执行文件进行符号重定向处理,包括:
对所述第一可执行模块和所述第二可执行模块进行符号重定向处理,使得所述第一可执行模块在执行到第一函数时,通过寻找所述第二可执行模块中的第二函数的内存地址以调用所述第二函数,或者通过寻找所述第二可执行模块的全局变量以调用所述第二可执行模块中的全局变量。
在一些可能的设计中,所述可执行文件包括Mach-O文件。
本申请第二方面提供一种终端设备,具有实现对应于上述第一方面提供的执行可执行文件的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海市魅族科技有限公司,未经珠海市魅族科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710910912.6/2.html,转载请声明来源钻瓜专利网。