2012年9月16日星期日

阿里云OS和Android的关系

  近日,有关谷歌Android和阿里云的争论闹得沸沸扬扬,谷歌高管、Android开发领头人Andy Rubin在其Google+主页中这样写道:阿里云系统采用了谷歌Android系统的运行环境,明显是由Android系统修改得来。

  Andy Rubin,事实是,阿里云系统包含了Android中运行环境,明显是从Android中演变而来,但无法与Android兼容。基于Google对阿里云网站上应用的分析,这个平台尝试与Android兼容,但未能成功。

  阿里云OS到底是不是Android以外的东西,笔者通过技术手段对其进行一些分析。天语W700是一款使用了“阿里云OS操作系统”的手机,笔者找到一个天语W700手机的阿里云OS的刷机包。打开粗粗看一下,和Android的刷机包没两样。里面的应用全部是apk,这意味着它们都是以Dalvik可执行文件的形式存在的。

阿里云

[图1]

  Build.prop里面也指出是,Android2.2

阿里云

[图2]

  接下去来找其中的c library,因为我们知道,Android是在Linux内核之上运行了一套Google自己组织起来的架构。和通常意义上的GNU Linux一样,这个架构里最基础的东西之一就是C运行库。

  GNU Linux的C运行库是Glibc,而Android用的是Bionic。通过使用自己组织,编写的代码,Android可以从这一层以上避开GPL协议不允许发布者拥有保密源代码权利的限制。

  找到其中的lib/libc.so,也就是C运行库,用readelf查看它的符号表(这么做不涉及反向工程),可以在找到”bionic”。说明它的C运行库很可能是bionic。

阿里云

[图3]

  内核是linux kernel,基础的C运行库是Bionic,有Dalvik,上层的应用全部是Dex格式,这些东西说明W700上的“阿里云OS操作系统”不太可能是Android以外的东西。

  当然以上的内容无法用于推测,这么做是否与Android的授权协议产生了矛盾。但是有一件事情比较明确,如果提供这个手机的厂商没有提供其中linux kernel的源代码,那很可能是非法的。