“绝密”iPod的案例

2020-08-18 04:49:39

那是2005年末的一个灰蒙蒙的日子。我坐在办公桌前,为来年的iPod写代码。没有敲门,iPod Software的主管--我老板的老板--突然走了进来,随手关上了门。他开门见山了。“我有一个特别的任务给你。你的老板不知道这件事。你将帮助美国能源部的两名工程师制造一款特殊的iPod。只向我汇报。“。

第二天,接待员打电话告诉我,有两个人在大堂等着。我下楼去见保罗和马修,他们是真正制造这款定制iPod的工程师。我很想说,他们戴着墨镜,穿着风衣,看着窗户的倒影,以确保他们没有被跟踪,但他们是完全正常的30多岁的工程师。我给他们签了名,然后我们去会议室谈了谈。

他们实际上并不是为能源部工作;他们是为能源部大型国防承包商贝克特尔的一个部门工作,他们希望在iPod上添加一些定制硬件,并将这个定制硬件中的数据以一种不易检测的方式记录到iPod的磁盘中。但它的外观和功能仍然必须和普通的iPod一样。

他们会做所有的工作。我的工作是向他们提供苹果公司需要的任何帮助。

我了解到能源部的一名官员已经联系了苹果公司的硬件高级副总裁,请求该公司帮助制造定制的改装iPod。高级副总裁把这个要求交给了iPod事业部的副总裁,他把它委托给了iPod Software的主管,后者来看我。我的老板被告知我在做一个特别的项目,不能问问题。

2001年iPod项目开始时,我是第二位受雇的软件工程师。苹果营销部还没有想出iPod这个名字,该产品的代号是P68。第一位软件工程师后来成为iPod Software的主管,就是他给了我这个特殊的任务。我编写了iPod的文件系统,后来又编写了跟踪所有歌曲的SQLite数据库。随着时间的推移,除了将MP3和AAC文件转换成音频的音频编解码器之外,我几乎开发了iPod软件的所有部分。

(这些音频编解码器是由伯克利和斯坦福的两名拥有高级学位的工程师编写的。当他们不互相取笑哪所学校更好的时候,他们正在写数学音频代码,我都不敢碰。你不会让一个普通的工程师弄乱这样的代码,就像你不会让一个自行车修理工在保时捷里改装变速器一样。他们偶尔会和我玩扑克牌。我没有输光所有钱的唯一原因是他们中的一个人喜欢他的伏特加。)。

从源代码编译iPod操作系统,将其加载到iPod上,并对其进行测试和调试,这是一个相当复杂的过程。当一名新工程师开始工作时,我们通常会给他们一周的时间来学习所有这些知识,然后再分配给他们任何实际任务。

IPod操作系统不是基于另一个苹果操作系统,如Classic Mac OS或Darwin,后者是MacOS、iOS、iPadOS、WatchOS和TVOS的底层Unix核心。最初的iPod硬件是基于苹果从一家名为Portal player的公司购买的参考平台。Portal player还提供了较低级别的iPod OS,包括电源管理、磁盘驱动程序和实时内核(Portal player从另一家名为Quadros的公司获得许可)。苹果从Pixo购买了更高级别的iPod OS。Pixo是一家几年前由前苹果工程师创立的公司,他们试图编写一个通用的手机操作系统,出售给诺基亚(Nokia)和爱立信(Ericsson)等手机公司。Pixo代码处理用户界面、Unicode文本处理(对本地化很重要)、内存管理和事件处理。当然,苹果的工程师修改了所有这些代码,并随着时间的推移重写了大部分代码。

IPod OS是用C++编写的。由于它不支持第三方应用程序,因此没有关于其工作原理的外部文档。

最后,iPod团队在Windows计算机上进行了开发。苹果还没有可用的ARM开发工具,因为这是在iPhone出货之前。IPod团队使用的是ARM公司的ARM开发工具,该工具只能在Windows和Linux上运行。

我的工作是让保罗和马修在一个他们以前从未见过的、更不用说为之开发的新操作系统上运行。

我在我们大楼里为保罗和马修征用了一间空办公室。我让IS&;T(苹果的IT部门)对该办公室的以太网线进行了重新布线,使它们只连接到苹果防火墙外的公共互联网,从而阻止它们访问苹果的内部网络。苹果的Wi-Fi网络总是连接在防火墙之外。即使在苹果大楼内,如果你使用Wi-Fi,你也需要VPN才能通过苹果的防火墙。这不是与Bechtel签订合同和付款,而是苹果在为能源部暗地里帮了忙。但对这一帮助的访问仅限于此。

不用说,Paul和Matthew不允许直接访问我们的源代码服务器。取而代之的是,我给了他们一份DVD上的当前源代码的副本,并解释说它不能离开大楼。最终,他们被允许保留他们构建的iPod OS的修改后的副本,但不能保留其源代码。

苹果没有向他们提供任何硬件或软件工具。我给了他们所需的Windows计算机的规格,以及ARM编译器和JTAG调试器。他们购买了零售的iPod进行制作,至少几十台,可能更多。

与所有苹果大楼一样,每个人都必须向徽章阅读器出示苹果徽章,才能打开门锁进入iPod大楼。只有获准进入我们大楼的员工才能进入。在每一层楼,都有另一扇锁着的门和胸卡阅读器,只有获准进入该楼层的人才能进入。

因此,保罗和马修每天都会从大厅给我打电话,因为他们没有苹果徽章。我帮他们签到做客人,然后护送他们去办公室。最后,我安排给他们买了卖家徽章,就像他们在卖苹果咖啡或内存芯片一样,这样我就不用每天给他们签到了。我是个程序员,不是保姆。

保罗和马修都是聪明人,甚至是顶尖人物-在一点帮助下,他们很快就启动并运行起来。我向他们展示了如何设置开发工具,从源代码构建操作系统副本,并将其加载到iPod中。我们对用户界面进行了一些临时更改,这样我们就可以看到他们的构建实际上正在运行。我向他们展示了如何使用JTAG硬件调试器,这相当繁琐。他们埋头工作。

当他们在系统中学习的时候,他们至少用粗略的笔触解释了他们想要做的事情。他们在iPod上添加了特殊的硬件,生成了他们想要秘密记录的数据。他们小心翼翼地确保我从未见过硬件,我也从未见过。

我们讨论了隐藏他们记录的数据的最佳方式。作为一名磁盘工程师,我建议他们在磁盘上创建另一个分区来存储数据。这样,即使有人将改装后的iPod插入Mac或PC,iTunes也会将其视为普通iPod,而在Mac Finder或Windows Explorer中,它看起来也会像普通iPod一样。他们喜欢这样,这是一个隐藏的隔断。

接下来,他们想要一种开始和停止记录的简单方式。我们选择了最深的首选项菜单路径,并在末尾添加了一个听起来无伤大雅的菜单。我帮助他们在代码中实现了这一点,这是相当不明显的。在所有其他方面,这款设备的功能与普通iPod一样。

当时,最新的iPod是第五代iPod,更为人所知的是“带视频的iPod”。与不久之后流行起来的iPod Nano机型不同,打开并再次关闭机壳而不留下明显痕迹相对容易。另外,第五代iPod有一个60 GB的磁盘,所以有足够的空间存储大量的歌曲,同时仍然可以录制额外的数据。这也是最后一款苹果没有对操作系统进行数字签名的iPod。

这一点很重要,因为它让第五代iPod在某种程度上可以被黑客攻击。爱好者喜欢让Linux在iPod上运行,如果没有苹果拥有的专门知识和工具,这是很难做到的。我们iPod工程团队对此印象深刻。但是苹果公司不喜欢这样。从iPod Nano开始,该操作系统使用数字签名来阻止Linux黑客(和其他人)。引导ROM在加载操作系统之前检查数字签名;如果不匹配,它将不会引导。

我不认为保罗和马修曾经要求苹果签署他们的定制操作系统版本,这样它就可以在iPod Nano上运行。我很肯定苹果会拒绝的。无论如何,更大的第五代iPod更适合他们的目的。

在他们被征用的办公室里断断续续地工作了几个月后,保罗和马修完成了将他们的定制硬件集成到iPod中,并完成了这个项目。他们把电脑和调试硬件搬回了贝克特尔在圣巴巴拉的办公室。他们把带有苹果源代码的最新DVD连同他们的苹果供应商徽章一起退还给我。他们说再见,我就再也没见过他们。这张DVD在我办公室的架子上放了好几年,直到我在清理时终于把它扔了。

能源部规模庞大。它2005年的预算是243亿美元。它负责美国的核武器和核电项目,包括洛斯阿拉莫斯国家实验室,这是曼哈顿项目的一部分。正如能源部的预算请求所说:

2005财年预算提议拨款90亿美元,以实现与国防相关的目标。预算请求维持对行政当局“核态势审查”的核威慑要求的承诺,并继续为减轻大规模毁灭性武器威胁的积极战略提供资金。

我的猜测是保罗和马修正在建造一个类似于隐形盖革计数器的东西。一些能源部特工不用偷偷藏起来就能用到的东西。它看起来无害,可以播放音乐,功能和普通的iPod完全一样。你可以在一座城市里走来走去,漫不经心地听着你的曲调,同时记录下放射性的证据-例如,扫描走私或被盗的铀,或者脏弹开发项目的证据-媒体或公众不会有机会听到正在发生的事情。像所有其他电子设备一样,盖革计数器变得更小、更便宜,我很高兴看到辐射警报监视器200,它看起来非常像一台经典的iPod。

每当我问保罗和马修他们在建什么时,他们都改变了话题,开始争论去哪里吃午饭。标准的极客。

苹果公司只有四个人知道这个秘密项目。我,iPod软件总监,iPod事业部副总裁,硬件高级副总裁。我们中没有人还在苹果工作。没有书面记录。所有的沟通都是当面进行的。

如果你问苹果有关iPod定制项目的问题,并且没有回答“无可奉告”,公关人员会诚实地告诉你,苹果没有任何此类项目的记录。