转自:http://noirbright.com/?p=412
这个rom是的noirbright习作
首先来解释下cache hack
G1的空间小,大家众所周知,在不刷Danger SPL的情况下,G1的主要分区大小如下:
/system 67.5MB
/data 74.7MB
/cache 67.5MB
刷了Danger SPL后,空间会有所增加
/system 90MB
/data 89.7MB
/cache 30MB
Danger SPL,解决了早期G1空间不够,无法升级rom的窘境。但是随着Android版本号的逐步提升,G1的空间又逐步显得吃紧起来,所以又有人动起了Cache分区里剩下的那30MB的主意。
我们知道Cache分区的作用其实并不大,我们甚至可以把主要的cache文件都移动到SD卡上,而且大多数情况下,Cache分区是空的,所以这部分空间其实也能合理利用起来。
Cache Hack就是针对这种情况出现的空间的解决方案(也只有G1这种老机器才会有人折腾这个,呵呵)
Cache Hack的实现
要实现Cache Hack还是需要一些rom制作基础的。
首先,Cache Hack必须要boot.img的支持才能实现。
boot.img是由kernel和ramdisk组成的。我们可以通过脚本将boot.img拆成kernel和ramdisk两个文件,解压ramdisk,即可得到ramdisk内的内容,我们需要修改的就是ramdisk里的init.rc文件,具体的修改方式可以参考XDA上的这个帖子:http://forum.xda-developers.com/showthread.php?t=653348
改完init.rc后,再通过脚本将kernel和ramdisk重新打包成boot.img,这样,boot.img就搞定了
其次,是调整rom包的结构,将你需要复制到cache分区的内容与system分区分开,具体可以参考我上传的这个rom。
再次,依然参照xda上那个帖子,添加启动时所需要的脚本。
最后,修改update script,建立系统间的连接,这个同样也可以参考我这个rom的做法。
打包,签名,刷机。
启动后,手机的内部可用空间即达到了87.4MB
已知问题
目前,cache hack使用的是与cm不同的app2sd的方式,故在cm5上开启cache hack后,cm5的app2sd只能长期处于开启状态,无法关闭,不过好在这并不影响我们的使用,后期看看这个问题是否可以进一步修正。
适用范围
cache hack比较适合用在rom体积较大的包上,比如sense的rom,比如slide的rom,当你因为在移植rom过程中发现空间不够不得不精简系统,但又发现没啥好减的时候,就可以开始考虑用cache hack试试了。