热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Android模拟器上部署TaintDroid的详细步骤

本文详细介绍如何在Android模拟器上安装TaintDroid的过程,包括解决源代码链接失效及服务器文件变动等问题,旨在帮助后续用户避免不必要的麻烦。
最近在尝试将TaintDroid安装至Android模拟器的过程中遇到了一些挑战,如源代码链接过时、服务器文件位置变化等。经过多次尝试,最终成功完成了安装。现分享这一过程,以便后来者能顺利安装。

我使用的操作系统是32位Ubuntu 10.04。安装TaintDroid前需自行编译Android 2.1的源码。在此之前,确保系统环境已正确设置,关键点如下:

1. JDK1.5:安装了JDK1.6或更高版本的系统在编译Android源码时可能会遇到问题。确保JDK环境变量配置正确,以避免安装失败。
2. 必须安装的软件包包括:git-core, repo, gnupg, flex, bison, gperf, libsdl-dev, libesd0-dev, libwxgtk2.6-dev, build-essential, zip, curl, libncurses5-dev, zlib1g-dev。这些包可通过apt-get install命令轻松安装。
3. 若gcc和g++版本高于4.3,可能会导致Android源码编译错误。遇到此类错误时,考虑降级gcc和g++版本。

环境配置完成后,开始安装流程:

第一步,获取Android源代码:下载android-2.1_r2.1p分支。

```bash
mkdir -p ~/tdroid/tdroid-2.1_r2.1p
cd ~/tdroid/tdroid-2.1_r2.1p
repo init -u https://android.googlesource.com/platform/manifest -b android-2.1_r2.1p
repo sync
```

等待下载完成,根据网络速度不同,这一步骤可能需要约1小时。

第二步,对TaintDroid进行必要的修改:下载local_manifest.xml文件并放置于`~/tdroid/tdroid-2.1_r2.1p/.repo`目录下。确认版本控制无误后,执行相关Git操作以同步和更新代码。

第三步,添加ext2 SD卡支持:需修改`/vold/volmgr.c`和`/vold/volmgr_ext3.c`文件,位于`system/core`目录下。具体修改内容涉及添加对ext3的支持。

第四步,应用补丁并重新配置内核:从指定URL下载yaffs_xattr补丁文件,并将其应用于Goldfish内核源码。重新配置内核时,需确保EXT2和YAFFS支持XATTR和SECURITY选项。

第五步,创建`buildspec.mk`文件以启用核心污染跟踪逻辑及其他相关设置,并执行最终编译。

第六步,安装带有TaintDroid的镜像。首先安装Android SDK,设置ANDROID_SDK_HOME环境变量,并创建一个新的2.1版本虚拟机。使用特定命令启动带有自定义内核和镜像的模拟器。

```bash
emulator -avd <虚拟机名称> -kernel ~/zImage -ramdisk ~/tdroid/tdroid-2.1_r2.1p/out/target/product/generic/ramdisk.img -system ~/tdroid/tdroid-2.1_r2.1p/out/target/product/generic/system.img
```

模拟器启动过程中,可能需要通过ADB命令调整Dalvik虚拟机的执行模式。若遇到设备离线的问题,可尝试重启ADB服务。

模拟器启动后,还需安装TaintDroid的图形界面组件。

```bash
wget http://www.appanalysis.org/files/TaintDroidNotify.apk
adb install TaintDroidNotify.apk
```

安装完成后,TaintDroid将出现在应用程序列表中,供进一步测试和使用。

希望以上步骤能帮助你顺利完成TaintDroid在Android模拟器上的安装。更多使用指南可参考官方文档。
推荐阅读
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 在金融和会计领域,准确无误地填写票据和结算凭证至关重要。这些文件不仅是支付结算和现金收付的重要依据,还直接关系到交易的安全性和准确性。本文介绍了一种使用C语言实现小写金额转换为大写金额的方法,确保数据的标准化和规范化。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
author-avatar
宋安武_375
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有