Droidbox是一个android apk的动态分析工具。
首先,安装Java,把java环境搭建起来,droidbox对java版本没什么要求,下载最新的都行
环境:ubuntu14.04、jdk-8u77-linux-x64.tar.gz、apache-tomcat-8.0.30.zip
一、配置java环境
1、到官网下载jdk
网址是http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,我下载版本是jdk-8u77-linux-x64.tar.gz,可根据自己需要下载,x86是32位的,x64是64位
直接下载会提示错误,得先选一个不起眼的接受 accept license agreement然后下载
2、创建java目标路径
$ sudo mkdir /usr/lib/jvm
3、解压你下载的jdk压缩文件至你创建的目录,用以下命令。
$ sudo tar -C /usr/lib/jvm -xzf jdk-7u55-linux-x64.tar.gz
4、查看jdk文件是否正确安装到你所创建你的文件夹下,并查看文件
就是cd到解压的目录ls看下有没有一些文件
5、查看本机上是否还有java可选。
这里用到以下命令
$ sudo update-alternatives --list java
如果出现以下错误,表示系统中没有java可选,我们可以进行以下步骤
error no alternatives for java
6、配置环境变量
$ sudo gedit ~/.bashrc
添加以下代码,根据自己的路径修改JAVA_HOME路径:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
7、使更改立即生效
$source ~/.bashrc
8、查看是否配置成功:
java -version
二、配置tomcat
1、下载apache-tomcat-8.0.30.zip并解压
tar -zxvf apache-tomcat-8.0.30.tar.gz
2、将解压后的文件复制到/opt目录下
sudo cp -r apache-tomcat-8.0.30 /opt
3、进入 /opt/apache-tomcat-8.0.30 目录
cd /opt/apache-tomcat-8.0.30/
4、打开bin目录下的startup.sh文本
sudo gedit ./bin/startup.sh
往文本末尾添加内容,注意版本号,我写的可能和我下载和用的并不是同一个版本,根据自己下载的版本填写
JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191
JRE_HOME=${JAVA_HOME}jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME
CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt/jar:$JAVA_HOME/lib/tools.jar
TOMCAT_HOME=/opt/apache-tomcat-8.0.30
5、启动tomcat
sudo ./bin/startup.sh
如果出现以下信息,则说明启动成功
6、可能出现的错误说明
(1)、报错如下:
Cannot find ./catalina.sh
The file is absent or does not have execute permission
This file is needed to run this program
这里是说执行权限的问题
解决办法:进入bin目录
cd ./bin
执行权限修改语句
chmod +x *.sh
最后启动tomcat查看是否启动成功
sudo ./startup.sh
(2)报错如下:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
是因为刚才设置的环境变量非root用户的
解决办法:在setclasspath.sh头部添加环境变量声明,根据自己的路径修改。
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77
export JRE_HOME=${JAVA_HOME}/jre
或者使用root用户启动:
su root
./startup.sh
7、启动成功后访问localhost:8080
JAVA环境搭建完毕
搭建droidbox环境
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,将压缩包解压到该目录下。或者直接搜索可用的资源下载,我是找的一个网盘资源,下下来以后传到ubuntu上的。
2、配置环境变量
为了能够让我们在其他地方使用android-sdk-linux目录中tools路径和platform-tools路径下的命令,我们将其加入环境变量。添加方式参考java环境变量的方式:sudo gedit ~/.bashrc
在末尾添加以下路径,这里大家要根据自己的安装路径修改,具体路径可以参考刚才的pwd输出路径。
export PATH=/home/zzz/android/sdk/android-sdk-linux/tools:$PATH
export PATH=/home/zzz/android/sdk/android-sdk-linux/platform-tools:$PATH
保存关闭该文件并执行一下命令:
source ~/.bashrc
此时,在任意路径下执行android命令,就可以打开sdk manager。
3、我们下载sdk镜像,步骤如下
输入以下命令,打开sdk管理器,注意:如果这一步出错,说明你的环境变量设置错了,大家再回头检查一下是不是多写了个斜杠啥的。
$android
根据下载的包不同,里面的列表和版本也有所不同,我之前下载了一个sdk只解析出了几个安装包,重新下了个别的版本的。
选择完要安装的包点安装即可
安装完成之后,大家可以在命令行输入一下命令来查看当前的安装镜像版本:
android list targets
显示,我的版本与写的版本不一样,因为当时那个包里没有相应的版本,就选了个差不多的
Available Android targets:
----------
id: 1 or "android-16"
Name: Android 4.1.2
Type: Platform
API level: 16
Revision: 5
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in
Tag/ABIs : default/armeabi-v7a
----------
id: 2 or "android-28"
Name: Android 9
Type: Platform
API level: 28
Revision: 6
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, WXGA720, WXGA800, WXGA800-7in, AndroidWearRound, AndroidWearRound360x360, AndroidWearRound390x390, AndroidWearRound400x400, AndroidWearRound454x454, AndroidWearRound480x480, AndroidWearRoundChin320x290, AndroidWearRoundChin320x300, AndroidWearRoundChin360x325, AndroidWearRoundChin360x326, AndroidWearRoundChin360x330, AndroidWearSquare, AndroidWearSquare240x240, AndroidWearSquare320x320
Tag/ABIs : android-wear/x86, google_apis_playstore/x86, google_apis_playstore/x86_64
现在我们来创建一个虚拟机,这里直接用sdk管理器创建。因为我们要修改下尺寸(注意:大家也可以尝试用命令行创建,因为我之前用命令行创建的时候,后期执行droidbox命令之后开机动画死循环,后来修改了尺寸才好),执行以下命令
$android avd
选择create
点击OK创建完毕。这个时候大家可以先运行一下avd是否能够正常开机。我的虚拟机名称是droid,因此命令如下:
emulator -avd droid
启动android需要些时间,一分钟左右的样子
二、配置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文件夹下提供的镜像启动我们的虚拟机。你用sdk创建的android虚拟机叫什么就写什么,我起的是droid,命令如下:
./startemu.sh droid
4、执行./droidbox脚本
刚才启动android虚拟机的终端按下回车键,因为那个终端起完虚拟机后并没有退出,按一下回车使终端恢复到可以输入命令的状态同时android虚拟机依然保持运行状态,需要在同一个终端下执行这个脚本,不然会报错
执行命令
./droidbox /home/samples/xxx.apk
文件的完整路径,不然会报错 06:13:49 E/Device: Error during Sync: Local path doesn’t exist.
此时成功运行了droidbox。
参考文章:https://blog.csdn.net/u012195899/article/details/52814013