通过aar依赖方式解决“优化避免恶意可执行程序感染漏洞”的需求

背景

需求:解决安全漏洞之避免恶意可执行程序感染漏洞

原因:项目中,我们使用了openvpn模块,开启了另一个进程去做一些需求。但是,打包成某些app的时候,并不需要改模块。

而代码反编译之后,可以检测到这些模块。因此,需要做出一些优化。

方案一:针对某一客户打包的app中,独立出一个分支,去掉相关代码和依赖。经过实践,工程量很大,而且容易存留潜在问题。

方案二:将该模块的module依赖改成aar依赖

正题:

首先是先这么操作:

将原本的依赖去掉:

1.修改app下的gradle中的依赖:

2.注释掉:setting.gradle的相关代码

好了,前戏完成,开始操作:

以下借鉴了:将module模块变成aar文件

将mudle变成aar的步骤如下:

第一步:创建完module模块以后,写完功能逻辑,使用Build -> Make Module "common"

第二步:我们就可以到moudle模块中的build/outputs/aar/ 文件下,看到生成的aar文件了。

第三步:我们就可以将common.aar文件复制到项目的libs包下

第四步:在gradle中就可以引用aar文件了。

但是,依旧不行。会报错误。

于是,通过在stackoverflow游水之后,发现,还有一种写法,改成了这样。

这里借鉴了:Adding local .aar files to Gradle build using “flatDirs” is not working

以及Android: How to Include an External .aar File Using Gradle?

dependencies {
      compile(name:'file_name', ext:'aar')
}

 问题初步解决。

还有另外的问题:我根据上面操作得到的aar文件,其实是debug环境的。那么问题来了,怎么得到release的呢?

于是,有了以下操作:

进入android studio 的terminal界面,输入gradlew assembleRelease生成打包文件

 但是,经过这一步操作之后,我并没有得到我想要的release包,可能哪里缺少操作了。但是,无关大雅。

在解决问题的时候,看到的比较不错的文章:

Android中如何打包aar文件之新手教程

在上文中,其实还抛出了一个问题,为什么打包成aar文件之后,就可以解决安全漏洞问题(其实这一块本来就没有安全问题,主要是代码检测反馈出有安全问题)?

原因如下:aar包中包含了类似APP的res下的一切资源,实际上相当于一个module直接依赖了一个工程module库,只是我们将这个工程module库打包成为了一个aar文件方便直接引用,而不是提供真正的源代码,而我们在进行开发aar的目的是为了将其作为一个库提供给真正的application使用。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值