小米公司為什麼不按照 GPL 協議要求公開手機的內核?


題主所說的內核是指Linux Kernel, 法律上是必須公布的,實際上也是公布了的……

只是小米可能做的沒有HTC/三星/Moto那些大公司那麼友好,在主頁有個開發者專區給下載人。而是扔個壓縮包在論壇啊什麼的地方,而其他人放到github。比如:fallowu/xiaomi-kernel-m2 路 GitHub

Linux內核裡面,廠商不需要要多少定製工作,一般由晶元廠商提供,不用擔心。


android的內核就是指的linux,採用的開源許可證是GPL v2,根據gpl,所有使用linux的系統都必須帶有一份linux源碼,大部分公司的做法是把源碼放在公司網站供用戶下載,用戶還可以去函索取源碼光碟。

至於閉源驅動,可以不包含在linux內核中,而是在HAL層的userspace(用戶空間),可以不用提供源代碼。

android剩餘的大部分文件採用寬鬆的apache 2.0開源許可,手機廠商可以使用修改源碼,而不用開源。android系統中除linux內核外,仍有部分庫文件如ssh等採用gpl許可,按規定仍需提供源碼。

至於小米之類的國內android廠商不按規定提供源碼,用戶只能無可奈何罷了。不過要想走出國門,成為國際廠商,不按規矩辦事是會吃大虧的,老外認死理的人多的很


這裡的內核指得就是手機boot分區的
kernel Zimage的源代碼

這部分東西的名字叫做GNU linux kernel,是以gplv2許可授權的,因此小米沒有理由不發布它的源代碼。

但是早在半年以前solidot就有報道說小米從未公開過其產品使用的linux kernel

但是即便有這部分代碼,在缺少驅動的前提下做移植依然是很困難的。

可以參考kindle fire的ics移植。
kindle fire只有2.3的源代碼,而其中的驅動對4.0系統的兼容很差,讓hashcode花了一年時間才折騰出好用的內核


更新:小米2的kernel源碼:
https://github.com/fallowu/xiaomi-kernel-m2

1、內核是谷歌的,早公開了。如果是cm的,cm有源碼;
2、miui部分功能是有源碼的,供第三方適配公司下載編譯,源碼在github,自己找;
3、硬體驅動部分,這個是廠家提供的,一般不公開,無法公開,這也是安卓被攻擊的地方;
4、miui核心利益部分和私有服務部分,包括小米商城、遊戲中心等推廣應用平台,這個無需公開的。

綜上,一個手機系統是個複雜的生態鏈,不是簡單的一句話「按照gpl協議公開源代碼」就能完事。
目前國際大廠,我知道的,除了htc曾經的某一款手機公布過源碼(剔除私有服務)外,三星,sony都木有源碼。


看前面回答的人對內核的意思不太明白,個人猜測樓主問這題目的原因:為什麼小米手機第三方ROM那麼少,大部分還是基於官方原生的美化ROM,有人給移植過CM問題一大堆,移植的人說是小米不開放源代碼...


小米做內核么?直接看CM的。再說了,開放內核他又不賺錢


GPLv2的解釋:對源代碼的修改版本也必須公開源代碼,谷歌公布了修改了的linux內核,在此基礎上構建了基於apache的android,apache協議相對於GPL協議寬鬆,允許修改android的商業公司閉源。因此,小米也只有義務公開kernel部分代碼,而修改的android部分甚至MIUI都完全不需要公開


直接調用kernel介面的代碼才公布,比如A是kernel,B是調用kernel介面的程序,C是小米的代碼
B調A,B是需要開放源代碼的,但是C調B,C是不需要開放源代碼的
我理解的GPL


小米用的需要開放源碼的部分,是高通提供的底包,高通的底包一直涵蓋了包括Android 虛擬機在內的所有底層支持,這部分開放源碼的義務是高通承擔,高通也確實開放了源碼。
MIUI 在高通底包上做的二次開發,這部分屬於私有代碼,可以不開放。
這也是Linux 的特點。


內核kernel源碼開放是對開發者而言,適配rom,比如cm能最大的保持硬體工作正常,一般國內的說要小米開放源碼是說的miui rom的源碼,這個顯然不會放出來,如果這個放出來的話,小米就失去了競爭力,這是他唯一做的好的。所以小米走了另外的路,就是採用patch插壯的方式適配miui給第三方,這也是為什麼現在的miui在低於2G RAM的機器卡的原因,patch插壯的方式在android.jar framework.jar…插入了大量smail代碼,不卡就奇怪。而以前基於cm2,3移植的時代就流暢。


Kernel是指經過修改的Linux系統,包含了很多為Android定製的代碼,以及硬體驅動。

Android本身不是GPL的,Google做了點事情使得如此這樣,以便Android上面的開發不受GPL限制。所以Android系統上面開發的界面等等都不需要開放源代碼,所以鎚子ROM才能直接閉源。


推薦閱讀:

Andriod 遊戲中成功的有哪些?
開發者到底需不需要重視 Android 平板?怎樣做才能避免錯過市場趨勢,又不會過早地投入資源?
Android 市場目前最大的尷尬不是軟體數量,而是質量及安全,Google 如何才能扭轉這一被蘋果鄙視的困局呢?
摩托、三星等品牌同一型號的android手機為什麼不能像蘋果手機一樣採用統一的硬體,固件(rom)可以通刷?
為什麼這麼多人說 Android 手機比 iPhone 好?

TAG:小米科技 | Android開發 | Android手機 | Android | 小米手機 |