其他分享
首页 > 其他分享> > FlowDroid安装及环境配置

FlowDroid安装及环境配置

作者:互联网

FlowDroid安装

我一定要安装好这个东西,别人的教程并不完全适用于我,这是属于我自己的教程。之前参考了很多很多博客,还是没有运行好。一气之下,重新安装。

准备工作

1、java环境

(jdk_1.8.1_131)

2、maven环境。

3.6.3

 

3、FlowDroid源码下载

下载最新的release版本,哦。也不是非得下最新版的,有的最新版的可能开发人员还在开发,有一些小bug,怎么出错的都不知道。关键是得看项目主页左上方是不是build passing,build failure就不要它了。

4、DroidBench环境变量配置

 

5、Android_Jar环境变量配置

网上的配置五花八门,变量名有的是ANDROID_JAR,有的是ANDROID_JARS;啊,还有变量值,有的是指定到了目录下固定的android.jar文件,有的是指定为包含android.jar的一个文件夹。是不是很迷?

后来,在运行失败后,我找到了这个官方说法。

 

相应的环境变量设置如下,然后凑合能跑,虽然还有一堆error。

 

6、Eclipse 安装

(或Intellij IDEA,这里使用的是Eclipse)

FlowDroid配置

1、导入soot-infoflow和soot-infoflow-android两个项目

(Soot-infoflow是一个Java数据流分析模块,Soot-infoflow-android则是将Android数据流分析转化为Java数据流分析的一个转化模块,均由Java编写)

file->import->general->existing projects into workspace->next->browse...

把那俩导进来就好了。有一堆错误,需要纠错。

 

别人的博客上说导入以上两个项目,还是会报错哎,当我的eclipse里面只有两个项目的时候。

 

原来还要把其余的几个项目(soot、heros、jasmin)也导入到eclipse里面。这个在FlowDroid的 issue #79 中有提到。

在项目导入的前期可能会有好多的error提示,不要着急,耐心等待,eclipse还在building。

其中jasmin的pom.xml里的execution有问题,可以直接让eclipse帮我们改。我选了方法1,让它在本pom.xml文件中添加pluginManagement标签。

还有soot的Options.java有问题,不知道为什么git clone的时候没有克隆完全,后面的代码没在里面,我从github项目中对应文件中拷贝了内容,复制到本地。

至此,暂时是个只有warning的世界。

​​​​

2、更新soot-infoflow和soot-infoflow-android配置

检查soot-infoflow和soot-infoflow-android两个项目中的pom.xml文件的配置是否正确。

编译器版本为1.8 ;

maven输出路径改为target/classes和target/testclasses;

3、EasyTaintWrapperSource.txt

soot-infoflow-android缺少的EasyTaintWrapperSource.txt文件可以直接从soot-infoflow文件中直接复制

4、编译soot-infoflow-android

右键soot-infoflow-android项目,选择Run As>Maven build编译项目,这里我直接默认直接下一步,因为我不知道要输入什么。

然后...额,就报错了

No goals have been specified for this build. You must specify a valid lifecycle  phase or a goal in the format <plugin-prefix>:<goal> or  <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available  lifecycle phases are: validate, initialize, generate-sources, process-sources,  generate-resources, process-resources, compile, process-classes,  generate-test-sources, process-test-sources, generate-test-resources,  process-test-resources, test-compile, process-test-classes, test,  prepare-package, package, pre-integration-test, integration-test,  post-integration-test, verify, install, deploy, pre-clean, clean, post-clean,  pre-site, site, post-site, site-deploy. -> [Help 1]

于是我添加了这个

<defaultGoal>compile</defaultGoal>

然后 继续 run as -> maven build 一路next,还是报错了。

Failed to execute goal  org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile)  on project soot-infoflow-android: Compilation failure

[ERROR] No compiler is provided in this environment. Perhaps you are running on  a JRE rather than a JDK?

难道是java的环境没有配好?为什么之前测试maven的时候能运行呢?

参考博客,原因是我的应该指定为jdk的路径我指定为了jre。这俩是什么关系呢?

然后,我编译成功了!哈哈哈,记一下。

5、测试soot-infoflow-android

run as -> maven test,emm...又报错了。

   

Failed to execute goal  org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on  project soot-infoflow-android: There are test failures.

网上的解决办法是让这个goal跳过test,添加配置

<configuration>

      <skipTests>true</skipTests>

</configuration>

 

重新 maven test,啊妈呀,终于success了,鼓掌。

 

6、maven install

最后一步啦,run as -> maven install,这次比较顺利,success了。

 

啊哈哈哈,庆祝一下。

至此,终于把环境调好了,真正的如何使用FlowDroid我还是不知道,慢慢来。

后面要再发几篇技术博客!

参考了很多优秀博客(只记录了一部分):

最新版FlowDroid搭建教程

基于windows平台的FlowDroid搭建教程

【Android学习记录】:Flowdroid环境配置

Windows下eclipse中flowdroid的构建与运行

FlowDroid

etc.

标签:FlowDroid,配置,maven,infoflow,soot,test,android,安装
来源: https://blog.csdn.net/clever_boy_123/article/details/117340135