自装主题死机的秘密 手机比较卡的秘密&a
moto现在出了很多Linux的手机 ,,自带的手机内存各有不同z6 自带 65M
v8_2G 自带 49M
v8_512 自带 410M
A1200 自带 10M
其他的就不举例了 ,,为什么这些手机的自带内存都不一样呢,,
因为 z6和v8的系统文件最相似,,就以z6和v8说明下
z6的手机自带一个 内存,,用来刷机,,装文件底层文件,,这个内存有多大呢,,,,
用df -h 查看
Filesystem Size Used Available Use% Mounted on
/dev/root 28.1M 28.1M 0 100% / -------------根目录
none 4.0M 1.1M 2.9M 27% /dev/shm -----------tmp和临时文件放在里面
/dev/mtdblock/user 7.0M 528.0k 6.5M 7% /ezxlocal ----------------用户自用的,比如短信和电话簿的存储,个人估计6.5M的大小,可以存储3000个短信
/dev/mtdblock/setup 64.0k 64.0k 0 100% /usr/setup -------------CG43,最大的配置文件,,手机的设置基本在里面
/dev/mtdblock/secure 64.0k 64.0k 0 100% /usr/securesetup -------------安全配置
/dev/mtdblock/pds 192.0k 160.0k 32.0k 83% /etc/pds -------------配置文件
/dev/mtdblock/resrc 10.1M 10.1M 0 100% /usr/data_resource ------------CG52,最大的资源文件夹,主题啊,,图片啊,,铃声都在这个文件夹
/dev/mtdblock/lang 4.9M 4.9M 0 100% /usr/language ---------------语言
/dev/mtdblock/mass_storage 65.0M 22.9M 42.0M 35% /mnt/msc_int0 --------------mnt目录
/dev/loop/0 20.2M 14.5M 5.7M 72% /ezxlocal/download/mystuff ----------------手机内存
/dev/mmca1 968.2M 819.9M 148.3M 85% /mmc/mmca1 ---------------内存卡
有2个要排除 第一个内存卡 第2个 手机内存 (手机内存其实就是 mnt目录的vfat.img文件)
现在做一个加法 28.1+4.0+7.0+0.064+0.064+0.192+10.1+4.9+65=116.42M
总大小116.42M ,,大家猜猜看 我们z6的机身自带的内存有好多????
我的结果是128M.......你们的呢??
v8_2G的呢,,也是128M
v8_512呢,,,应该512M
那么 LInux系统怎么样为我们分配自带内存的呢,,因为linux系统的文件格式ext2或者ext3,一般不会是fat32格式,,但是在windows下访问U盘,,就需要用fat32格式
所有Linux系统 开机后会在mnt目录自动创建一个的文件 vfat.img,再把这个文件 mount在 /ezxlocal/download/mystuff/目录上,,就成了手机内存
也就是说 , 开机后 其实/ezxlocal/download/mystuff/是一个空文件夹 ,mount一下vfat.img /ezxlocal/download/mystuff/就成了手机内存
我估计这个vfat.img应该是fat32格式的
如果我们用内存卡模式连接电脑,,手机就会 强制umount vfat.img 如果我们正在使用手机内存的主题,,就会发生冲突,,这个冲突的结果就是手机死机
所以自装主题不能放在手机内存上
再来说说 那个 vfat.img的大小 ,,那个文件是自动创建的 ,而且第一次开机后 默认是不存在 vfat.img 系统会自动创建vfat.img ,,大小会自动根据 手机内存剩余的大小创建
比如z6的128的内存,,,刷机后,系统占用58.8M,,剩余60M ,那么系统会自动创建 60M的vfat.img.那么手机内存也就是 60M
其他的手机以此类推,,所有v8_512的自带内存就只有420M了
当然,,可不可以改变了手机内存的大小了,,,其实不难,,,比如我的z6现在的手机内存总大小 才20M ,方法 http://bbs.ihei5.com/read.php?tid-3051.html
截个图,,我用内存卡模式连接电脑后 ...显示的手机内存大小为20M ,,其实Linux系统就是把vfat.img作为U盘的,,如果vfat.img为20M ,手机内存就是20M
最后一个问题,,,为什么我们的手机用起来感觉比较卡..??????????.为什么系统文件是自读的?????????????
我们的官方刷机包Z6_CMCC_Nolock_R60_G_80.33.27R.sbf大小为 58.8 MB,,这58.8M都是高压缩为 squashfs文件格式的,,压缩比例很大,,相当于rar压缩
,如果解压出来 官方包的总大小起码有130M多,,,,
在没有内存卡的情况下,,我刚刚主清除 ,,,,我用du -sh / 命令计算我们的手机内存已经使用的情况 ,,,,,计算出来的大小为 144.6M
在手机内存没有使用一点的情况下,,计算我们手机已经使用144.6M,,是不是很奇怪..但是我的z6的内存为128M,,,,
是不是我们的内存有256M呢??????????
大家去网上查看df和du命令,,大家就知道 df才是真实的内存大小,,du计算方式不一样,,不能作为标准的
告诉大家原因 因为刷机后,,官方包根本没有解压出来,,,刷机只是一个复制文件过程,,并不会解压刷机包
也就是把官方包刷进手机后 squashfs格式的压缩文件不会解压 那么CG52.smg在手机其实还是CG52.smg(只不过名字变成了其他的而已)
用的命令呢 大概就是 mount -o loop /usr/data_source Cg52.smg 实际的命令应该很复杂 ,,,,,,,,
本质上相当于 windows的虚拟光驱 ,,把CG52.smg放在虚拟光驱里面,,手机就直接使用虚拟光驱的内容,,想一下 ,,如果大家直接使用虚拟光驱的内容会不会很卡
如果把文件解压出来,使用速度会不会快点,..很明显,,解压出来的话 ,,肯定会快很多,,,,但是除非我们的内存是256M----------不过moto不会这么大方的
也许你会问 为什么我们的手机的的内部文件是自读的...其实原因你应该明白了,,因为内部文件其实只有 几个镜像文件,,用挂载命令出来的 ,挂载出来的文件都是只读的
其实那些手机内部文件,,本质上是不存在,,..........
那么那么CG52.smg或者squashfs的文件在什么地方呢,,,大家去找一下,,,我也在找呢.........
当然如果大家将来有机会,从事Linux嵌入式的发展,,去整一个手机 不要挂载的,,直接解压出来的 ,不过你的内存不能使用128M,,,,这样的话,,手机速度会很快的
一个设想而已,,估计大家没有那个能力....