夜雨聆风学习资料网

ARTICLE · 1042388

Android 17加了新API,源码为什么没进AOSP?

Android 17加了新API,源码为什么没进AOSP?

2026年9月15日,谷歌把Android 17 QPR1推送给了Pixel手机。季度更新本来不值得专门写,这回的问题是,这一版给开发者加了新接口,对应的源码没有同步放进AOSP。用别家安卓手机的人,要多等一个季度才摸得到这些新功能;做定制系统的厂商和第三方系统团队,处境更难一点。AOSP就是安卓开源项目,各家厂商做自己的系统,底层代码都从这个公开仓库里取。

第二天,做安全定制系统的GrapheneOS团队在自己的账号上发了一句话:这是自Android 3.x以来,第一次出现“加了新API却没有对应AOSP发布”的情况。9月18日,这条帖子被搬到Hacker News上,1100多分,640多条评论。中文这边的转述,大多简化成了一句“安卓要闭源了”。

我把两版的API差异页逐条对了一遍,又去AOSP的源码树里挨个查了那些新名字,还数了一遍它的历史发布标签。结论和那句话出入不小。

这次到底多了哪些东西?

谷歌的开发者站上有一份官方的API差异报告,把37.1版和37版逐个符号做了对比。API是应用调用系统功能的入口,比如“读一下相册”“把这个键改成别的功能”,都得走系统给的入口。Android 17正式版是API 37,这次QPR1把它抬到了37.1。

报告里的总数是:新增84项,修改233项,删除0项,整体差异0.52%。换句话说,这是一次很小的更新,不是什么大改版。

最显眼的一块是外设按键自定义。新增了一个专门管人机输入设备的包,配套一批“什么触发、触发后干什么”的类,还有一条新权限。落到功能上,就是允许应用把接上的键盘、鼠标的某个键改成打开某个应用或者某个网址。管输入设备的那个老包,这次改动幅度六成,是全部包里最大的。

剩下的都不大。相册选择器嵌到应用里时可以指定默认打开哪个标签页;系统媒体库多了一个查“最近删除”的入口;文件选择器支持在子目录里搜索;健康数据里加了医疗器械的唯一标识;还多了一个新键码,从名字看是给“对当前画面发起提问”准备的。

还有一个底层接口。它把Linux上那条madvise系统调用开放给了应用,应用可以告诉系统“这块内存我马上还要用”或者“先收走吧”,连带来了24个配套常量。

源码真的一行都没有吗?

这是我最想自己看一眼的地方。AOSP里Android 17这条线最新的发布标签是android-17.0.0_r1,对应6月正式版那次推送,我就拿它来对。

版本号那个文件里有CINNAMON_BUN等于37,Android 17的内部代号是肉桂卷;也有去年12月那次小版本留下的BAKLAVA_1,那是Android 16的小版本1。唯独这次文档里新公开的CINNAMON_BUN_1,源码里没有。

管人机输入设备的那个类文件是在的,打开一看只有一个方法,用来问“你有没有权限列出接上的外设”,按键自定义那一整套方法一个都不在。输入管理类里查不到新加的那几个方法,框架的权限清单里也找不到那条新权限,新键码同样没有。

但换几个名字去查,结果又反过来了。madvise和那24个常量早就写在源码里,只是外面套了一个开关,没打开;文件选择器的子目录搜索方法也已经躺在源码里了。QPR1干的事情有一半是把这些写好的东西打开、顺便把文档公开,另一半才是上了AOSP里确实没有的新代码。

所以“新API的源码全都没给”这个说法要打个折。准确的说法是:这一版新增的84项里,一部分是开关,一部分是新代码,后者在公开仓库里找不到。

这次和2011年那回像不像?

2011年2月,谷歌发布了Android 3.0的正式版平台,第一批安卓平板同期上市,源码没有跟着公开。外界追问了一个多月,当年4月,负责安卓的工程副总裁安迪·鲁宾在官方博客上回应说,我们仍然是一个开源平台,代码准备好了就会发,团队正在把平板上的新功能搬到手机上,做完就公开,这次推迟不代表战略变化。

结果3.x的源码再也没有单独发过。我把AOSP的发布标签从头翻到尾数了一遍,2600多个标签里,3.x开头的一个也没有。平板那部分代码后来跟着2011年11月的Android 4.0一起公开,离3.0上市隔了将近9个月。

这次的形状不同。Android 17本体的源码在AOSP里,6月就推了,标签也在。缺的只是9月这个季度更新的增量,而且GrapheneOS自己在帖子里也写了,这批接口会在12月的QPR2随代码进AOSP。3.0那次是整版源码始终没给,这次是差一个季度。把两件事画等号,就把话说大了。

写到这里我停下来核了一遍口径。GrapheneOS说这个变化从Android 16就开始了,但我去看AOSP的分支列表,Android 15和Android 16都有各自的QPR1、QPR2发布分支,到Android 17就只剩下主线和安全两条。谷歌自己在AOSP文档页顶上挂着一条公告,写得更清楚:2026年起,源码只在第二季度和第四季度推送到AOSP。9月正好卡在两次之间。

“安卓要闭源了”这句话错在哪?

它把两层东西混成了一层。AOSP从来就不等于你手里那台安卓手机的全部。Play商店、谷歌地图、谷歌的消息推送,这些谷歌自家的应用和服务合称GMS,一直是闭源的,厂商要预装得单独签授权,还得通过兼容性测试。国行手机没有这一层,用的是各家自己的服务。开源的部分,从第一天起就只是底下那个系统底座。

这次变的也不是底座的开放与否,是它公开的频率。过去一年有4次季度更新,代码基本跟着走;现在只公开2次。

真要说哪件事更能说明谷歌的态度,我觉得是另一个数字。AOSP公开仓库里那条主干开发分支,框架部分最后一次提交停在2025年3月26日,到今天一年半没有动过。谷歌在2025年3月宣布把安卓的日常开发搬进内部分支,公开仓库只留发布用的分支。所以“安卓在公开的地方一天天写出来”这件事,一年半前就结束了。这次只是因为文档和源码对不上,被人从一个API差异页上看了出来。

对普通用户和国内厂商,各自意味着什么?

普通用户这边,路径很直白。Pixel用户现在就能用上这些新东西;换成别的品牌,要等12月的QPR2把代码放进AOSP,厂商再合并、适配、测试、推送,实际到手常常还要再等几个月。功能一样,先后不一样。

用第三方系统的人受的影响最直接。GrapheneOS说他们在9月15日之前就把自己的代码移植到QPR1上了,但没有拿到发布许可,只能先把Pixel的固件和驱动从QPR1往6月那版上倒腾,撑到12月。这个季度的新功能,他们的用户基本拿不到。

安全补丁那一块更实在。9月15日当天谷歌还发了一份Pixel更新公告,我打开数了一遍,110条,大头确实是Pixel自家的东西,光Bootloader就24条,还有调制解调器、指纹芯片、自研的图像处理单元。

但里面也夹着几条不那么Pixel的。KeyMint,安卓管密钥的那个组件,一条严重级提权;还有蓝牙、系统界面、设置、生物识别、验证启动,全是每台安卓手机都在跑的通用组件。这些条目后面都带着星号,公告自己在问答里解释,带星号表示问题不公开,补丁一般包含在Pixel的驱动包里。别家厂商想拿到同样的修复,按GrapheneOS的说法,得等12月那一版。

国内厂商分两头看。做国行机的本来就不依赖GMS,底座取AOSP,受到的影响是节奏:想跟上新接口,要么等12月,要么自己写一套私有实现,后者等于让应用开发者多适配一份,也多出一层碎片化。

做海外机型的更被动,既要过兼容性测试拿GMS授权,又只能按谷歌放码的时间排产品计划,而Pixel比他们早一个季度拿到新功能和一部分修复。GrapheneOS在帖子里说,这种时间差“很可疑”,他们怀疑谷歌的法务团队未必清楚,自家手机拿到了这样的优待。

那真正该盯的是哪一件事?

不是“闭源”这两个字。谷歌没有关掉AOSP,Android 17的源码在那里,12月还会有下一批。变的是谁先拿到、隔多久拿到。对靠AOSP过日子的厂商和第三方系统来说,一个季度的时间差,比一句口号难受得多。

安卓还是开源的,只是从2026年起,它只在谷歌选定的两个时间点开源。

资料来源:GrapheneOS官方账号帖文(2026-09-16)及回帖、Hacker News讨论(2026-09-18)、谷歌Android开发者站API差异报告(37.1对37)、AOSP官方文档“代号、标签和版本号”页及分支与标签记录、2026年9月Pixel更新公告与安卓安全公告、Android官方博客2011年4月文章。

#Android 17#AOSP#谷歌#安卓开源#GrapheneOS#定制系统
相关阅读
有人把AirPods从苹果生态里"解放"了出来,开源项目搬到安卓上Linux 7.2被叫做史上第二忙的内核,这说法经得起核吗?

相关学习资料