一、Android手机的文件系统
Android手机的文件系统有许多存储器组成,以下是在adb shell下面的输出:
cat/proc/mtd
注意,不同的手机在上述存储设备的顺序可能会各不相同!一定要检查您的手机,确定在以下的
二、boot和recovery映像的文件结构 boot和recovery映像并不是一个完整的文件系统,它们是一种android自定义的文件格式,
该格式包括了2K的文件头,后面紧跟着是用gzip压缩过的内核,再后面是一个ramdisk内存盘,然后紧跟着第二阶段的载入器程序(这个载入器程序是可选的,在某些映像中或许没有这部分)。
/*
** +-----------------+
** | boot header | 1 page
** +-----------------+
** | kernel | n pages
** +-----------------+
** | ramdisk | m pages
** +-----------------+
** | second stage | o pages
** +-----------------+
**
** n = (kernel_size + page_size - 1) / page_size
** m = (ramdisk_size + page_size - 1) / page_size
** o = (second_size + page_size - 1) / page_size
**
** 0. all entities are page_size aligned in flash
** 1. kernel and ramdisk are required (size != 0)
** 2. second is optional (second_size == 0 -> no second)
** 3. load each element (kernel, ramdisk, second) at
** the specified physical address (kernel_addr, etc)
** 4. prepare tags at tag_addr. kernel_args[] is
** appended to the kernel commandline in the tags.
** 5. r0 = 0, r1 = MACHINE_TYPE, r2 = tags_addr
** 6. if second_size != 0: jump to second_addr
** else: jump to kernel_addr
*/
boot的ramdisk映像是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文件,
例如:初始化init进程以及init.rc(可以用于设置很多系统的参数)等文件。
以下是一个典型的ramdisk中包含的文件目录列表:
│ default.prop
│ init
│ init.goldfish.rc
│ init.rc
│ init.swift.rc
│ initlogo.rle //开机第二屏图片
│ ueventd.goldfish.rc
│ ueventd.rc
│ ueventd.swift.rc
│
├─data
├─dev
├─proc
├─sbin
│ adbd
│
├─sys
└─system
recovery的ramdisk映像包含了一些额外的文件,例如一个叫做recovery的二进制程序,
以及一些对该程序支持性的资源图片文件(当您按下home+power组合键的时候就会运行这个recovery程序)。典型的文件列表如下
│ default.prop
│ init
│ init.rc
│ initlogo.rle //开机第二屏图片
│ ueventd.goldfish.rc
│ ueventd.rc
│ ueventd.swift.rc
│
├─data
├─dev
├─etc
│ recovery.fstab
│
├─proc
├─res
│
│ keys
│
│
│ └─images
│ icon_clockwork.png
│ icon_error.png
│ icon_installing.png
│ indeterminate1.png
│ indeterminate2.png
│ indeterminate3.png
│ indeterminate4.png
│ indeterminate5.png
│ indeterminate6.png
│ progress_empty.png
│ progress_fill.png
│
├─sbin
│ adbd
│ e2fsck
│ fix_permissions
│ killrecovery.sh
│ mke2fs
│ nandroid-md5.sh
│ parted
│ recovery
│ sdparted
│ tune2fs
│
├─sys
├─system
│ └─bin └─tmp
Android手机的文件系统有许多存储器组成,以下是在adb shell下面的输出:
cat/proc/mtd
注意,不同的手机在上述存储设备的顺序可能会各不相同!一定要检查您的手机,确定在以下的
二、boot和recovery映像的文件结构 boot和recovery映像并不是一个完整的文件系统,它们是一种android自定义的文件格式,
该格式包括了2K的文件头,后面紧跟着是用gzip压缩过的内核,再后面是一个ramdisk内存盘,然后紧跟着第二阶段的载入器程序(这个载入器程序是可选的,在某些映像中或许没有这部分)。
/*
** +-----------------+
** | boot header | 1 page
** +-----------------+
** | kernel | n pages
** +-----------------+
** | ramdisk | m pages
** +-----------------+
** | second stage | o pages
** +-----------------+
**
** n = (kernel_size + page_size - 1) / page_size
** m = (ramdisk_size + page_size - 1) / page_size
** o = (second_size + page_size - 1) / page_size
**
** 0. all entities are page_size aligned in flash
** 1. kernel and ramdisk are required (size != 0)
** 2. second is optional (second_size == 0 -> no second)
** 3. load each element (kernel, ramdisk, second) at
** the specified physical address (kernel_addr, etc)
** 4. prepare tags at tag_addr. kernel_args[] is
** appended to the kernel commandline in the tags.
** 5. r0 = 0, r1 = MACHINE_TYPE, r2 = tags_addr
** 6. if second_size != 0: jump to second_addr
** else: jump to kernel_addr
*/
boot的ramdisk映像是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文件,
例如:初始化init进程以及init.rc(可以用于设置很多系统的参数)等文件。
以下是一个典型的ramdisk中包含的文件目录列表:
│ default.prop
│ init
│ init.goldfish.rc
│ init.rc
│ init.swift.rc
│ initlogo.rle //开机第二屏图片
│ ueventd.goldfish.rc
│ ueventd.rc
│ ueventd.swift.rc
│
├─data
├─dev
├─proc
├─sbin
│ adbd
│
├─sys
└─system
recovery的ramdisk映像包含了一些额外的文件,例如一个叫做recovery的二进制程序,
以及一些对该程序支持性的资源图片文件(当您按下home+power组合键的时候就会运行这个recovery程序)。典型的文件列表如下
│ default.prop
│ init
│ init.rc
│ initlogo.rle //开机第二屏图片
│ ueventd.goldfish.rc
│ ueventd.rc
│ ueventd.swift.rc
│
├─data
├─dev
├─etc
│ recovery.fstab
│
├─proc
├─res
│
│ keys
│
│
│ └─images
│ icon_clockwork.png
│ icon_error.png
│ icon_installing.png
│ indeterminate1.png
│ indeterminate2.png
│ indeterminate3.png
│ indeterminate4.png
│ indeterminate5.png
│ indeterminate6.png
│ progress_empty.png
│ progress_fill.png
│
├─sbin
│ adbd
│ e2fsck
│ fix_permissions
│ killrecovery.sh
│ mke2fs
│ nandroid-md5.sh
│ parted
│ recovery
│ sdparted
│ tune2fs
│
├─sys
├─system
│ └─bin └─tmp