安卓到底是不是100%开源?
广泛意义上是,aosp毫无疑问是oss,Google是主要的贡献者和领导者,每半年公开一次aosp源代码。源代码发布方式和参与方式并不那么GNU,但并不能说aosp不是开源软件

使用linux内核的部分大多继承GPL2.0协议开源 “壳子”大多使用Apache协议,因此这一部分可以被商用且不用继承GPL协议

为什么争议这么多,我觉得有几点是可以说道,主要是以下2点:
1实际到手的Android大多不是开源软件,因为移动端市场的竞争需求。厂商大多选择订制Android,这些Android大多不是开源软件,如果讨论的是这些只是by Android的ROM答案需要按照情况。而且商业需求很大的结果导致bl授权收紧,你的Android设备很可能没法享受aosp的自由。但这些版本在逻辑上不能代表aosp项目本身,不影响aosp本身是开源软件,你可以选择开放bl的厂商(Google,nothing,Motorola……)或虚拟方案刷入LineageOS这种选择完全开源的ROM。

2.绝对意义上GNU/linux内核本身就不是完全的开源软件,很多固件厂商并不提供开源驱动。GNU/linux大多数内核本身包含一些如cpu微代码之类不自由部分,GNU基金会只承认linux-libre(去除了这些部分,但因此牺牲了很大的兼容)内核完全符合GNU的要求,并且出现在http://gnu.org的自由软件列表,aosp如果想要真正作用在硬件上大多时候也需要安装闭源库。从绝对意义上aosp不能被称为绝对的开源软件。当然这有点硬抬杠的意思。这些代码只占有极小数部分,并且GNU/linux和aosp都有做到隔离。所以我更倾向于认同aosp和linux其余内核(比如我使用的linux-zen)可以被叫做自由软件。

[GNU软件列表]
https://www.gnu.org/software/software.html[下载安卓源代码]
https://source.android.com/docs/setup/download(以上只是个人的认知和理解,本人不是专业人员,如有问题请指证)