Android手机上如何实现data2ext
做者:ygps2002
相关帖子:
1,[教程]G7刷机详细教程:解锁S-OFF,ROOT提取,CM-7.0.3ROM刷机
2,[教程]Android手机上如何无痛替换SD卡,扩展存储空间
3,[教程]Android手机上如何实现data2ext  --->本贴
4,[文章]磁盘的逻辑构造(参见: wenku.baidu.com/view/3e0c18a4f524ccbff1218413.html)
5,[教程]活用Android手机上的GPS日志+地图语音导航
6,[体验]当G7遇到小米
关键词:
SD卡
格式化
分区
data2ext
ext3分区
app2sd
ROM
data2ext的必要性:
        你们在买了Android手机后,对操做界面的高人性化,免费应用软件的多样及大量游戏的方便安装感叹以后,就会碰到内存不足的瓶颈。稍懂些计算机的人可能以为早期的手机内存只有几十KB,几十MB都用的挺好,为啥Android手机都超500MB还不够用,是否是android系统很差呢?固然不是,偏偏是Android系统太好了,因此才须要更多内存。看看Android手机里安装的那么多应用软件,给用户带来之方便已经快遇上普通PC,甚至超过平板电脑和上网本的状况来看,消耗一些内存也以为值当。想起Nokia,Sony-Ericsson,motorola早期的手机除了打电话外没有其余任何功能还卖好几千大洋,该珍惜Google的Android带给咱们的实惠,这是真正的Nokia,Sony- Ericsson,Windows,iOS的颠覆者。免费这杆大旗更应该在中国扛下去。
言归正传,既然买来的Andoird手机内存不足了,那么如何能腾出内存空间呢?早期的问题解决办法是app2sd,再改进就是app2sd+,如今到了data2ext了。本人手机进行的data2ext,system2ext试验结果共享出来,你们参考。
《事先准备》
手机端:
             手机已是S-OFF解锁完毕,ROOT受权提取完毕;(详细参见本人文章:如何无痛ROOT提取)
             手机上的Recovery分区刷了第3方(Clockmodwork)的镜像程序;
             RE(RootExplorer安装完毕);
             其余确认手机ROM,RAM,SD卡等信息的软件(如MiniInfo,系统监控等任意APK应用都可)。
PC端:
             Android开发工具包,能执行ADB shell命令;
             Andoird开发USB驱动安装完毕;
SD卡:
             格式化好的SDHC卡(C6高速8GB),分区详情SWAP:0GB+ext3:2GB+FAT32:2GB=共8GB。
《data2ext详细步骤》
        Android系统(底层Linux内核)在启动时,对各个磁盘分区的加载模式有所区别,其中/data分区是以可读写模式(R/W)加载上的,因此用户安装的软件+数据均保存于此分区,如/data/app,/data/app-private,运行时的缓冲/data/dalvik-cache 等,这样实现了用户安装软件运行。但系统分区/system是以只读方式(R/O)加载的,因此不容许卸载,修改自带的系统及应用软件,也不容许将APK 安装到此分区。
       下一节再来实验稍复杂些/system分区数据移动到miniSD卡的ext分区(如下简称:sd-ext)。先来简单看看/data分区的数据(含软件)如何移动到sd-ext分区吧。
       基本思路很是简单,就是利用Linux/Unix系统中的文件目录软链接(soft link)来实现的。
STEP-1,将手机与PC用USB链接好,确认手机端容许程序调试(手机不要以移动磁盘链接到PC);
STEP-2,PC端打开DOS命令行(DOS Prompt);
STEP-3,将当前目录转到ADB工具安装的目录(如:d:\android\tools);
STEP-4,确认设备已链接好(能够看到设备号为0123456789ABCDEF的手机已链接好)后,进入adb shell;
STEP-5,以su身份执行下面全部的操做,确认每一步结果正常;
      上图中第一个框中为将/data分区的这3个目录移动到/sd-ext/data下,同时删除了/data目录下的这3个目录;第2个框为在/data 目下创建3个软链接(ln 命令);第3个框为确认链接已正常创建。倒数第2行的du命令是确认/sd-ext/data目录的容量大小,也就是从原/data分区下移动了 160MB数据到sd-ext分区,也即给手机自带ROM腾出了160MB存储空间,非常可观了。重启手机以前最好不要经过手机触摸屏进行任何操做了,尽快执行reboot。
STEP-6,重启手机后,经过自带及安装的内存确认软件,能够看到手机内部存储应该空余出了160MB,同时sd卡的ext分区的可用空间少了160MB。
      至此,恭喜你data2ext成功了。之后任何APK安装将只消耗sd卡上的ext分区,而不消耗手机自带存储空间。能够放心安装大型APK了。这个结论不是那么严格,但也八九不离十,随后会明白缘由的。
      可能有的机油可能会问,/data目录下有不少数据,为何只将这3个目录迁移到sd-ext分区,其余的不行吗?聪明勤奋的机油想一想会明白的,此处略去。
《system2ext详细步骤》
      除了data2ext外,可不能够将system分区中的数据也迁移到ext分区呢?抱着穷追猛打的冒险精神,验证了system2ext的可行性。结果证实彻底能够和data2ext达到相同的效果。但操做上与data2ext有一处不一样,就是前面提到过的/system分区在系统中是以只读方式被加载的,按照上面的步骤可能会碰到不能迁移(删除),不能拷贝或是不能新建文件链接等错误提示。此时须要借助RE(RootExplorer)软件来配合。
STEP-1 至 STEP-4,同data2ext;
STEP-5,以su身份执行下面全部的操做,确认每一步结果正常;
STEP-6,手机端打开RE浏览器,以R/W方式从新加载/system分区;
      用手指轻触[Mount R/W]按钮,这时按钮左边的文字信息会有R/O变为R/W,按钮则变为[Mount R/O]。
STEP-7,继续下面的操做,创建软链接至/sd-ext分区上的目录,用ls –l确认后重启手机;
      确认链接结果创建正常,并能够看到/system/app目录的大小为121.1MB。
STEP-8,确认手机重启正常,各类软件正常运行后,再次用USB链接到PC,执行如下操做;
      上图中的黄字内容跟第6步同样,须要手机端RE配合;删除掉app2目录后能够看到/system分区的存储空间空余出了大约50MB。
STEP-9,若是一切运行正常,能够将/system分区回复成以R/O加载方式,或是重启手机。
     再次声明一下,本人验证时使用的是Class6的SDHC卡,若是Class4如下的卡建议最好别用data2ext,除了速度慢会卡屏之外,也有可能会影响卡的寿命。
免责声明:
1,示例中全部所用软件均是免费软件或是破解版。
2,本人基本不使用付费软件,但支持付费使用,反对盗版软件。
3,对于盗版软件或是破解软件,仅限於我的使用,不同意商业或是网络传播。
4,大量使用免费软件或是破解版软件,能够节约大量银子,节能环保!
(完)
2011.10.01css