最近需要使用Droidbox,网上这方面的资料比较少,这里把我的整个环境搭建过程记录下来。文中步骤会写得比较详细。
补充说明:如果只需要查看日志的话,Droidbox也可以运行在windows下,只需要将image文件夹下的镜像替换到你的sdk下镜像即可。Droidbox是通过修改android源码来实现动态分析,只能在虚拟机中运行,APIMonitor通过插桩重打包apk文件来实现动态分析,可以在真机中运行,链接:http://blog.csdn.net/u012195899/article/details/52837056。
我的基础环境是Ubuntu14.04LTS,。
不过例行惯例,我每次新建虚拟机之后,总是会命令行更新一下源。
命令:sudo apt-get update
大家都知道Droidbox是一个分析android的动态分析工具,我这里并不做android开发,仅仅分析apk而已,因此我只需要安装sdk即可。
首先,Java环境肯定是必需的,大家先把自己的java环境搭建起来,droidbox对java版本没什么要求,大家下载最新的都行,而且配置过程相信大家应该很熟悉,我的另外一篇文章中也有详细介绍,http://blog.csdn.net/u012195899/article/details/52472864
一、安装SDK
1、下载SDK安装包
大家可以去官网上下,我下载的版本是r24.4.1,下载链接是https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz, 再给大家推荐个网址: http://www.androiddevtools.cn/#sdk-tools,也可以下载安装包。在用户目录下新建文件夹/android/sdk,将压缩包解压到该目录下。
2、配置环境变量
为了能够让我们在其他地方使用android-sdk-linux目录中tools路径和platform-tools路径下的命令,我们将其加入环境变量。添加方式参考java环境变量的方式:
首先pwd命令可以查看你当前的路径。我的安装路径如下:
因为我是安装在用户目录下,所以我的路径前面会有/home/appscanner前缀。
打开~/.bashrc文件,添加你的PATH路径,我的添加方式如下,首先输入以下命令:
sudo gedit ~/.bashrc
在末尾添加以下路径,这里大家要根据自己的安装路径修改,具体路径可以参考刚才的pwd输出路径。
保存关闭该文件并执行一下命令:
source ~/.bashrc
此时,在任意路径下执行android命令,就可以打开sdk manager。
3、我们下载sdk镜像,步骤如下
输入以下命令,打开sdk管理器,注意:如果这一步出错,说明你的环境变量设置错了,大家再回头检查一下是不是多写了个斜杠啥的。
大家只需要下载我安装过的即可。
大家都知道,sdk下载非常慢,如果镜像下载失败,给大家推荐一个网址: http://www.androiddevtools.cn/#sdk-tools,里面给出了国内比较好用的几个代理,里面也有比较使用方法的介绍。
将鼠标移动到ubuntu界面左上方,就会显示tools的窗口,其他时候是隐藏的。
点击里面的options选项,就打开了设置界面,我的设置如下:
修改完成之后点击close按钮,再次点击install即可。这个时候就会看到慢慢的在更新镜像了。这个过程还是得等一阵了,大家做到这一步就可以先去干点别的了。
安装完成之后,大家可以在命令行输入一下命令来查看当前的安装镜像版本:
android list targets
现在我们来创建一个虚拟机,这里直接用sdk管理器创建。因为我们要修改下尺寸(注意:大家也可以尝试用命令行创建,因为我之前用命令行创建的时候,后期执行droidbox命令之后开机动画死循环,后来修改了尺寸才好)
点击OK创建完毕。这个时候大家可以先运行一下avd是否能够正常开机。我的虚拟机名称是droid,因此命令如下:
emulator -avd droid
如果成功运行,那么恭喜,你的sdk部分已经配置完成!如果想要删除某个虚拟机,使用的命令为:android delete avd -n avd_name。
二、配置Droidbox部分
Droidbox的代码已经从官网移植到github上,地址为 https://github.com/pjlantz/droidbox,
1、安装依赖库
根据官网说明,droidbox需要python依赖库pylab and matplotlib,我只使用一下一条命令:
sudo apt-get install python-matplotlib
这一步如果出现什么依赖库的错误,大家可以参考下文章末尾给出的一些其他参考链接解决一下。
2、下载droidbox压缩包
官网给的命令是:
wget https://github.com/pjlantz/droidbox/releases/download/v4.1.1/DroidBox411RC.tar.gz
不知道什么原因,我在ubuntu系统中始终下载失败,最后是在windows中访问上面的https链接下载的,然后将压缩包传入到ubuntu中。然后将压缩包解压,我的目录结构如下
3、执行./startemu.sh脚本
这个时候我们进入DroidBox_4.1.1目录下,执行里面的startemu.sh脚本,执行脚本之前需要先把之前启动的avd关闭,这个脚本主要作用就是使用images文件夹下提供的镜像启动我们的虚拟机。命令如下:
大家看到截图中我的虚拟机名称是droid,这个是因为我截图截错了。这个步骤如果出错的话,大家可以进入images镜像中查看下你的镜像是否完整,之后我解压的时候,这个文件出错了,因此启动虚拟机的时候一直黑屏。
4、执行./droidbox脚本
执行命令
./droidbox apk完整路径
首先进入待检测apk所在目录,pwd打印出当前所在路径,然后执行命令,我的示例如下图
注意:1、apk文件路径一定要写对,否则会报错
2、如果执行之后,提示说有多个设备,那么可以使用adb devices命令查看当前设备有哪些,关闭其他设备,只保留接下来要使用的avd,如果已经不知道在哪儿关闭了,简单粗暴的方法就是关机重启,然后重新启动虚拟机。
执行结果如下:
此时我们成功运行了droidbox。
参考文章:
1、 http://blog.csdn.net/ccc7560673/article/details/8004039
2、 http://www.cnblogs.com/dliv3/p/5325633.html
3、 http://so.cyweb.cn/?a=url&k=6e25dfdb&u=aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ2FpeWluZGV4aW5ncWl1L2FydGljbGUvZGV0YWlscy81MjAwNTMxOQ==&t=RHJvaWRib3jlronoo4XmlZnnqIsgLSBnYWl5aW5kZXhpbmdxaXXnmoTljZrlrqIgLSDljZrlrqLpopHpgZMgLSBDU0ROLk5FVA==&s=ZHJvaWRib3jlronoo4U=