关注了就能看到更多这么棒的文章哦~

Jake Edge
 Gemini translation
 原文链接:https://lwn.net/Articles/1055391/ 

OSS Japan (2025 年日本开源峰会) 

如今,运行 Linux 的手机已经无处不在,自从安卓 (Android) 开始在智能手机市场占据主导地位以来就是如此。不幸的是,Android 逐渐变得对自由不友好,并演变成了一场隐私噩梦。在 2025 年日本开源峰会 (Open Source Summit Japan 2025) 上,Luca Weiss 发表了题为“我们需要一个开源的手机操作系统”的演讲,描述了智能手机的现状,并概述了 postmarketOS 这一作为移动设备替代方案的 Linux 操作系统。 

Weiss 介绍自己是 Fairphone 的软件工程师,“这是一家致力于制造可持续移动手机的荷兰品牌”。在业余时间,他是 postmarketOS 的核心贡献者,也是 OpenRazer 项目(旨在为 Razer 游戏外设创建 Linux 驱动程序)的维护者。他强调,这次演讲并非代表其雇主,“这些仅代表我的个人观点”。 

手机操作系统

他首先指出,目前的移动操作系统处于双头垄断地位:苹果手机的 iOS 和来自 100 多家制造商手机的 Android。除了少数例外,所有的 Android 手机都预装了专有的 Google Play 服务 (Google Play Services),以便使用 Google Play 商店。大多数消费者需要它,因为他们不知道除此之外还能从哪里获取应用;此外,他们需要的一些应用仅在提供 Google Play 服务的手机上可用。 

为了能够搭载这些服务,Android 手机制造商必须受 Google 规则的约束,这是一把双刃剑。好的一面是,Android 版本会有一些最低安全要求,以及确保应用 API 兼容性的政策。然而,这些制造商在手机功能上的独立性要小得多。这也需要与一家美国公司建立业务关系,这对于某些国家的公司来说目前可能存在问题,而且尚不清楚这些限制是否会随时间推移而扩大。除此之外,Google 随时可能更改规则,甚至可能失去兴趣,完全停止提供 Android 源代码。 

他说,由于这种双头垄断没有替代方案,导致了多个问题。Google 捆绑并推行侵犯隐私的应用;他举的例子是 Google Photos,它默认将照片发送到 Google 云端,如果禁用了该功能,它会经常弹出消息“警告”用户照片没有备份,而关闭弹窗的默认操作是重新启用该功能。 

虽然安卓开源项目 (Android Open Source Project, AOSP) 是在 Apache 2 许可证下提供的,但开发工作是在闭门造车的情况下完成的,发布时就像是“隔墙扔砖”;他说,向 AOSP 贡献代码并非不可能,除非该功能不符合 Google 的商业利益。Weiss 说,还有一个问题是 Android 是否会保持开源。与此同时,安装非来自 Play 商店的应用(“他们称之为‘侧载 (sideloading)’”)正被限制为只能安装由向公司注册的开发者制作的应用,这损害了那些无法再安装任何自己想要的应用的用户。 

任何运行 Android 的手机中都有大量的专有代码,即使这些代码被开源软件替换,调制解调器和系统的其他部分仍会运行专有代码。Android 作为用户空间程序运行在 GPLv2 许可的 Linux 内核之上,因此 Android 代码的发布与否取决于 Google 的意愿,但当使用该内核的手机开始发货时,内核代码需要发布。然而,Android 和 Linux 仅运行在手机片上系统 (System-on-Chip, SoC) 的一小部分上;还有多个各种类型的协处理器(图形处理器 (Graphics Processing Unit, GPU)、神经网络处理器 (Neural Processing Unit, NPU) 等)运行着专有固件 (proprietary firmware),这些固件无法被自由软件替换,因为它们使用了由厂商控制的密钥进行签名。即使禁用了签名检查,据他所知,目前还没有人为这些固件创建自由替代方案的努力。 

Weiss 说,还有一些替代的 Android 发行版(或 ROM),如 LineageOS、/e/OS、CalyxOS 等,它们比原生 Android 更开源,但仍依赖于专有的二进制块 (blobs)。原生 Android 中搭载的库和二进制文件正被整合到社区发行版中。这包括 GPU 驱动程序、调制解调器驱动程序等,它们位于 Android 和 Linux 内核之间,但使用非标准的内核接口;他也未听说有任何努力去用开源替代方案替换这些组件。 

依赖这些二进制块意味着所有的安全更新必须来自厂商;当厂商因为设备生命周期结束而停止更新时,这些组件的更新将难以获得,尽管有时可以通过类似设备的更新来获取。这些替代的 Android 发行版还依赖于 Google 发布 AOSP 代码,过去这通常在代码发货时发生,但最近被推迟了两个月。自演讲以来,该公司已宣布每年将仅发布两次 AOSP 代码。 

postmarketOS

在介绍该项目时,他提到 postmarketOS 的标语是“为手机及更多设备打造的 Linux 发行版……”。其目标是为手机打造一个用户空间和内核代码完全开源的操作系统。PostmarketOS 的开发者希望确保“为能够长期支持设备奠定基础”;这之所以成为可能,是因为他们使用的是上游 (upstream) 内核,而不是旧内核的分叉。这允许更新所有组件,“如果存在不兼容,你实际上可以在没有任何重大问题的情况下修复它”。 

该发行版的目标是尽可能通用,而不是拥有大量特定于设备的部件。目前,大多数设备都有特定于设备的根文件系统 (root filesystem) 和引导镜像,但计划是为所有设备提供单一的根文件系统,只需针对设备定制内核和某些配置。 

Weiss 说,postmarketOS 是一个志愿者驱动且由捐赠资助的独立项目。这些捐赠被用于资助基础设施,包括“供大家共同研究的黑客手机”,以及“为 FOSDEM 会议准备一些东西,我们总是会参加那个会议”。它使用 Alpine Linux 及其包管理器 (package manager),因此 postmarketOS 用户“可以安装软件包仓库中你想要的任何东西”。在 Alpine 基础之上,postmarketOS 提供了一些额外的工具、设备包、用于创建安装镜像的构建基础设施,以及包括详细维基 (wiki) 在内的文档。 

Android 设备基于特定 LTS 内核 (Long Term Support kernel, LTS kernel) 版本的分叉,在设备的生命周期内该版本永远不会改变。这个生命周期通常是三年,非常符合 LTS 内核的生命周期;一旦结束,“你就会被困在这个旧的 Linux 内核版本中,与上游 Linux 版本相比,它增加和修改了数百万行代码”。 

与此不同,postmarketOS 专注于使用上游内核,通过从 kernel.org 获取最新版本并添加特定设备所需的更改。开发者正致力于将每个设备的“10 到 100 个补丁”合并到上游内核中,这样差异就会变小,以后就能更容易地使用上游内核。此外,还可以测试发布候选版本 (release candidates) 和 linux-next,以确保不会出现任何回归,并且设备能够继续与即将发布的内核版本协同工作。 

通过坚持使用上游,项目可以获得内核中的最新功能。“内核中发生了很多非常酷的事情,没有理由不让你的手机也拥有这些功能”。用户空间组件喜欢使用较新的内核功能,因此最好不要落后。 

有时 postmarketOS 开发者会被问到,为什么他们不像其他项目那样使用 Android 的某些部分。例如,Ubuntu Touch 是 Halium 项目的贡献者,该项目重新封装了“Android 部件”并提供了一个转换层,允许 Android 硬件抽象层 (Hardware Abstraction Layers, HALs)(如相机 HAL)在常规 Linux 用户空间之上工作。它还允许通过 libhybris 在使用 GNU C 库 (glibc) 构建的程序中使用基于 Android C 库 (bionic) 构建的二进制文件。他说:“这样做有一些非常务实的原因”,因为它允许依赖硬件制造商为硬件提供功能良好的相机驱动程序。 

然而,这种方法也有一些缺点,包括在外设功能方面依赖 Android 更新和专有二进制块。它还会使项目依赖于“有时在 Android 组件和 Linux 组件之间有点不稳定的层”。除此之外,它“不鼓励开发原生解决方案”,如 libcamera,他指出在他之前的演讲中刚好提到了这个项目。这确实意味着目前支持的相机在照片质量上与 Ubuntu Touch 相比“相当有限”;目标是在始终使用“100% 开源软件”的同时达到可接受的照片质量。 

现状与计划

Weiss 说,目前 postmarketOS “在任何意义上都不是一个成品”,但它仍在使用中。该项目没有任何“向总部报告”的功能或其他分析手段,因此它依赖于来自社交媒体和在会议上与用户交流的“传闻证据”来了解其使用情况。有些人确实将 postmarketOS 作为主力机 (daily driver) 使用,尽管其中一些人还会携带第二部手机用于通话和访问银行应用等。“银行对很多应用的要求相当烦人。” 

有很多设备受到 postmarketOS 的支持:111 个属于“社区”类别,涵盖了支持最好的设备;342 个在“测试”中,范围从勉强能启动到在某些用例下基本可用(“在沙发上看 YouTube”);250 个在“下游”类别,这些设备仍在使用该设备的 Android 内核。项目开始时,上游内核对手机设备的支持很少,因此所有设备都在下游类别中;现在内核支持大约 450 台设备,因此这些设备随着时间的推移已移动到其他类别。 

他说,postmarketOS 目前还没有为普通人做好准备,“但我会说它绝对已经为普通黑客做好了准备”。那些想要在手机上钻研的人会发现它处于良好状态;即使是测试类别中的大多数手机也可以启动并允许通过 ssh 登录。到那时,“你就可以用手机做些有趣的事情了”。他提到他在 FOSDEM 2025 上的演讲详细介绍了 postmarketOS 的设备支持情况。 

未来有很多计划,各种事情正在推进中,但由于 postmarketOS 是志愿者驱动的,因此没有真正的路线图。他建议关注其博客。那里发布了每月进度报告,可以很好地了解进展情况。他说,与一两年前相比,今天能正常工作的内容有很大不同。 

“你今天实际上能用 postmarketOS 做什么?”第一步是安装它;参会者可能已经有一部旧手机——或者可以便宜地买到二手的——来运行它。启动后,可以通过 ssh 或 GUI 对手机进行操作,例如使用 Plasma Mobile、Phosh、GNOME Mobile,或者使用 Sxmo 来体验平铺式窗口管理器。 

毕竟它是一个 Linux 系统,所以用户可以做任何在其他此类系统上能做的事情:运行 Docker 容器、建立手机 Kubernetes 集群,或访问各种类型的 USB 外设。compost.party 网站(在撰写本文时没有响应)运行在“一部太阳能驱动的破旧旧手机”上;他说,postmarketOS 可以轻松用于此类用途。其他创意用途包括作为媒体播放设备、乐器或音频制作系统的一部分。 

他指出,postmarketOS “确实需要一些”技术方面的帮助。大部分工作集中在上游项目上,例如用于更多硬件支持和稳定性的内核,像 libcamera 或 feedbackd(用于触感和视觉反馈)之类的中间件项目,改进 UI 或为各种移动 GUI 项目添加功能。其他可能性包括升级现有应用或开发新应用,并帮助维护 Alpine 的 aports 仓库和 postmarketOS 特有的 pmaports 仓库。大部分工作可以在桌面版 Linux 上完成,其中一些不仅会改进移动版 Linux 或 postmarketOS,还会改进在大系统上运行的 Linux。 

Weiss 说,项目也欢迎非开发者的贡献,并且有很多不同的参与方式。如果他们“对技术充满好奇”,贡献者可以尝试在手机上安装 postmarketOS;如果在安装过程中遇到任何问题,他们应该指出文档不足的地方——或提交更新来修复它。用户界面和应用的翻译会有所帮助,在不同领域(包括面向非技术人员的领域)传播该项目的信息也很有意义。贡献者可以协助撰写每月的博客文章、制作播客(由于缺乏时间,播客目前有点停滞),或者在世界各地申请资金资助。 

Weiss 在结束演讲后回答了观众的几个问题。有人问及他会向那些想开始接触 postmarketOS 的人推荐哪款“黄金设备”。他说,OnePlus 6 和 6T 长期以来一直受到项目推荐,但它们已经老旧到在二手市场上很难找到了;Pixel 3a 得到了很好的支持,Fairphone 5 也是如此。他建议查阅维基上的设备页面(见上文链接),这可以根据最需要哪些外设(相机、NFC 等)来缩小选择范围。 

感兴趣的读者可能想看看这次演讲的 YouTube 视频和 Weiss 的幻灯片。 

[ 我要感谢 Linux 基金会,作为 LWN 的差旅赞助商,协助我前往东京参加日本开源峰会。 ] 

LWN 评论概述:

这些评论反映了社区对 postmarketOS 的不同定位看法,从将其视为黑客的实验玩具到对其未来作为通用系统的期待与质疑。 

一位评论者认为,虽然人们经常把 postmarketOS 标榜为 GNU/Linux 桌面式手机的未来,但他对此表示怀疑。他认为 pmOS 更多是让主线 (mainline) 内核在各种随机手机上启动并证明其可行性的平台,而开发者往往在完成最核心的启动工作后就转向下一个目标,而不是完成那剩下的、极其困难的 10% 实用化工作。他认为这更像是一个内核黑客的玩具,而非普通用户感兴趣的东西。 

另一位评论者对文中提到的“三重否定”句式表示困惑,讨论了将代码贡献给 AOSP 的实际难度与 Google 商业利益之间的关系。 

关于 SailfishOS 的讨论则提到,在手机能像 PC 一样自由安装任何系统之前,可能需要一些过渡性的方案。SailfishOS 虽然包含闭源组件,但其独立性、Linux 基础以及对 Android 应用的兼容层使其在对抗 Google 和 Apple 的竞争中看起来更有生命力。 

还有用户分享了自己在 PinePhone 上使用 postmarketOS (配合 phosh) 的经历。虽然调制解调器经常崩溃,但基本可以通话、发短信和上网。他特别提到,在别人面前用 Vim 发短信时人们脸上流露出的惊恐表情非常有趣,对他这种极少用手机的人来说,这已经是他的“主力机”了。 

最后,有用户提出了关于开源友好型手机价格昂贵的现实问题,并表达了对类似 xfce 哲学(稳定、不随变动)的手机系统的渴望,希望能有一个可以长期运行开源技术栈、像 Zx81 那样可以DIY的简单手机。 

  全文完
 LWN 文章遵循 CC BY-SA 4.0 许可协议。 

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐