谈android系统分区表对rom的影响

时间:2022-07-20 15:47:08

前沿:分区表,在android中似乎是一个神秘的东西,搜索了好长的时间,也没有找到相关的东西出来可以理解一番,众多的教程,都是教你如何去改分区表的,但是教程那么多,没有系统的说明其原理,只是说明了修改过程,如果在一个没有逻辑的基础上去修改这东西,其实是灭顶之灾了。啥?呵呵,其实是测试中的术语,就是设备坏了,需要维修了,没有专业工具和软件的人,还真的搞不定的故障。

那么我们现在来谈下分区表对android系统的影响。

影响一:(分区大小不够,不足与装载太多的软件)

系统软件增多,系统分区无法装载,作为一个厂商,如何去确保自己的软件不被删除呢?在android的世界里,/system下的东西,我们是不能在user权限下删除的,所以,厂家的软件一般都放在这个目录下面,其实,这个目录就是一个分区。拿魅族手机来讲,在flyme3.0进化到flyme4.0的情况下,我们通过rom包的大小,可以观察到flyme4.0其实加入了很多东西,那么要对flyme3.0的手机进行系统升级,首先就要保证系统分区得以改变,不然的话,造成的后果就是:分区大小不够,升级为了把包内的东西塞到分区里面去,只能不断的塞,在不断塞的过程中,分区爆满,然后就自动重启了。。。然后又一次进入升级,又一次爆满,又一次重启,这就是无限循环重启升级的bug,这个属于系统级别的错误。遇到这种情况,这能退回老版本,确保设备的正常使用了。当然,以厂商的角度来说,对自己系统未来的预见性必须足够,给各个需要的分区留有足够的空间,保证系统在后续的可拓展性,是很重要的工作,不然,在后续的拓展中,在升级中去修改分区表,有可能造成一部分用户的手机无法起来,损坏等各种故障,因为用户的使用环境大多情况不同,我们不能估计得如此准确。

影响二:(分区表被擦除,系统没办法启动)

如果,在操作不当的情况下,将系统的默认分区表擦除了(除去boot,recovery分区),在没有新分区表的情况下,那么系统将如何?按android的启动顺序来说,启动的开头,先从fastboot开始,如果需要进入fastboot,则先进入,如果不进入则检查是否要进入recovery,后来再去检测system的启动,这个时候,分区表没有了,系统就无法定位了系统的启动程序了,也就是内核起来了,系统的桌面级软件不能正常运行了。遇到这个bug,可能很多人会很紧张,手机坏了?其实不是的,内核还在运行,linux的命令行下,系统还是正常的,只是system分区找不到,系统起不来了。。。就跟windows其实是一个原理的,分区表没有了,没办法引导C盘,系统起不来了。这个时候怎么办?第一,用fdisk重新对你的设备进行分区,第二送修吧,厂家有专门的分区工具对设备进行分区,不过不是硬件坏了,这个是不用担心的,一般的售后,半个小时内都可以搞定。

影响三:(分区顺序不对,造成各种混乱)

是的,我们可以用推理的方法,去构建出厂家原来的分区表,但是一些分区在各种情况下是不可见的,我们无法了解这些分区,厂家到底做了什么工作,如果盲目去修改的话,将造成分区表混乱,系统功能混乱,系统崩溃等各种危险,如果你有一套完整的分区表,那么恭喜你,你可以根据自己的需要去更改,但是现在市场竞争激烈,各种好东西,各种新功能,在一定的时间上是不能被抄袭的,在这方面上来说,自己去修改分区表,造成分区表混乱是很有风险的事情。


那么,说了分区表对android系统可能造成的影响后,我们再从理论的基础上,讲一下分区表去android的rom有什么真正的影响呢?

上面的说明,都是在不知道分区表具体的顺序,分区情况的,或者对分区的预见性不好的基础上做出来的的影响估计。那么如果在各个条件都允许的情况下,分区表对rom又有什么影响呢?

条件1:知道厂商的各个分区情况

条件2:知道厂商对各个分区的操作以及该分区的具体作用,预估值是多少

条件3:拥有熟练和成熟的修改分区表的能力

这个时候的影响是多少呢?

是的,基本上没有影响,为什么呢?厂商有时候因为自己的预见性不足,也要去修改自己的分区表,如果我们对厂商分区表的顺序都知道的话,只是去重新划分各个分区的大小,而这些更改完全能满足各个分区对android系统的需要和厂商的定制需求,那么在这个合理的估算范围内,对android系统是没有任何影响的,就像windows系统一样,win7最小的要求是18G,那我觉得不足够,我要在系统盘中再装一些软件,那么我把分区分成30G,有影响吗?对系统的运行是没有影响的,不过,对于/system/app中的软件,几乎属于系统软件了,我们不能对其删除,在做这个修改的时候,确实需要考虑一下。现在分析了分区表对android系统的影响后,下次,我们就会对分区表做一个系统的分析,再去引用市面上的手机,来分析出分区表的具体数值和顺序,最终再来评估下,分区表修改该如何进行。