Android APK系列4-------Android编译APK后的系统结构

system文件夹就是system.img的解压结果,data就是userdata.img的解压结果,root就是ramdisk.img的解压结果。我们常见到的boot.img就是内核+ramdisk,Android的引导过程就是通过ramdisk内的启动脚本进行,而ramdisk内的目录结构明显就是一个linux的根目录,所以启动后,将system加载到ramdisk内的system下,userdata加载到ramdisk的data下而userdata.img和system.img均是以yaffs2的格式压缩,如果直接给我们一个刷机包,我们再从源码编译了相同版本的Android,那么有一部分是可以实现替换的。资源版块有win平台的unyaffs工具下载。这里介绍一下在linux平台如何解压缩yaffs(2)格式的文件。你可以从http://code.google.com/p/unyaffs/了解并下载这个解压yaffs的开源项目,下载prebuild的unyaffs文件放入/bin下即可使用unyaffs命令解压缩yaffs的文件(项目主页是说只能解压由 mkyaffs2image工具生成的img文件,不过解压缩system.img和userdata.img是肯定没有问题的)。最后如果我要解压缩ramdisk.img 怎么办呢?这里说一下,ramdisk.img是一个彻头彻尾的伪命名,它其实是cpio文件。在ubuntu的界面下可以通过鼠标右键的Extarct Here来解压,在命令行下通过下面几个连续的操作可以解开。

$ mv ramdisk.img ramdisk.cpio.gz
$ gzip -d ramdisk.cpio.gz
$ mkdir tmp
$ cd tmp
$ cpio -i -F ../ramdisk.cpio

此时 tmp 目录下的就是 ramdisk.img 的文件和目录了,可以根据需要编辑 init.rc 或者增

加 自己的启动画面。

压缩回 ramdisk.img

$ cpio -i -t -F ../ramdisk.cpio | cpio -o -H newc -O ../ramdisk_new.cpio
$ cd .. 
$ gzip -5 -v ramdisk_new.cpio
$ mv ramdisk_new.cpio.gz ramdisk.img

前面提到的Linux平台的unyaffs工具(二进制程序,解压放入/bin下):

Windows下的yaffs2解压工具yaffs2img浏览器,可以打开system.img等文件

Android APK系列4-------Android编译APK后的系统结构相关推荐

  1. Android APK系列6-------APK反编译

    Android APK系列6-------APK反编译 前面系列提到的工具在此依然有用,比如可以用yaff2img浏览器或者unyaffs来解压system.img,如果手里是手机,则需要用豌豆荚或3 ...

  2. Android(三)——将程序打包成APK文件,进行APK签名以及反编译APK

    文章目录 1. 签名的作用 2. Android Studio 如何打包签名 3. 反编译 APK 3.1 获取图片资源 3.2 获取 .XML 资源 3.3 获取代码资源 1. 签名的作用 Andr ...

  3. Android代码混淆及反编译apk

    序言: 经常听开发提起代码混淆引起的BUG,混淆后在测试一下有没有问题,那问题来了什么是代码混淆,怎么确认代码混淆成功了,带着问题读下文吧~~ 一.代码混淆的原理 代码混淆是将程序中的代码,等价转换为 ...

  4. app加固apk文件防止反编译apk打包流程

    文章目录 [1]加固 一.为什么要加固 二.加固方案 ①免费的第三方加固方案 ②付费的第三方加固方案SDK ③Java IO 流实现AES加密dex [2]加固方案的实现方式 [3]apk文件构造 [ ...

  5. Android图片系列-2.Android App图片压缩、裁剪分析整理

    移动端常用的图片格式有PNG和JPEG,目前ios手机和大部分安卓手机拍照生成的图片默认格式都是JPEG.我们开发APP的时候通常使用的是PNG,这可能是考虑到图片质量效果.PNG图片是无损压缩格式, ...

  6. android apk 编译命令,android – 如何从命令行编译APK?

    Android使用Ant构建系统,因此您可以为项目创建一个build.xml和build.properties文件. 您需要先创建build.xml文件: android update project ...

  7. android studio 打包慢,[Android Studio系列(三)]Android Studio 编译、同步慢的解决方法

    1 问题 (1) 当项目中引用的第三方模块太多,打开Android Studio的时候就会非常慢,提示一直在解决模块依赖,点击sync按钮同步第三方代码的时候也是巨慢,慢的原因是: 在gradle中引 ...

  8. Android深入浅出系列之Android工具的使用—调试桥ADB(二)

    阅读目录 一:调试桥ADB 二:ADB的主要功能有哪些? 一:调试桥ADB   adb是什么?adb有什么用?adb工具如何用? 是用来管理模拟器和真机的通用调试工具,该工具功能强大,直接打开cmd即 ...

  9. Android深入浅出系列之Android工具的使用—模拟器(一)

    前言 我们下载的SDK包里面有一个叫"Tools"的文件夹,里面为我们提供了许多与Android开发相关的工具,其中一些是必不可少的,现在我们就介绍一下模拟器 Android模拟器 ...

  10. Android学习系列(41)--Android Studio简单使用

    1. 环境 UBUNTU 14.04 + Android Studio 0.8.2 2. 安装jdk openjdk-7是一个很好的选择: sudo apt-get update sudo apt-g ...

最新文章

  1. JAVA9模块化详解(一)——模块化的定义
  2. python与人工智能编程-python学习(一)——python与人工智能
  3. python sql in list
  4. iBatis.Net系列(一)-简介
  5. 东北大学 计算机技术导师,报考东北大学 计算机技术 329分 求调剂相关专业
  6. 手把手教你使用Python生成图灵智能小伙伴
  7. ext中ArrayStore,JsonStore,XmlStore的用
  8. SQL Server2008 用编写脚本自动生成的Sql语言出现 “列名显示无效 ”错误
  9. 《算法设计与分析》黄宇编著 课后习题参考答案
  10. Photoshopnbsp;CS5抠图实例:超快的抠图…
  11. python三大神器之一装饰器
  12. 网络安全界巨擘 王江民
  13. Chrome浏览器主页被篡改怎么修复
  14. 怎样开通gmail邮箱smtp服务
  15. 雷霆战机服务器维护公告,雷霆战机停服公告 4月11日服务器维护
  16. 使用python爬取电子书_怎样用python3爬取电子书网站所有下载链接
  17. Markdown 小技巧之图片左对齐
  18. 豆瓣电影数据可视化大屏
  19. 信息技术外包:中小企业信息化之道
  20. 在 LaTeX 中创建文档

热门文章

  1. 支付宝接口调试经验总结
  2. EGO走进美团——追寻千亿市场背后的技术力量
  3. 网络排障少走弯路两案例速解网管疑难
  4. 金融危机下的企业经营战略
  5. 开发人员速查表-收集
  6. 压缩与解压缩 与多个安装文件的合并问题
  7. qq空间代码查询_Mysql千万级大数据查询优化经验,一点课堂(多岸学院)
  8. php fopen下载文件,php fopen下载远程文件的函数 | 学步园
  9. python 图像识别_AI场景,3步懂图像识别产品
  10. anaconda新建环境_机器学习实战-开发环境安装