光说不练非好汉,现在就让我们开启自己编译的系统测试!其实懂得这些过程,就知道了Android手机系统定制的整个流程。现有的智能机都是使用Google的android开源的系统然后添加一些自己的东西,就成为公司的系统!

TaintDroid(Android)虚拟机上测试

我们前面讲了如何编译,编译的成功的标识就是生成system.img文件,如下图:


sdk替换
拷贝system.img镜像文件,替换掉sdk中的镜像,如下图:



对于AVD创建很简单,这里几张图就可以看懂!





点击start就可以启动该虚拟机。Api一定是调用18的,因为该接口是我们编译生成的system.img

运行TaintDroid!这里我对该应用进行了修改,使其可以生成日志文件!



已经测试成功!

TaintDroid(Android)在真机上测试

在真机上比较复杂,需要下载驱动。我测试的手机是Galaxy Nexus i9250所以下载如下驱动
% cd ~/tdroid/tdroid-4.3_r1% wget https://dl.google.com/dl/android/aosp/broadcom-maguro-jwr66y-5fa7715b.tgz% tar -zxvf broadcom-maguro-jwr66y-5fa7715b.tgz% ./extract-broadcom-maguro.sh # (view the license and then type "I ACCEPT")...% wget https://dl.google.com/dl/android/aosp/imgtec-maguro-jwr66y-b0a4a1ef.tgz% tar -zxvf imgtec-maguro-jwr66y-b0a4a1ef.tgz % ./extract-imgtec-maguro.sh # (view the license and then type "I ACCEPT")...% wget https://dl.google.com/dl/android/aosp/invensense-maguro-jwr66y-e0d2e531.tgz% tar -zxvf invensense-maguro-jwr66y-e0d2e531.tgz% ./extract-invensense-maguro.sh # (view the license and then type "I ACCEPT")...% wget https://dl.google.com/dl/android/aosp/nxp-maguro-jwr66y-d8ac2804.tgz% tar -zxvf nxp-maguro-jwr66y-d8ac2804.tgz% ./extract-nxp-maguro.sh # (view the license and then type "I ACCEPT")...% wget https://dl.google.com/dl/android/aosp/samsung-maguro-jwr66y-fb8f93b6.tgz% tar -zxvf samsung-maguro-jwr66y-fb8f93b6.tgz% ./extract-samsung-maguro.sh # (view the license and then type "I ACCEPT")...% wget https://dl.google.com/dl/android/aosp/widevine-maguro-jwr66y-c49927ce.tgz% tar -zxvf widevine-maguro-jwr66y-c49927ce.tgz% ./extract-widevine-maguro.sh # (view the license and then type "I ACCEPT")
建立 buildspec.mk文件并输入以下内容!
% cd ~/tdroid/tdroid-4.3_r1% edit/create buildspec.mk # Enable core taint tracking logic (always add this)WITH_TAINT_TRACKING := true# Enable taint tracking for ODEX files (always add this)WITH_TAINT_ODEX := true# Enable taint tracking in the "fast" (aka ASM) interpreter (recommended)WITH_TAINT_FAST := true# Enable additional output for tracking JNI usage (not recommended)#TAINT_JNI_LOG := true# Enable byte-granularity tracking for IPC parcelsWITH_TAINT_BYTE_PARCEL := true
开始进行编译! 打开build/target/product/core.mk添加内容
PRODUCT_PACKAGES += \                    BasicDreams \                    ...                    voip-common \                    TaintDroidNotify
重新编译
% . build/envsetup.sh% lunch 12% make clean% make -j4
开始进行刷机 首先对手机fastboot状态调成UNCLOSE
% fastboot oem unlock




进行刷机!
% cd out/target/product/maguro% fastboot flash boot boot.img% fastboot flash system system.img% fastboot flash userdata userdata.img

如下图:
测试结果






至此,实验终于完成了!

总结

看着图片很简单,操作起来相当麻烦!编译错误,刷机错误!反正一点一点调吧!整个过程走下来,至少还是能学点东西的!!(驱动一定要符合手机,否则刷机的开始也是板砖的开始。变板之后再想恢复,对于google手机比较难!如果SD卡外置就相当简单,可我实验的机子都是内置的SD卡~~~) 祝大家学习愉快!!









更多相关文章

  1. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
  2. Android(安卓)后台定时任务
  3. Android(安卓)8.0 行为变更
  4. “Android第一书”作者郭霖:用心做事,结果自然水到渠成
  5. Android自动测试之通过命令行启动应用程序
  6. 手机影音第十二天,集成vitamio万能播放器
  7. Mac OS X 下部分Android手机无法连接adb问题之解决方案
  8. [置顶] Intent filter 关于Action、Category属性详解---附带实例
  9. 各版本安卓手机USB调试模式打开方法

随机推荐

  1. Android(安卓)Dialog种类大全,让Activity
  2. setDefaultKeyMode 用法介绍
  3. AndroidStudio快捷键
  4. Android简易实战教程--第三十一话《自定
  5. Wayland中的跨进程过程调用浅析
  6. 解决Viewpager满屏不能自适应填充内容的
  7. Android(安卓)SQLite数据库版本升级原理
  8. android 监听EditText输入字符长度
  9. Android镜像文件ramdisk.img,system.img,us
  10. Ubuntu 16.04 LTS 编译 Android(安卓)7.1