华为C8650+扩容记

1.减小/data/HWUserData/sd.img文件的大小

在C8650+的 / 下有 init.rc 文件,其中有这么两句:

1
2
chown system system /data/HWUserData/sd.img    
mount vfat loop@data/HWUserData/sd.img /HWUserData umask=0002,uid=1000,gid=1015,utf8

这两条命令的作用是在手机开机启动时将/data/HWUserData/sd.img 这个FAT32分区镜像文件挂载到/HWUserData目录下面。

这个sd.img文件有18M,
查看 “存储” ,内部SD卡,空间大小是17.96MB

“设置”->”存储” ->内部存储空间 处标识的空间即是/data 可用的空间。这个sd.img文件在 /data下面,自然要占用”内部存储空间“ 18M。
打开看了下,其实里面就放了一点点没有任何用处的数据文件(远远没有达到18M)。于是我用UltraISO 重新建立了一个160KB的软盘映像文件替换掉了默认的sd.img , (ps:如果要查看文件,/data/HWUserData/sd.img 这个文件可以用7zip打开,不过用7z删除里面的文件是不能减少其大小的。)
这样我就节省出18M”内部存储空间“ 了。
ps: /data/HWUserData/sd.img 权限 0220

2.精简/data/cdrom/autorun.iso

华为C8650+的autorun.iso 文件大小有 14.6M,位于 data/cdrom 下 ,同时data也是我们安装的程序放置的地方(app2sd的除外),通常autorun.iso 这个文件的利用率比较低,如果软件装多了,data空间不够,所以就可以精简下autorun.iso (据说,直接删除,会无法使用U盘功能,因此这里基于安全起见,还是保留的好)。

用UltraISO修改此文件后重新写入到/data/cdrom/autorun.iso,设置权限 0644 .
我把它精简到了3.85M,只保留了android驱动程序。

这里其实还有一种方法:就是把/data/cdrom/autorun.iso移动到 /system或cust分区,然后做个符号链接,同样可以节约data分区空间。

3.清除无用程序的数据和dalvik-cache文件

之前删除了 /cust 目录下的一些apk文件,其实不应该这样删除,应该用adb uninstall命令的。在/data/dalvik-cache/ 目录还残留下一些缓存文件,在/data/data/目录下还有一些残留的已经删除应用的数据文件。这些没用的东西也一并清除了(这个要注意看清楚了,哪个目录对应哪个文件,自己心里要清楚,别删错了)。

好了,经过上面3个步骤,已经省出几十M空间了:

4.安装link2SD把应用及其dalvik-cache和lib文件转移到Micro SD卡的第二分区

注:link2sd 需要root权限。
Link2SD : https://play.google.com/store/apps/details?id=com.buak.Link2SD&hl=en

SD卡的分区和格式化:
分区的话,直接在Linux下面用fdisk 分区就OK了,注意两个都分为主分区,另外可以在最后留一个swap分区,大小为96MB。
由于我的8GB的 Micro SD卡买来没用过三天就坏了(店家宣称绝对是正版的),因此这里以我的2GB Micro SD为例:

/dev/sdb1 FAT32 1G多一点
/dev/sdb2 ext4 500多M
/dev/sdb3 swap分区 96MB

分区之后就格式化,用mkfs.vfat 格式第一分区为FAT32,用mkfs.ext4 格式化第二分区为ext4文件系统格式。
如果在windows下的童鞋,就用Acronis Disk Director Suite这个工具来干活吧。。。

安装好link2sd后,把所有用户应用(除link2sd本身)全部移动到SD卡第二分区(点击“创建连接”)。
这样以后,再看下可用内部存储空间,已经有110多MB啦,并且,这还是在我安装了50多个应用后的结果。没有安装应用时有150MB左右的空闲空间。

其实如果只是要将所有由用户安装的应用及其dalvik-cache和lib文件移动到sd卡的话,可以不用link2sd这个应用,link2sd的好处是你可以选择性的移动。如果是要全部的话,可以直接将

  • /data/app/ 链接到 /data/sdext2/app/
  • /data/dalvik-cache/ 链接到 /data/sdext2/dalvik-cache/
  • /data/datalib/ 链接到 /data/sdext2/datalib/
  • /data/data/ 链接到/data/sdext2/data/

注意要在开机脚本中加入挂载 sd卡第二分区到 /data/sdext2 目录下的命令。这个可以通过修改/system/etc/init.qcom.sdio.sh或者init.goldfish.sh文件来实现。
并且,这样还有一个好处是,如果设置默认的程序安装位置是内部存储的话,应用会直接安装到sd卡的第二分区的。省去了移动的操作了。

更多
One Response Post a comment

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS