TaintDroid项目笔记


TaintDroid项目笔记

By: ahaxzh@gmail.com

项目平台基础信息:

系统信息:Ubuntu 12.04 LTS X64 Desktop

硬件信息:Intel® Core™2 Duo CPU P8400 @ 2.26GHz × 2,3G RAM

具体项目实施过程:

1. Ubuntu 系统安装的注意事项及操作系统基础环境配置

系统的安装。在安装Ubuntu系统的时候根据自己计算机情况合理清晰的构建新的系统,不可盲目选择。建议安装的时候选择全新安装或者事先预留空白分区手动分配磁盘。切忌不了解LVM的情况下不使用LVM管理方式安装。
在安装完成后首先选择合适的源来更新系统(可使用系统内置的源测速),其实主要更新的内容是系统语言包。在安装完更新以后即可随手安装些常用必备工具:Vim、Gcc、G++、Adobe Flash、Chromium等。

2. Android 开发平台的搭建

首先TaintDroid其实是一个自定义的Android ROM,所以必须自己编译Android源码来实“TaintDroid Build Instructions for Android”。那么首先要做的就是下载源码(Android及TaintDroid代码),然后进行编译并嵌入TaintDroid来实现自定义 ROM并刷入设备。

平台基础JDK 的安装:
由于Android代码编译使用的是JDK6,所以必须去Oracle上面寻找旧的对应平台的版本,而且需要注册并同意一些协议才会允许你去下载。下载到 的文件大概是类似于:jdk-6u45-linux-i586.bin,具体小版本号Google没有具体要求所以并不需要纠结。然就是安装JDK并配置 环境变量,具体操作如下:

ahaxzh@T400:~$ cd /workspace/soft ahaxzh@T400:~$ chmod 701 jdk-6u45-linux-i586.bin ahaxzh@T400:~$ sudo ./jdk-6u45-linux-i586.bin

(需要注意的是:其会在当前目录下解压JDK,也就是JDK所在的位置,需要记录下来并写在环境变量中)。
添加环境变量的方法:
编辑/etc/profile文件在文件最后添加内容:

#set java environment JAVA_HOME=/home/ahaxzh/workspace/soft/jdk1.6.0_45 export JRE_HOME=/home/ahaxzh/workspace/soft/jdk1.6.0_45/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

然后注销系统并重新登录,在终端使用命令:java -version来查看JDK是否安装完成。 若安装成功则会显示当前JDK版本号:

java version "1.6.0_45" Java(TM) SE RuntimeEnvironment(build 1.6.0_45-b06) JavaHotSpot(TM)Server VM (build 20.45-b01, mixed mode)

Android 源代码的下载:
根据官方网址说明需要的是首先需要安装以下工具软件:curl和git-core。在终端输入:

ahaxzh@T400:~$ sudo apt-get install curl ahaxzh@T400:~$ mkdir ~/bin ahaxzh@T400:~$ PATH=~/bin:$PATH ahaxzh@T400:~$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo ahaxzh@T400:~$ sudo chmod a+x ~/bin/repo

(需要注意的是,首先要在~/home下建立bin目录,并给与repo目录以权限。)

然后就可以新建一个目录用来存放Android源代码,如:workspace/tdroid/ tdroid-4.1.1_r6)
进入到用于存放代码的目录使用repo命令来获取Android源代码:

ahaxzh@T400:~/workspace/tdroid$ mkdir -p ~/tdroid/tdroid-4.1.1_r6 ahaxzh@T400:~/workspace/tdroid$ cd ~/tdroid/tdroid-4.1.1_r6 ahaxzh@T400:~/workspace/tdroid$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.1.1_r6 ahaxzh@T400:~/workspace/tdroid$ repo sync

然后就进入漫长的等待过程。

在执行上面的步骤时需要注意的事项:
在使用repo命令时会遇到很多很多的问题下面进行详细说明:
关于repo只是google用Python写的一个用来调用git的脚本,主要是用来下载、管理Android项目的软件仓库。
官方安装介绍:http://source.android.com/source/downloading.html
官方使用说明:http://source.android.com/source/using-repo.html
在首次安装完git、curl及repo如果立即执行repo init操作可能会出现各种异常情况,这个主要和地域互联网环境有关。例如:直接链接不了源码服务器、出现读取失败等等。即使你能够链接并读取正常,第一 次还会出现要求你编辑git的配置文件(根据提示输入邮件、用户名字等)。至于出现问题的解决方案可以使用代理服务器、备份服务器及本地安装等。在漫长的 下载Android代码的过程中很容易出现repo sync 中断的现象,不得不重新执行repo sync命令。

关于repo init -u URL , 在当前目录安装 repository ,会在当前目录创建一个目录 “.repo” , -u 参数指定一个URL, 从这个URL 中取得repository 的 manifest 文件,然后才能够使用repo sync命令根据manifest文件抓取源码。抓取源代码是一个非常非常漫长的过程,我用了将近7小时。直到出现:

Fetching projects:100%(294/294),done. Syncing work tree:100%(294/294),done.

算是下载完源代码了。这时候源代码目录(~/workspace/tdroid/tdroid-4.1.1_r6)中 .reop目录大小为12G,而整个 tdroid-4.1.1_r6目录将近20G左右。

Android源码的编译:
下载完源代码以后就可以开始着手准备源码编译工作了。官方编译说明:http://source.android.com/source/initializing.html
在着手编译的时候你需要再次确认一下问题:
首先你的操作系统必须是64位的(前面的几个Android版本貌似可以在32位编译,但是4.x的就没有遇到说可以在32位机器编译运行的 了)Linux发行版本。官方推荐的是Ubuntu 12.04 LTS版本,另外官方要求的编译环境必须是:Python 2.6 — 2.7, GNU Make 3.81 — 3.82,JDK 6,Git 1.7。除了这些以外还需要有的软件包:

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1/usr/lib/i386-linux-gnu/libGL.so

这其中会出现的问题:libgl1-mesa-glx:i386 会提示找不到。这时候就陷入了一个痛苦的循环。具体见:http://askubuntu.com/questions/335853/ubuntu- wont-boot-after-initializing-the-build-environment-for-android/335865#335865
总之最后的解决方法是一次启动之内完成编译工作,然后重新启动以后需要在非GUI环境下安装xorg。
上述基本必须环境搭建完毕就可以开始编译Android源代码了。具体编译流程如下:

ahaxzh@T400:~/workspace/tdroid/tdroid-4.1.1_r6$ . build/envsetup.sh ahaxzh@T400:~/workspace/tdroid/tdroid-4.1.1_r6$ lunch 1 ahaxzh@T400:~/workspace/tdroid/tdroid-4.1.1_r6$ make -j4

然后就是漫长的编译等待了。整个过程花费的时间视机器硬件配置不通,我编译完成大概用了一整夜。等待编译完成以后就可以运行emulator命令来 测试原版(没有安装TaintDroid的)的Android原版系统了,这时候在工作目录里面会多一个out文件夹,大小13G。

上面所做的这些其实说白了只是为了测试。如果这些都通不过就没有办法接下来进行下面的事情。在第一次运行模拟器的时候,如果出现找不到emulator命令的话需要进行初始化操作:

ahaxzh@T400:~/workspace/tdroid/tdroid-4.1.1_r6$ source build/envsetup.sh ahaxzh@T400:~/workspace/tdroid/tdroid-4.1.1_r6$ lunch full-eng ahaxzh@T400:~/workspace/tdroid/tdroid-4.1.1_r6$ emulator
  • 1
  • 2
  • 下一页

相关内容

    暂无相关文章