最近刚开始接触安卓系统源码,在Ubuntu下编译成功后,发现源码的世界好庞大。
之前用真机运行程序时,经常遇到/data分区容量不足的问题,本来可以通过AS取修改程序安装位置,但这个不是好的办法,所以想从系统方面去解决,网上也查了很多资料,也试了不少方法,最后修改parameter文件解决。
文件位置:/FFTool/xxParameter.txt,文件可以在直接打开,内容如下:
FIRMWARE_VER:5.0.0
MACHINE_MODEL:rk3288
MACHINE_ID:007
MANUFACTURER:RK3288
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 3288
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
#KERNEL_IMG: 0x62008000
#FDT_NAME: rk-kernel.dtb
#RECOVER_KEY: 1,1,0,20,0
CMDLINE:console=ttyS2 androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyS2 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00008000@0x00006000(resource),0x00008000@0x0000e000(kernel),0x00010000@0x00016000(boot),0x00010000@0x00026000(recovery),0x0001a000@0x00036000(backup),0x00040000@0x00050000(cache),0x00002000@0x00090000(kpanic),0x00300000@0x00092000(system),0x00008000@0x00392000(metadata),0x00002000@0x0039A000(baseparamer),0x00400000@0x0039C000(userdata),0x00020000@0x0079C000(radical_update),-@0x007BC000(user)
# in section; per section 512(0x200) bytes
上面都是跟硬件相关的信息,我们直奔主题,找到/data分区的信息:0x00400000@0x0039C000(userdata),第一串十六进制数据表示分区大小,第二串表示位置。分区大小的计算:16进制数据转成10进制x512/1024/1024,按照我这个大小得到的是2048MB,也就是2GB,我想要改成3GB,那我就要换算成16进制:0X00600000;大小改变后,后面所有分区的地址也都要改变,下面是改完后的数据:
initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00008000@0x00006000(resource),0x00008000@0x0000e000(kernel),0x00010000@0x00016000(boot),0x00010000@0x00026000(recovery),0x0001a000@0x00036000(backup),0x00040000@0x00050000(cache),0x00002000@0x00090000(kpanic),0x00300000@0x00092000(system),0x00008000@0x00392000(metadata),0x00002000@0x0039A000(baseparamer),0x00600000@0x0039C000(userdata),0x00020000@0x0099C000(radical_update),-@0x009BC000(user)
# in section; per section 512(0x200) bytes