歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> TaintDroid項目筆記

TaintDroid項目筆記

日期:2017/2/28 14:37:58   编辑:Linux教程

TaintDroid項目筆記

By: [email protected]

項目平台基礎信息:

系統信息: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
Copyright © Linux教程網 All Rights Reserved