Android编译平台搭建与TaintDroid源码编译

Android-DeveloperTaintDroid是一个自定义的Android ROM,通过数据流的跟踪技术实时地对用户的隐私数据进行监控。要获得带有TaintDroid功能的Android系统,需要下载Android与TaintDroid代码进行编译。

本文基于2013年1月22日发布的TaintDroid。

准备工作

一台性能较好的机器,可靠的网络连接。根据官方要求,需要30G以上的硬盘空间,编译Android 2.3.x以上需要64位的操作系统。

我使用的编译平台配置如下:

Ubuntu 12.04.4 Server Amd64
Intel 2.0GHz * 4, 4G RAM, 100G HDD

由于Android编译环境所依赖的软件包与Ubuntu图形界面有冲突,所以我在编译时使用的是字符界面的服务器版Ubuntu,编译完成后如需运行Emulator可安装Ubuntu的图形界面。

编译平台搭建

最新的TaintDroid是基于Android 4.3版本,Android 4.3的编译要求JDK 1.6,所以需要手动安装旧版本的JDK(使用第三方PPA源)。具体操作如下:

安装完成后执行命令java -version来检查JDK是否安装正确:

java version “1.6.0_45”
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

安装编译所需的软件包(Ubuntu 12.04):

注意:软件包libgl1-mesa-glx可能与Ubuntu图形界面存在冲突。

下载Android源码

首先安装下载Android源码的工具repo:

TaintDroid使用“android-4.3_r1”分支,下载源码操作如下(以下操作均在~/tdroid/tdroid-4.3_r1目录下):

源码下载需很长时间,并且由于国内访问Google的问题,很可能会出错而中断,需重新执行repo sync命令。

直至出现:

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

表示源码下载完成。

Android源码编译

命令如下:

又是漫长的等待。

编译完成后,可以运行emulator来启动模拟器运行原版Android系统。如果找不到emulator命令,需进行初始化操作:

TaintDroid源码下载

根据官方说明,需创建~/tdroid/tdroid-4.3_r1/.repo/local_manifests/local_manifest.xml文件,内容如下:

接下来开始下载TaintDroid源码:

 TaintDroid源码编译

创建~/tdroid/tdroid-4.3_r1/buildspec.mk文件,内容如下:

修改build/target/product/core.mk文件,添加TaintDroidNotify至PRODUCT_PACKAGES的结尾:

执行编译:

至此,嵌入TaintDroid的定制Android ROM已经编译完成,使用emulator命令启动模拟器(可能需要初始化)。

 

 

参考链接

The Android Source Code

Realtime Privacy Monitoring on Smartphones

TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones

TaintDroid项目笔记

Android编译平台搭建与TaintDroid源码编译》有2个想法

  1. taintdroid苦手

    你好,我根據本文手續所做的步驟總是會卡在最後编译taintdroid的lunch full-eng,那時他會跳出在build/target/product/core.mk文件裡面新增的TaintDroidNotify這項命令有錯,錯誤名稱是missing separator 然後就停住了,下面再附加兩句
    **Don’t have a product spec for : ‘full’
    **Do you have the right repo manifest?
    請問這個是某些步驟的錯誤嗎??

    回复

发表评论

您的电子邮箱地址不会被公开。