[发明专利]安卓APK文件依赖组件识别方法及装置有效
申请号: | 202010657866.5 | 申请日: | 2020-07-09 |
公开(公告)号: | CN112000339B | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 高庆;马森;王文祥;张世琨;朱何龙 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53 |
代理公司: | 北京华创智道知识产权代理事务所(普通合伙) 11888 | 代理人: | 彭随丽 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | apk 文件 依赖 组件 识别 方法 装置 | ||
1.一种安卓APK文件依赖组件识别方法,其特征在于,包括:解析安卓APK文件,获取代码文件和清单文件,根据所述代码文件和清单文件,获取安卓工程依赖的各组件的文件和package目录;将所述安卓工程依赖的各组件的文件和package目录与所述安卓APK文件中Android SDK部分中各组件的jar的反编译结果进行比较,获取所述安卓APK文件中AndroidSDK部分所依赖的组件;将所述安卓工程依赖的各组件的文件和package目录与所述安卓APK文件中非Android SDK部分的各package依赖的jar的反编译结果进行比较,获取所述安卓APK文件中非Android SDK部分所依赖的组件;
所述将所述安卓工程依赖的各组件的文件和package目录与所述安卓APK文件中Android SDK部分中各组件的jar的反编译结果进行比较,获取所述安卓APK文件中AndroidSDK部分所依赖的组件的具体步骤包括:对所述Android SDK部分中各组件的jar进行反编译,获取所述Android SDK部分中各组件的java文件和package目录;将所述安卓工程依赖的各组件的文件和package目录,与所述Android SDK部分中各组件的java文件和package目录进行对比,根据对比结果,获取所述Android SDK部分所依赖的组件;
对于安卓工程依赖的各组件的文件和package目录,除去Android SDK部分所依赖的组件的文件和package目录之外,对于剩余的部分中的任一文件和package目录,如果根据package名称,获取到反编译结果,则作为安卓APK文件中非Android SDK部分的各package依赖的jar的反编译结果;
所述将所述安卓工程依赖的各组件的文件和package目录与所述安卓APK文件中非Android SDK部分的各package依赖的jar的反编译结果进行比较,获取所述安卓APK文件中非Android SDK部分所依赖的组件的具体步骤包括:根据所述安卓工程依赖的文件和package目录中,与所述Android SDK部分中每一组件的java文件和package目录均不相同的文件和package目录,确定所述安卓APK文件中非Android SDK部分的各package;通过gradle下载所述非Android SDK部分的各package依赖的jar并进行反编译,获取所述非Android SDK部分中各组件的java文件和package目录;将所述安卓工程依赖的各组件的文件和package目录,与所述非Android SDK部分中各组件的java文件和package目录进行对比,根据对比结果,获取所述非Android SDK部分所依赖的组件;
安卓工程依赖的文件和package目录中,除去Android SDK部分所依赖的组件的文件和package目录之外,剩余的部分为Android自身之外的部分依赖的组件的文件和package目录,从而可以确定安卓APK文件中非Android SDK部分的各package;
安卓APK文件中非Android SDK部分的每一package,根据Java文件目录所得到的该package的名称,通过gradle从互联网或其他数据源进行下载,如果可以下载到该package依赖的jar,则对该package依赖的jar进行反编译,作为非Android SDK部分中该package对应的组件的jar的反编译结果,即该组件的java文件和package目录;
将安卓工程依赖的每一组件的文件和package目录,与Android SDK部分中每一组件的java文件和package目录进行对比,如果构成的路径相同,则将该组件确定为非AndroidSDK部分所依赖的组件,并可以识别出版本的列表和对应的Java文件。
2.根据权利要求1所述的安卓APK文件依赖组件识别方法,其特征在于,所述根据对比结果,获取所述Android SDK部分所依赖的组件的具体步骤包括:若判断获知所述AndroidSDK部分中任一所述组件的java文件和package目录,与所述安卓工程依赖的任一组件的文件和package目录相同,则将所述组件确定为所述Android SDK部分所依赖的组件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010657866.5/1.html,转载请声明来源钻瓜专利网。