编者注:CopperheadOS 在 许可 下获得 Creative Commons Attribution-NonCommercial-Shar
几年前,我决定用运行在自由和开源软件 (FOSS) 上的技术取代专有技术(主要是 Apple 产品)。我不能说这很容易,但我现在很高兴地将 FOSS 用于几乎所有事情。
最困难的部分涉及我的手机。如今,手机和平板电脑基本上只有两种选择:Apple 的 iOS 或 Google 的 Android。由于 Android 是开源的,它似乎是显而易见的选择,但我对 Android 上缺少开源应用程序以及 Google 在这些设备上的普遍存在感到沮丧。
所以我进入了自定义 ROM 的世界。这些项目采用基本的 Android 开源项目 (AOSP) 并对其进行自定义。几乎所有这些项目都允许您安装标准的 Google 应用程序作为单独的软件包,称为 GApps,并且您可以根据需要在手机上拥有或多或少的 Google 存在。GApps 软件包有多种版本,从 Google 设备附带的全套应用程序到“pico”版本,后者仅包含运行 Google Play 商店所需的最低限度软件,然后您可以从中添加您喜欢的内容。
我最初开始使用 CyanogenMod,但当该项目朝着我不喜欢的方向发展时,我切换到了 OmniROM。我对它非常满意,但仍然想知道我在幕后向 Google 发送了哪些信息。
然后我发现了 CopperheadOS。Copperhead 是 AOSP 的一个版本,专注于提供最安全的 Android 体验。我已经使用它一年了,并且非常满意。
与其他致力于添加大量新功能的自定义 ROM 不同,Copperhead 运行的是相当原生的 AOSP 版本。此外,虽然您通常在玩自定义 ROM 时首先要做的是添加 root 访问权限到设备,但 Copperhead 不仅阻止了这一点,而且还要求您拥有具有验证启动的设备,因此无法解锁引导加载程序。这是为了防止恶意代码访问手机。
Copperhead 从 AOSP 基线的强化版本开始,包括完全加密,然后添加了 大量东西,我只能假装理解。它还在内核和 Android 补丁应用于主线 Android 版本之前应用了许多内核和 Android 补丁。

opensource.com
它还有一些我喜欢的更明显的功能。如果您使用 PIN 码解锁设备,则可以选择对数字进行加扰。

opensource.com
这应该可以防止任何随便的肩窥者弄清楚您的 PIN 码,尽管这可能会使在驾驶时解锁设备变得更加困难(但任何人都应该在车内使用手机,对吗?)。
它解决的另一个问题涉及通过监控人们的 WiFi MAC 地址来跟踪他们。大多数使用 WiFi 的设备都会主动扫描无线接入点。此协议包括接口的 MAC 地址,并且有许多方法可以让人使用 移动位置分析 来跟踪您的移动。Copperhead 有一个选项可以随机化您的 MAC 地址,从而抵消此过程。

opensource.com
安装应用
这一切听起来都不错,对吧?好吧,困难的部分来了。虽然 Android 是开源的,但许多 Google 代码,包括 Google Play 商店,不是。如果您安装 Play 商店及其工作所需的代码,您将允许 Google 在未经您许可的情况下安装软件。Google Play 的服务条款 中写道
“如果 Google 确定更新将修复与该应用相关的严重安全漏洞,则 Google 可以更新任何 Google 应用或您从 Google Play 下载的任何应用到此类应用的新版本,无论您在 Google Play 应用或您的设备中选择了哪些更新设置。”
从安全的角度来看,这是不可接受的,因此您不能在 Copperhead 设备上安装 Google 应用程序。
这需要一些时间来适应,因为我已经开始依赖 Google 地图等功能。Copperhead 附带的默认应用程序存储库是 F-Droid,它仅包含 FOSS 应用程序。虽然我之前在 Android 上使用了许多 FOSS 应用程序,但完全只使用自由软件还是需要一些努力的。我确实找到了一些方法来欺骗这个系统,我将在下面介绍。首先,这里有一些我从 F-Droid 开始喜欢的应用程序。
F-Droid 最喜欢的应用
K-9 Mail

opensource.com
甚至在我开始使用 Copperhead 之前,我就喜欢 K-9 Mail。这简直是我发现的最好的移动电子邮件客户端,句号,它是我在任何新设备上安装的第一件事之一。我甚至使用它通过 IMAP 和 SMTP 访问我的 Gmail 帐户。
Open Camera

opensource.com
Copperhead 仅在相当新的硬件上运行,并且我对默认相机应用程序拍摄的照片质量一直感到失望。然后我发现了 Open Camera。作为一个功能齐全的相机应用程序,它允许您启用高级 API 以利用相机硬件。我唯一想念的是拍摄全景照片的能力。
Amaze

opensource.com
Amaze 是我用过的最好的文件管理器之一,无论是否免费。当我需要浏览文件系统时,Amaze 是我的首选应用程序。
Vanilla Music

opensource.com
我对默认音乐播放器不满意,所以我查看了 F-Droid 上的许多音乐播放器,并选择了 Vanilla Music。它具有易于使用的界面,并且可以很好地与我的蓝牙设备交互。
OCReader

opensource.com
我是 Nextcloud 的忠实粉丝,尤其是 Nextcloud News,它是现已解散的 Google Reader 的替代品。虽然我可以通过 Web 浏览器访问我的新闻源,但我真的很怀念通过专用应用程序管理它们的能力。输入 OCReader。虽然它代表“ownCloud Reader”,但它可以与 Nextcloud 一起使用,并且我很少遇到问题。
Noise
大多数隐私倡导者选择的 SMS/MMS 应用程序是 Signal,由 Open Whisper Systems 开发。Signal 受到 爱德华·斯诺登 的认可,允许端到端加密消息传递。如果您要发送消息的人也在使用 Signal,您的消息将通过由 Open Whisper Systems 维护的集中式服务器通过数据连接进行加密发送。直到最近,它还依赖于 Google Cloud Messaging (GCM) 进行通知,这需要 Google Play 服务。
Signal 需要集中式服务器这一事实困扰了一些人,因此 Copperhead 上的默认应用程序是 Signal 的一个分支,名为 Silence。此应用程序不使用集中式服务器,但确实要求所有方都使用 Silence 才能进行加密。
嗯,我认识的人中没有人使用 Silence。目前,由于商标问题,您甚至无法在美国的 Google Play 商店中获得它,并且没有 iOS 客户端。如果您无法使用加密,则加密 SMS 客户端的用途不大。
输入 Noise。Noise 是 Copperhead 维护的另一个应用程序,它是 Signal 的一个分支,它消除了对 GCM 的需求。虽然 Noise 在标准 F-Droid 存储库中不可用,但 Copperhead 在他们提供的 F-Droid 版本中包含了他们自己的存储库,目前该存储库仅包含 Noise 应用程序。此应用将让您与任何其他使用 Noise 或 Signal 的人进行安全通信。
F-Droid 变通方法
FFUpdater
Copperhead 附带了 Chromium Web 浏览器的强化版本,但我是一个 Firefox 粉丝。不幸的是,Firefox 不再包含在 F-Droid 存储库中。F-Droid 上的应用程序都由 F-Droid 维护者构建,因此进入 F-Droid 的过程可能很复杂。OpenNMS 的 Compass 应用程序 不在 F-Droid 中,因为目前它不支持使用 Ionic Framework 进行构建,而 Compass 使用了 Ionic Framework。
幸运的是,有一个简单的变通方法:在 F-Droid 上安装 FFUpdater 应用程序。这允许我安装 Firefox 并通过浏览器本身保持更新。
Amazon Appstore
这让我想到了 Android 8 Oreo 的一个很酷的功能。在以前版本的 Android 中,您只有一个“已知来源”用于软件,通常是 Google Play 商店,如果您想从另一个存储库安装软件,您必须转到设置并允许“从未知来源安装”。我总是必须记住在安装后关闭它,以防止恶意代码能够在我的设备上安装软件。

opensource.com
使用 Oreo,您可以永久允许指定的应用程序安装应用程序。例如,我使用来自 Amazon Appstore 的一些应用程序(例如 Amazon Shopping 和 Kindle 应用程序)。当我下载并安装 Amazon Appstore Android 软件包 (APK) 时,系统会提示我允许该应用程序安装应用程序,然后不会再次询问。当然,这可以按应用程序打开和关闭。
Amazon Appstore 有许多有用的应用程序,例如 IMDB 和 eBay。它们中的许多不需要 Google 服务,但有些需要。例如,如果我通过 Amazon 安装 Skype 应用程序,它会启动,但随后会抱怨操作系统。American Airlines 应用程序会启动,然后抱怨证书已过期。(我联系了他们,他们告诉我他们不再维护 Amazon Appstore 中的版本,并且它将被删除。)无论如何,我可以非常简单地安装几个我喜欢的应用程序,而无需使用 Google Play。
Google Play
那么,那些您喜欢的、不使用 Google Play 服务但仅通过 Google Play 商店提供的应用程序呢?还有另一种安全地在您的 Copperhead 设备上获取这些应用程序的方法。
这确实需要一些技术专业知识和另一台设备。在第二台设备上,安装 TWRP 恢复应用程序。这通常是安装任何自定义 ROM 的关键第一步,并且 TWRP 在大量设备上都受支持。您还需要来自 Android SDK 的 Android Debug Bridge (ADB) 应用程序,可以免费下载。
在第二台设备上,使用 Google Play 商店安装您想要的应用程序。然后,重启进入恢复模式。您可以通过 TWRP 挂载系统分区; 通过 USB 电缆将设备插入计算机,您应该可以通过 ADB 看到它。有一个名为 /data/app
的系统目录,在其中您将找到所有应用程序的 APK 文件。将您想要的那些复制到您的计算机(我使用 ADB pull
命令并复制整个目录)。
断开该手机的连接并连接您的 Copperhead 设备。启用“传输文件”选项,您应该会在您的计算机上看到挂载的存储目录。将您想要的应用程序的 APK 文件复制过来,然后通过 Amaze 文件管理器安装它们(只需导航到 APK 文件并单击它)。
请注意,您可以对任何应用程序执行此操作,甚至有可能以这种方式在 Copperhead 上安装 Google Play 服务,但这有点适得其反。我主要使用它来获取 Electric Sheep 屏幕保护程序和我喜欢的一款名为 Cleartune 的吉他调音应用程序。请注意,如果您安装 TWRP,尤其是在 Google Pixel 上,安全更新可能无法正常工作,因为它们会期望使用库存恢复。在这种情况下,您始终可以使用 fastboot 访问 TWRP,但保留默认恢复。
没有变通方法的必备应用程序
不幸的是,仍然有一些 Google 应用程序让我难以割舍。Google 地图可能是我使用的主要 Google 应用程序,是的,虽然我知道我正在将我的位置信息泄露给 Google,但它通过引导我绕过交通问题节省了我数小时的生命。OpenStreetMap 有一个可以通过 F-Droid 获得的应用程序,但它没有 Google 地图如此有用的实时信息。我也偶尔使用 Skype,通常是在国外并且只有数据连接时(即,通过酒店 WiFi 网络)。它让我可以以非常实惠的价格给家里和其他地方打电话。
我的解决方法是携带两部手机。我知道这对大多数人来说不是一个选择,但这是我现在找到的唯一选择。我将我的 Copperhead 手机用于任何个人用途(电子邮件、联系人、日历、图片等),并将我的“Google 手机”用于地图、Skype 和各种游戏。
我的梦想是有人能在手机上完善虚拟机管理程序。然后我可以在同一设备上运行 Copperhead 和原生的 Google Android。我不认为任何人有强烈的商业理由去做这件事,但我确实希望它会发生。
支持 Copperhead 的设备
在您急于安装 Copperhead 之前,您需要克服一些障碍。首先,它仅在 数量有限的手机 上受支持,几乎所有这些手机都是最新的 Google 设备。这背后的逻辑很简单:Google 倾向于快速发布其设备上的 Android 安全更新,我发现 Copperhead 能够在一天之内(如果不是在几小时之内)跟上。其次,像任何开源项目一样,它的资源有限,并且很难支持当前最终用户可用的设备的一小部分。最后,如果您想在 Pixel 和 Pixel XL 等手机上运行 Copperhead,您要么必须从源代码构建,要么直接从 Copperhead 购买设备。
当我发现 Copperhead 时,我有一部 Nexus 6P,它(连同 Nexus 5X)是受支持的设备之一。这让我可以试用并习惯操作系统。我非常喜欢它,以至于我向该项目捐赠了一些钱,但我有点犹豫他们对 Pixel 和 Pixel XL 手机的要价。
然而,最近,我最终直接从 Copperhead 购买了一部 Pixel XL。原因有几个。首先,由于所有代码都在 GitHub 上可用,我开始为 Pixel 设备执行 我自己的构建。这个过程(我从未完成)让我体会到 Copperhead 为其项目付出的工作量。其次,Slashdot 上有一篇文章 讨论 了人们如何销售预装 Copperhead 的设备并使用 Copperhead 的更新服务器。我不太喜欢这样。最后,我不仅通过成为一个直言不讳的用户来支持 FOSS,也通过我的钱包来支持。
将“自由”放回自由中
我喜欢 FOSS 的另一件事是,我有选择。甚至有一个新的 Copperhead 替代方案正在开发中,名为 Eelo。它由 Mandrake Linux 的开发者 Gaël Duval 创建,这是一个基于 LineageOS(CyanogenMod 的后代)的基于隐私的 Android 操作系统。虽然它应该比 Copperhead 支持更多手机,但它仍处于开发阶段,而 Copperhead 非常稳定和成熟。不过,我很想看看它。
在使用 CopperheadOS 的一年里,我在使用移动设备连接到网络时从未感到更安全。我发现我的旧应用程序的开源替代品不仅足够,甚至比原始应用程序更好。我还重新发现了浏览器。过去我通常打开三到四个标签页,现在我有大约 10 个,因为我发现我通常不需要安装应用程序即可轻松访问网站的内容。
随着 Google 和 Apple 等公司越来越试图将自己强加于用户的生活中,很高兴有一个将“自由”放回自由中的选项。
14 条评论