首頁 > 軟體

安卓是谷歌商業生態,AOSP 是開源項目

2021-05-31 22:01:06
■ 安卓是谷歌商業生態,AOSP 是開源項

一、谷歌安卓商業生態的構成

關鍵內容:谷歌、商業約束、MADA 及商業分成牽引 GMS 雲服務不分裂,ACC/CDD/MADA 及商業等手段約束的是安卓裝置不分裂。

安卓在 2005 年 - 2008 年的早期階段,在整個市場環境中處於一個略微被動的狀態。

如何另闢蹊徑?作為一家純軟體公司或者網際網路公司,谷歌想要在安卓上團結到任何合作伙伴,其唯一選擇便是開源。

所以谷歌選擇用開源的形式來做手機作業系統,而且很快的團結到了各家廠商,我們記得當年第一部安卓手機是 HTC,然後很快的包括三星,包括我們國內一些公司,還有其他的供應商都開始來做各類安卓手機。

所以安卓開源還是一個非常重要的、關鍵的戰略選擇。安卓不開源則毫無機會,或者說只有開源才有一絲殺出重圍的生機。

那麼安卓到底是怎麼一個系統呢?安卓實際上是由幾個非常重要的部分組成:

(1)第一部分叫 AOSP,即 Android Open Source Project(安卓開源項目),是在 Apache、BSD、MIT 等開源協議下發行的開源項目;

(2)第二部分是由 ACC 等協議構成的商業約束條款環境;

(3)第三部分叫 GMS,即 Google Mobile Services(谷歌移動服務),GMS 一部分是面向使用者的 APP(如 Gmail 郵件、谷歌應用商店等),一部分是用於核心後臺服務的 APK(比如地圖服務)和 GMS Core,即通常說的 Google Play 服務,提供各種谷歌專有的 API(程式程式設計介面)供應用商呼叫,這些服務的程式碼都是閉源的。

簡而言之,AOSP 雖然是一個開源的系統,但 GMS 是閉源。AOSP 雖然通過開源快速團結到了眾多開發者,但並不授予硬體製造商釋出谷歌專有應用程式的權利,也不授予安卓生態系統成員使用安卓標誌和其他安卓相關商標的權利。

基於 AOSP 開發,且滿足 ACC 協議要求的,才能叫安卓系統,支援的硬體裝置才能叫做安卓相容裝置。ACC 協議須找谷歌籤。但是是否滿足 ACC 要求,並沒有規定由谷歌進行認定。這實際就是谷歌在 AOSP 的開源項目設計上的特殊之處。

硬體製造商可以基於 AOSP 的開源協議使用程式碼,但要宣稱是安卓,至少要與谷歌簽訂 ACC 和 MADA 兩項附加協議。谷歌通過 ACC 協議實現了防止安卓分裂的目的,並通過 MADA 協議實現了防止 GMS 分裂的目的。ACC+MADA 協議的組合完美實現了谷歌對安卓的控制。

ACC 協議指的是安卓相容性承諾(Android Compatibility Commitment),ACC 協議限制了手機裝置製造商可以自定義安卓的程度。具體而言,不允許原始裝置製造商以自己的品牌(單獨或與安卓第三方開發者的品牌一起)生產不相容的安卓裝置。谷歌這種通過 ACC 協議限制競爭的行為,難言合理,且因違反歐盟反壟斷法已被歐洲廢止。

MADA 協議即移動應用分發協議(Mobile Application Distribution Agreement),該協議限定了手機廠商們預裝谷歌應用的方式,並規定硬體製造商以及任何第三方不能採取任何可能導致安卓分裂的行動。根據 MADA 協議,希望在手機裝置中預裝 YouTube、Gmail 等谷歌應用的手機硬體廠商必須預裝整個谷歌移動應用程式包;另外,所有運行安卓的裝置(包括硬體製造商沒有預裝谷歌應用程式的裝置),都必須通過谷歌有全權決定權的安卓相容性測試後才能使用安卓標識和安卓相容性商標。

2014 年,谷歌非常自信的認為,這個世界上沒有任何人可以實現另外一套 GMS,所以它也並不阻止任何人去搞一套自己的 GMS。但這在中國並未行之有效。由於谷歌不在中國開啟任何和谷歌帳號相關的服務,所以 MADA 協議自然也對中國廠商的國內市場無效。國行手機基本上都不附帶 GMS,少數預裝了 GMS 的國行手機也未經谷歌授權。在中國市場,小米、OPPO、VIVO、華為這些廠商都沒有用 GMS,整個中國的移動網際網路生態也活得好好的,甚至有很多地方的多樣性、商業價值和模式創新還優於全球。

儘管如此,ACC 和 MADA 在除歐洲以外的海外市場餘威尚存,中國的安卓硬體廠商的海外市場仍難逃被谷歌限制的命運。

OHA 是安卓生態又一個非常重要的配套,在谷歌開源生態建設中功不可沒。那麼 OHA 又是什麼呢?OHA 是 Open Hardset Alliance 的縮寫,是谷歌主導構建的開放手機聯盟。谷歌通過給予 OHA 成員享有安卓第一手資料的特權,把整個手機領域所有的重要角色(如三星、高通、德州儀器等)都吸引到了 OHA 這個圈子裡,包括運營商、手機整機商,包括晶片公司、軟體公司,包括後面的方案公司,這些公司實際上都是整個手機產業鏈裡頭非常關鍵的角色。這裡面離開了誰都不行,他們通過 OHA 獲得了優先的程式碼傳送許可權。這與公開可獲取的 Linux 不同,Linux 的文件和演進過程都是公開的,開發者可以隨時加入郵件列表,知道 Linux 正在或將要發生什麼。

谷歌上述一系列的動作,嚴控整個安卓生態於股掌之中。

二、AOSP 是遵循開源許可協議的普通開源項目

如上所述,AOSP 是谷歌在本世紀初作業系統強者雲集的時代背景下,為尋求一線生機,基於 Apache 等開源協議下發行的開源項目。AOSP 開源項目程式碼庫( https://source.android.com)提供的原始碼,目的就是為了將裝置和應用移植到 Android 平臺,同時確保裝置和應用符合相容性要求,從而讓安卓生態系統維持良好穩健的運行環境,以便更好地服務於移動使用者。

AOSP 的上層開源許可證是 Apache 2.0 寬鬆開源許可證,大多數安卓軟體都使用 Apache 2.0 許可授權開發者使用。另外,除了上層使用的 Apache 寬鬆開源許可協議外,下層還有 BSD 寬鬆開源許可協議,以及 Linux 核心的 GPL2.0 強傳染性開源許可協議。根據 Apache、BSD 等寬鬆開源許可證,開發者可以在符合相關開源許可證的要求下,對 AOSP 開源項目中的原始碼通過複製、修改、發行的方式進行使用。

但是其 Linux 核心的 GPL 強傳染性開源許可協議,是安卓在構建自身開源生態時的攔路虎。GPL 協議大家都非常清楚,就是要求所有的後續開發以及衍生開發的原始碼,全部必須要遵照 GPL 協議進行程式碼開源。如果遵照 GPL 強傳染開源許可協議,則所有的驅動也不得不開源出來。谷歌顯然無法讓所有參與生態的人(比如晶片與器件供應商)都必須去開源。從谷歌的開源生態建設考慮來看,谷歌顯然不會讓這樣的情況出現。為了開源生態構建,谷歌做了一系列巧妙的開源協議的選擇和適配,並巧妙的在使用 Linux 核心的情況下又完美的繞開了 GPL 強傳染開源許可協議,兩頭得利。

■ AOSP 的層級構成圖--基於原始圖片(來源於 https://source.android.com )繪製

Linux Kernel 雖然基於 GPL 2.0 開源許可證釋出,但也在設計之初就設定了 GPL 許可證例外,例如在核心目錄檔案 LICENSES/exceptions/linux-syscall-note 中包含 Linux 核心的 COPYING 檔案中記錄的 Linux 系統呼叫例外,該檔案用於使用者空間 API(UAPI)標頭檔案中。使用 Linux 核心的標頭檔案定義,進行系統呼叫的程式適用該 GPL 許可證例外。

Linux Kernel 中 GPL 與非 GPL 的分界線為 GNU glibc, 其普通的系統呼叫為 GNU glibc 向外暴露的系統呼叫介面。而安卓則將 Linux 常用的 GNU glibc 替換為 Bionic libc 類庫(改用寬鬆許可證 BSD),並通過該 Bionic libc 類庫暴露了更多原來在核心空間才能使用的介面,讓使用者空間的驅動能夠充分利用核心和硬體資源。

AOSP 在使用者空間和核心空間之間設定本質為使用者空間主驅動的硬體抽象層(HAL),規避 GPL 的硬體廠家把需要保護的商業機密以及智慧財產權相關的邏輯放在 HAL 層,以二進位制包的方式釋出,不需要公開原始碼。

就這樣,谷歌幫助安卓開源生態裡面的應用開發者(當然包括晶片和器件供應商在內)解了 GPL 強傳染性許可協議的套,讓下游開發者放心大膽的去使用 AOSP 的開原始碼,既保護了他們的智慧財產權,也保護了他們的商業利益。

因此,AOSP 本質始終是開源項目,只要遵循 AOSP 規定的開源許可協議,任何開發者都可以合規的進行開原始碼使用。這個區別於安卓商業生態。

⊙ 以上內容版權歸屬「iNews新知科技 」所有,如需轉載,請務必註明。


IT145.com E-mail:sddin#qq.com