【技术实现步骤摘要】
一种基于编译规则的Android系统静态划分方法
本专利技术涉及软件工程
,主要涉及Android系统分析,更具体地是涉及一种基于编译规则的Android系统静态划分方法。
技术介绍
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。近年来,Android智能手机在移动终端市场具有很高的占有率,越来越多的人开始对Android系统进行研究,很多研究者希冀以改变源码的方式对Android系统的性能、安全性、功耗等进行优化,因此就需要对Android系统源码进行分析。但Android系统源码体量庞大,单纯依靠人工分析,工作量非常大。
技术实现思路
本专利技术解决的技术问题:针对Android系统源码体量大,难以分析的问题,提供一种基于编译规则的Android系统静态划分方法,将Android系统源码划分为包含多个模块的树状结构,有效提高了代码分析的效率。本专利技术的技术解决方案如下:一种基于编译规则的Android系统静态划分方法,该方法将Android系统划分为包含 ...
【技术保护点】
一种基于编译规则的Android系统静态划分方法,其特征在于,包括以下步骤:S1、解析Android源码中的git工程,获取Android源码中git工程的名称及路径,每一个独立的git工程作为一个模块;S2、解析make数据库,提取make数据库中每个编译为二进制文件的模块;S3、提取make数据库中每个二进制文件编译时依赖的文件集;S4、根据git工程路径和二进制文件编译时依赖的文件集中依赖文件的包含关系,划分模块的包含关系,将Android系统源码划分为包含多个模块的树状结构。
【技术特征摘要】
1.一种基于编译规则的Android系统静态划分方法,其特征在于,包括以下步骤:S1、解析Android源码中的git工程,获取Android源码中git工程的名称及路径,每一个独立的git工程作为一个模块;S2、解析make数据库,提取make数据库中每个编译为二进制文件的模块;S3、提取make数据库中每个二进制文件编译时依赖的文件集;S4、根据git工程路径和二进制文件编译时依赖的文件集中依赖文件的包含关系,划分模块的包含关系,将Android系统源码划分为包含多个模块的树状结构。2.根据权利要求1所述的基于编译规则的Android系统静态划分方法,其特征在于:步骤S1中获取Android源码中git工程的方法为:在Linux系统中使用repo下载想要解析的Android系统源码,执行repoinit–uURL[OPTIONS]后,从.repo中的manifest.xml中解析出该套源码包含的所有git工程的名称及路径,存入数据库中。3.根据权利要求1所述的基于编译规则的Android系统静态划分方法,其特征在于,步骤S2中所述通过解析make数据库获取模块相关信息的具体实现如下:S21、设计存储模块信息的数据库表;S22、执行make–n–p,将打印输出的信息存入txt文件;S23、解析S22中存储的txt文件,提取包括模块名称、路径、构建目标在内的基本信息。4.根据权利要求3所述的基于编译规则的Android系统静态划分方法,其特征在于:步骤S23通过解析全局变量获取模块的基本信息,所述全局变量为Android.$MODULE.$ATTR,其中$MODULE为包的名字,$ATTR为BUILT、CHECKED、INSTALLED、PATH、REQUIRED、STUBS之一。5.根据权利要求4所述的基于编译规则的Android系统静态划分方法,其特征在于:步骤S23将含有PATH、BUILT、INSTALLED关键字的行解析出来,存入S21设计好的数据库表中。6.根据权利要求1所述基于编译规则的Android系统静态划分方法,其特征在于:步骤S3中所述提取每个二进制文件编译时依赖的文件集的方法为:提取make数据库中编译规...
【专利技术属性】
技术研发人员:赵红,郝佳亮,张艳艳,周启明,
申请(专利权)人:中国科学院软件研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。