实践中探索Android智能手机系统------ROM分区
2011-11-04 15:41
711 查看
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桌面系统读取。
实验环境:
硬件: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智能手机系统------ROM分区
- 实践中探索Android智能手机系统------APK程序安装
- android 系统 智能手机
- android系统ROM分区
- 好书推荐-Android深度探索(卷2):系统应用源代码分析与ROM定制
- android 手机ROM的分区说明
- android手机rom制作在linux系统下修改system.img获取root权限
- Android初试--认识3G了解智能手机系统
- 图:智能手机Android系统的评委专用的比赛打分客户端,开发进行中...
- Android获取手机内置外置存储文件列表,完美解决各种rom各种系统版本的获取方式不用的问题
- 图:智能手机Android系统的评委评分的比赛打分客户端,开发构思中...,可以和管理员电脑协同完成打分展示工作
- Android手机rom分区以及sd卡总结
- 深入浅出 - Android系统移植与平台开发(五)- 定制手机模拟器ROM
- 智能手机系统对比 Android vs iPhone
- 深入浅出 - Android系统移植与平台开发(五)- 定制手机模拟器ROM
- Android系统为例解读智能手机如何防盗
- 用智能手机安装Android系统尝鲜.
- 涨姿势:Android手机的系统为什么叫ROM
- 智能手机主流系统解析:MeeGo触控操作体验堪比Android和iOS智能系统
- 深入浅出 - Android系统移植与平台开发(五)- 定制手机模拟器ROM