为了回应昨天(实际是今天凌晨啦)我们说G1无法继续升级到Android新版本系统的说法,今天我们来深入剖析一下G1为什么不能升级到Donut、Eclair和Flan。到目前T-Mobile回应说他们正在与Google就“未来的软件升级”进行通力合作,但没有准确的说明G1是否可以升级到Donut。

我们先来看看G1的内部存储情况(也就是ROM),这个容量是由G1的secondary program loader(SPL)所决定的且不可更改。

g1-partition-sizes

默认情况下G1是这样分区的:

The default partition sizes of a T-Mobile G1:

  • dev(开发):49460K
  • sqlite_stmt_journals: 4096k
  • system(系统):69120K
  • data(数据):76544K
  • cache(缓存):69120K

最大的分区就是你安装应用程序的data分区,它足够让你装40-50个应用程序。第二大分区是system和cache,前者是Android操作系统的分区,后者则是OTA更新和存储所需的分区,它们二者的大小是完全一样的。

那么Android操作系统实际到底占可多大的地方呢?最近一次T-Mobile官方的升级包(CRC1)是68780K。69120K-68780K=340K,这就是最近一次升级为系统分区留下的剩余容量,只有0.5%的空间了。

g1-system-partition

Android软件工程师Jean-Baptiste Queru说:

G1的空间已经被Cupcake给挤满了,我们经常要为了G1装不下Cupcake而重新调节编译出来的系统,也就是说即使Cupcake只做一些很小的核心变动,它也会填满你的G1。

如果说Cupcake已经几乎撑满了G1的肚子,那么你还指望Donut和Eclair能怎么办呢?唯一的解决办法就是重写分区表来扩充系统分区的容量。这需要刷新SPL和G1里的全部存储文件。我想T-Mobile肯定不会发布一次刷新SPL和抹去G1所有存储数据的OTA升级。

那么Google和T-Mobile找到G1升级的方式了吗?是的,他们可以搞一个特殊的升级程序先把G1的存储数据备份到SD卡里,但我想他们不会这么做。实际点吧,官方不会搞这么复杂的东西来改变G1系统分区的大小。

有人建议说Google应该允许应用程序安装到SD卡里(比如我们可以用第三方的AppsToSD),但我想他们也不会这么搞,因为Donut和Elcair的新功能都已经确定下来了,而没有这个功能。

HTC G2 Magic如何呢?

G2就好多啦,系统分区总共有90MB容量,而Cupcake给它剩下了20500K大概33%的空余区域。G2的内存存储情况:

  • dev: 49460k
  • sqlite_stmt_journals: 4096k
  • system: 92160K total
  • data: 302848K
  • cache: 81920k

mytouch-3g-system-partition

但是这20MB的容量又够几次Android升级呢?那就说不准了……

Via Android and Me