宏碁與阿里雲事件附錄:到底,哪裡出錯了?從根本的 CTS 談起。

jollen 發表於 September 22, 2012 12:12 PM

宏碁與阿里雲事件的核心是 Google 要求 Android 的硬體裝置都要通過 CTS 測試要求。CTS (Compatibility Test Suite) 的目的是維護建全的 Android 生態系統。簡單來說,CTS 相容的硬體,理論上能運行所有 Play 商店上的軟體;Play 商店上的應用軟體,當然是由遍佈全球的開發者或開發商所製作。Google 的理念是希望讓所有開發者的軟體,都能在所有 Android 的裝置上運行無礙。

CTS 相容性測試

因此,Google 會對 Android 生態系統裡的製造商做出一些要求。最基本的要求就是上述的 CTS。所有裝載 Android 作業系統的裝置,都必須通過 CTS 測試。CTS 完全是技術問題,這裡面包含了近 17,000 條測試案例 (Test case)。這些案例的目的,是為了確保手機的實作品質、實作完成度、用戶體驗的一致性等等。

通過 CTS 測試後,Google 就會把你的硬體加入到「CTS 相容硬體列表」。理論上,必須成為 CTS 相容硬體,才能讓產品上市銷售。問題是,Android 不是一個號稱人人皆可自由使用的開放系統嗎?市面上不是也銷售許多沒有通過 CTS 測試的 Android 裝置嗎?

這個問題又是另一個層次了 (商標授權),目前先暫不做討論。CTS 是單純的技術問題,我認為一些媒體報導把 CTS 相容性與 Google 的商業戰略牽扯在一起,略有不妥。CTS 是為了幫助硬體廠,它是對大家都有益的必要過程。

Play 商店眾多軟體,你不知道使用者今天會下載哪個應用軟體,如果 Android 裝置在研發時,出了一丁點差錯,可能有些軟體在這個硬體上,會發生運行失敗的問題。CTS 是為了幫助硬體廠,提升產品質量,避開這些技術問題。

我們必須把 CTS 做到 100% Pass,也就是上述 17,000 個測試案例都能通過,再將報告提交給 cts@android.com。然後,你的硬體就成為 CTS 相容設備了。這是 Google 對 Android 裝置做授權的第一個等級。

GMS 套件與授權

成為 CTS 相容設備後,上面是沒有 GMS 套件的。GMS 套件包含許多 Google 官方的應用軟體,例如:Play 商店、Gmail、Google Map、Youtube、Google Calendar、Google Talk 等等。要取得 GMS,我們就要向 Google 申請授權;有難度的地方就是在這裡。

因為一些考量,Google 的授權合約裡,不一定會授權 GMS 裡的所有軟體。Google 會針對申請者的「基本條件」來客製化授權合約。這些條件並沒有很特定的項目,像是品牌知名度、工業設計、產品相互競爭關係、銷售地區等等,都會被列入考慮。但不管如何,GMS 裡一個天字第一號的軟體「Play 商店」通常都會授權給申請者。所以,申請者可能只能拿到 GMS 的部份授權,而且也不能使用 Google 商標;這是 Google 對 Android 裝置做授權的第二個等級。

第三個等級就是取得全套的 GMS 授權。根據我過去所參與過的專案來看,這個等級的難度比想像中更高,目前能取得全套授權的廠商並不多。這個等級的授權,能使用 Google 商標,簡單說,就是手機上能打上 Google 的字樣。所以,要知道有哪些廠商取得這個等級的授權,是很容易的。

授權等級

Google 針對 Android 裝置的授權:

1. 通過 CTS,授與 Android 商標使用權,但沒有 GMS 授權。
2. 通過 CTS,授與 Android 商標使用權,取得部份的 GMS 授權,但沒有 Google 商標使用權。
3. 通過 CTS,授與 Android 商標使用權,取得完整的 GMS 授權,有 Google 商標使用權。

結語

另外,還有幾點要注意的是:

1. Android 確實是開放平臺,這和上述的說明沒有衝突。將宏碁與阿里雲事件與「Android 邁向封閉」做關聯,是有失專業的報導。

2. Android 的開放有二個層面。第一、開放框架與虛擬機的原始碼,稱為 Android Open Source Project (AOSP)。第二、開放 API,即 Android SDK,人人都可以為 Android 開發應用軟體。

3. Android 的開放性是一個層面,Android 的 Ecosystem 又是另一個層面。Google 以最基本的 CTS 來維持 Android 生態系統的健全。

最後,阿里雲事件來說,不是上述的 (1),也不是 (2) 或 (3),這又是另外一個層次的問題。阿里雲,或是其它客製化的 Android ROM,可能都不考慮 CTS,也沒有通過 CTS 測試。如果把這些 ROM 放到宏碁的硬體上,可能真的不行,原因是宏碁或許和 Google 簽訂了 GMS 方面的合約,當中可能包含業界所稱的「反 Android 分裂條款」;不過詳情我們當然無從得知。

不過,會有這種失誤,除了可能這個合作關係太高調外,硬體廠的專業經理人專業度可能也要受到挑戰;當初在規劃時,就應該要做考量與溝通。花轎都到門口了,結果新娘還娶不回家,不免讓人把芧頭指向當初介紹雙方認識的媒婆 (經理人) 身上。

至於,如果把阿里雲放到白牌硬體上,是否就可行?理論上,是。但沒有通過 CTS 測試的話,因為沒有 Android 商標使用權,所以使用上要注意 trademark 的法律問題。此外,也不會有 GMS 授權,如果手機上內置了 GMS 套件的軟體,例如:「Play 商店」,那就可能會被視為盜版。此外,這個情況,也要注意 Apache License 條款裡的 Copyright 與 Patent 等法律問題。

讀者留言 (2)

  • yooza 於 September 27, 2012 15:18:

    Jamieson Potter
    最近在研究GMS,剛好也看到這篇文章
    推薦一下(有誰知道GMS的聯絡窗口嗎...雖然應該是白問)

  • sandy 於 November 5, 2012 16:36:

    大家都知道要通過CTS才會有後面的GMS,可是問題是...就算通過了CTS,就算提交了report,Google沒有回應該如何是好?試過了CTS網站上的任何mail list也沒有下文...還是說那是給有牌的大廠商玩的?

留言功能維護中。將於近日重新開放。

連絡作者

Jollen Chen,Moko365(仕橙3G教室)講師,熱愛研究 Linux 與 Android 技術。曾為 Motorola、HTC、Foxconn、LG、OPPO、騰迅、廣達電腦、緯創、仁寶等超過 50 家企業講授課程。目前在 MokoVersity 擔任軟體工程師,撰寫 Node.js 程式,也在幾家科技廠兼任 Android Framework 研發顧問。您可透過電子郵件 <jollen (at) jollen (dot) org> 或這裡與我連絡。