热门标签 | 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模拟器上的安装。更多使用指南可参考官方文档。
推荐阅读
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • 本文详细介绍了如何在 Spring Boot 应用中通过 @PropertySource 注解读取非默认配置文件,包括配置文件的创建、映射类的设计以及确保 Spring 容器能够正确加载这些配置的方法。 ... [详细]
  • This document outlines the recommended naming conventions for HTML attributes in Fast Components, focusing on readability and consistency with existing standards. ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 本文详细介绍了如何在CentOS 7操作系统上安装和配置Grafana,包括必要的依赖项安装、插件管理以及服务启动等步骤。 ... [详细]
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社区 版权所有