[发明专利]一种安全的Android App功能插件化方法有效
申请号: | 201710381127.6 | 申请日: | 2017-05-25 |
公开(公告)号: | CN107273151B | 公开(公告)日: | 2020-11-17 |
发明(设计)人: | 孙钦东;张雪;熊建芬;何少鹏 | 申请(专利权)人: | 西安理工大学 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/61;G06F9/445;G06F21/51 |
代理公司: | 西安弘理专利事务所 61214 | 代理人: | 王奇 |
地址: | 710048*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 安全 android app 功能 插件 方法 | ||
1.一种安全的Android App功能插件化方法,其特征在于,按照以下步骤实施:
步骤1、按照插件化粒度分为模块化更新和热修复,
模块化更新主要是针对新功能的增加,而热修复针对的是类文件方法级别的修复;
步骤2、预注册代理组件、提供引用的dex文件的jar包、编写相应的动态注入的代码,具体包括:
2.1)在宿主应用的AndroidManifest.xml文件中预注册若干个进程,每个进程中预注册相应数目的组件;
2.2)提供一个dex jar包并将其打包进宿主应用,其中jar包中至少含有一个类;
2.3)编写动态注入代码;
步骤3、插件模块编译生成dex文件,随机生成DES密钥,加密dex文件,将密钥添加至dex文件末尾,打包签名,具体包括:
3.1)编译资源和java代码,为java代码生成对应的dex文件,为资源生成对应的访问id;
3.2)随机生成DES的密钥,利用该密钥和相应的DES算法加密dex文件;
3.3)将密钥添加至dex文件末尾;
3.4)若是进行模块化更新,则将dex文件与资源文件打包生成APK并签名并部署至服务器;
步骤4、服务器推送更新模块,App下载新模块;
步骤5、检测插件模块的安全性,具体包括:
5.1)应用遍历固定目录的更新模块,若更新模块是APK文件,解析APK文件,验证APK的一致性与完整性;
5.2)从dex文件末尾读取密钥并解密dex文件;
步骤6、安装加载插件,具体包括:
6.1)对于模块化更新的新模块进行加载,创建一个新的加载器加载类,并创建加载器与模块之间的映射关系;
6.2)对于热修复的新模块,根据6.1)中生成的映射关系寻找合适的加载器加载类;
6.3)若是模块更新成功安装进宿主应用后,已安装的新模块也是以列表形式展示,用户根据喜好选择列表中的插件模块卸载;
步骤7、重新启动应用,插件生效,具体包括:
7.1)对于模块化更新,应用在启动插件时,在预注册的进程中随机选择一个未启动的进程启动;
7.2)对于热修复模块,应用重新启动之后,BUG自动进行修复。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安理工大学,未经西安理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710381127.6/1.html,转载请声明来源钻瓜专利网。