首先,您必须清楚Google的Android代码和Linux内核代码是分开的。Android本身已获得Apache许可2.0许可,这是许可的,用Wikipedia的话来说:
Apache许可证是允许的,因为它不需要使用同一许可证来分发软件的派生作品或对原始版本的修改。
因此,通常不会提供任何供应商对Android的修改。
其次,如果Linux内核已获得GPLv2许可,则该代码将公开发布,既可以埋藏在设备中的某个位置(可能性较小),也可以在供应商网站上一些晦涩的页面上下载,这些页面专门用于开放源代码。他们的产品。
但是,对公开提供的Linux内核代码有一个主要警告,即具有类似功能的专有驱动程序和内核模块。Linux内核可以加载在专有许可下分发的二进制Blob,而运行设备所需的此类Blob的源代码自然不会分发。归根结底,即使您确实设法获得设备专用的内核源代码,也不一定能够使用它来编译自己的基于Linux的功能操作系统。
在上下文中允许
许可许可证到底是什么意思?从您的评论中,我认为您已将其理解为能够运行其他许可的或专有的软件。但这是错误的。
在这种情况下,允许是指让您随心所欲地使用源代码是多么允许。
在法律上您有义务公开您对GPL许可代码所做的任何修改,因此GPL不允许。它不允许您接受每个人的贡献,对其进行更改(不管它变的更好或更糟)并将其隐藏起来。如果要分发二进制文件,则还必须分发源代码。因为它并不会允许你做私人的变化因此它是不宽容的。
Apache许可证和BSD许可证是许可许可证的示例。与严格不允许的GPL相反,它允许您对根据其许可的代码进行任何修改,并将其保留给您自己,换句话说,它是允许的。就是说,您可以使用Android代码,即使您对其进行了足够的更改以使其无法识别,也可以自行保留它。而这正是Android设备供应商所做的。