【前言】
现在有越来越多的Android手机用上了GPT分区表。我目前接触过的有:华为C8816、G6-C00、Ascend P6,中兴U880E,还有亚马逊Kindle Fire。目前我不太好解释GPT 分区表相对于之前安卓手机广泛使用的MBR分区表有什么优势(毕竟手机不同于电脑;电脑上超过2TB的硬盘必须要用GPT才能完全识别),但这至少是新技术,一代更比一代强。
我观察到,网上大神们分享了不少给安卓手机重新分区的教程。他们用的是fdisk工具,针对大部分还在用MBR分区表的手机。可是像用GPT 分区表的新手机,用fdisk是没办法识别的(这一点,用Linux的朋友应该会有体会)。实测我的C8816运行"fdisk -l /dev/block/mmcblk0"时,只能读出一个EFI GPT分区,根本没办法显示出分区表。而我打开/proc/partitions查看分区信息一看,手机里其实是有25个分区的。
难道就真的没有办法了吗?
嘿嘿,当然不是了!这里有一个真正可以称得上是“大神”的工具,就是大名鼎鼎的GNU parted 工具!它是Linux下开放源代码的分区工具,完美支持GPT和MBR分区表,弥补了fdisk工具的缺憾。
我们的目标是:把parted工具通过交叉静态编译,移植到到Android手机中。这样理论上只需要一个可执行文件,就可以在大部分的Android手机上运行了。
【前提要求】
1.系统:Ubuntu等发行版的Linux系统。如果没办法装,请使用Cygwin。百度一下你就知道。
2.编译器:arm-linux-gcc。这个百度上安装文件和安装方法也有;如果用Cygwin请下载专用版本。
这个安装教程不错:arm-linux-gcc下载与安装_百度文库 http://wenku.baidu.com/link?url=CeCJg-KNFhJteKx8bX7uYTN9Udju-aB98Pk-9Po6DN1CSrc76wuxNWfIdRnhUh-MEWVnEvKvbzVqH_bqZ1158gRHvKmslz2DmN1mBcG8PG7