实践中探索Android智能手机系统------ROM分区

本文介绍了Android系统的ROM分区细节,包括不同分区的功能与用途,并通过实验展示了如何查看这些分区及其挂载情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android系统本质上也是一种OS,而且是基于Linux内核的OS,本系列文章以探索OS的角度,从实践中了解Android系统,从而更好的使用Android系统,甚至改造它。

实验环境:

    硬件:HTC G11 S710e 港版 + 16GBTF卡

    Android: MIUI for G11,已经S-Off

    所需软件: 终端模拟器

 

 实践中探索Android智能手机系统------ROM分区

      磁盘分区是OS静态的存在方式,如Windows往往只需要一个C盘分区,而Linux则可以占用多个分区来挂载不同的部分。Android本身使用的就是Linux内核,但其所在设备往往没有硬盘,而是ROM,所以分区也有所不同。打开手机上的终端模拟器,输入su取得root权限后,执行df -h查看ROM分区情况如下:


$su
# df -h
Filesystem                Size      Used Available Use% Mounted on
tmpfs                   307.3M     32.0K    307.3M   0% /dev
tmpfs                   307.3M         0    307.3M   0% /mnt/asec
tmpfs                   307.3M         0    307.3M   0% /mnt/obb
/dev/block/mmcblk0p25   549.2M    165.4M    355.9M  32% /system
/dev/block/mmcblk0p26     1.1G    115.1M    982.7M  10% /data
/dev/block/mmcblk0p27   290.5M     39.1M    236.4M  14% /cache
/dev/block/vold/179:65   14.8G    428.8M     14.4G   3% /mnt/sdcard
/dev/block/vold/179:65   14.8G    428.8M     14.4G   3% /mnt/secure/asec
#

 

   首先说明的是tmpfs文件系统类型是基于虚拟内存的文件系统,不占用ROM空间。最后两个是sd卡,只用中间三个是ROM分区(红色标记)。

        可以看到,ROM被分成了3个区,大小分别为:549.2M, 1.1G, 290.5M。这应该是个2GB的ROM吧。这三个分区被挂载到不同的路径,其中/system是系统分区,/data是用户安装程序的分区,/cache是系统用来当缓存的分区。平时所谓的刷ROM其实就是重新写/system分区,而不会影响到/data分区,所以用户安装的程序依然存在。

 

为了进一步看清系统运行时挂载情况,执行mout命令:

$ export PATH=/data/local/bin:$PATH
$su
# mount
rootfs on / type rootfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
none on /acct type cgroup (rw,relatime,cpuacct)
tmpfs on /mnt/asec type tmpfs (rw,relatime,mode=755,gid=1000)
tmpfs on /mnt/obb type tmpfs (rw,relatime,mode=755,gid=1000)
none on /dev/cpuctl type cgroup (rw,relatime,cpu)
/dev/block/mmcblk0p25 on /system type ext4 (ro,relatime,barrier=1,data=ordered)
/dev/block/mmcblk0p26 on /data type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc)
/dev/block/mmcblk0p27 on /cache type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/data/d on /data/d type debugfs (rw,relatime)
/sys/kernel/debug on /sys/kernel/debug type debugfs (rw,relatime)
/dev/block/vold/179:65 on /mnt/sdcard type vfat(rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0602,dmask=0602,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
/dev/block/vold/179:65 on /mnt/secure/asec type vfat (rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0602,dmask=0602,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
tmpfs on /mnt/sdcard/.android_secure type tmpfs (ro,relatime,size=0k,mode=000)
#

其中rootfs,也是一种基于RAM的文件系统,可以看到Android的/是直接建立在RAM上的,在PC上,Linux系统一般是启动过程中需要rootfs,然后再切换到磁盘上的根文件系统,而Android则直接就是使用rootfs,所以速度快,但是毕竟RAM大小有限,所以根目录下不能存放太多的东西。


其他如none, proc,devpt, tmpfs等等,也都是无设备文件系统,一般都是基于内存的文件系统,具体的作用以后慢慢研究。

从上红色标记的内容可以看出,ROM分区使用的是ext4标准的Linux文件系统类型,SD卡则采用vfat这种Linux和Windows下可以识别的文件系统,便于其上面的内容被Windows桌面系统读取。


Android-Kitchen作为一个跨平台的ROM定制工具,其在不同操作系统上的使用方法主要区别在于环境配置。无论是在Linux、Mac OS X还是通过Cygwin在Windows上使用Android-Kitchen,都需要先配置好相应的环境来支持其运行。 参考资源链接:[掌握自定义ROM制作:Android-Kitchen工具入门指南](https://wenku.youkuaiyun.com/doc/5pvff24epe?spm=1055.2569.3001.10343) 在Linux和Mac OS X系统上,用户通常需要具备一些基本的命令行操作知识,而环境配置相对简单。一般而言,用户需要安装Java运行环境,因为Android-Kitchen工具是使用Java开发的。接着,通过下载Android-Kitchen工具包,并将其解压到合适的目录。之后,用户就可以通过命令行工具来运行Android-Kitchen,并开始进行ROM的备份、修改和打包工作。 在Windows系统上,由于Android-Kitchen不能直接在Windows环境下运行,用户需要借助Cygwin来创建一个类Unix环境。安装Cygwin并配置好网络后,需要在Cygwin中安装一系列的依赖包,如make、git等。安装完成后,将Android-Kitchen工具解压到Cygwin的家目录下,并通过Cygwin的命令行运行工具开始定制流程。 无论在哪个平台上,Android-Kitchen都提供了一种简化的方式来进行ROM定制。用户可以通过工具提供的脚本和预设选项来定制ROM,而无需编写代码。例如,备份ROM时,Android-Kitchen会指导用户选择正确的设备和分区,并自动执行备份过程。在定制时,工具也提供了修改系统设置和界面风格的选项,使用户能够快速实现个性化的定制。 为了深入学习和高效使用Android-Kitchen,建议用户在使用工具之前,先熟悉Android操作系统的相关知识,理解ROM的构成以及基本的文件结构。此外,用户可以参考《掌握自定义ROM制作:Android-Kitchen工具入门指南》这本书,它详细介绍了如何使用Android-Kitchen进行ROM的定制,并提供了从基础到进阶的完整学习路径。这本书能够帮助用户在不同平台上快速入门,并在实践中不断积累经验,逐步掌握ROM定制的高级技能。 参考资源链接:[掌握自定义ROM制作:Android-Kitchen工具入门指南](https://wenku.youkuaiyun.com/doc/5pvff24epe?spm=1055.2569.3001.10343)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值