最高机密iPod护套





这是2005年末典型的灰色天气。我坐在工作场所为iPod的下一版本编写代码。突然,我老板的老板,iPod软件的主管,没有敲门就冲了进去,关上了门。他直截了当地说:“我有一个特别的任务要给你。你的老板不知道这一点。您将帮助美国能源部的两名工程师制造独特的iPod。您只向我报告。”



第二天,我接到前台打来的电话,说有两个人在大厅里等候。我去见他们。他们是想建立自己的iPod的工程师保罗和马修。我想说的是,他们带着墨镜进来,看着窗户的反射,以确保不被追随,但不,他们是30岁最普通的工程师。我让他们进去,然后我们去了会议室。





他们没有为能源部工作,而是为能源部的主要国防承包商Bechtel部门工作。他们想将自己的设备添加到iPod并将数据刻录到磁盘。而且,他们想掩饰一切,以便从外面看起来这是普通的iPod。



他们完成了所有工作,我的工作是为他们提供Apple所需的帮助。



我了解到,美国能源部的一位官员已经联系了硬件高级副总裁,并寻求帮助以制造改进的iPod。高级副总裁向iPod部门的副总裁发送了询问,后者将其转交给iPod软件总监,他来找我。老板被告知我正在从事一个特殊项目,而这里的问题是不合适的。



背景



当iPod项目于2001年问世时,我是第二位被聘用的程序员。当时,苹果公司的市场营销并没有使用iPod这个名称,产品的代号为P68。第一位程序员后来成为iPod的软件开发总监,正是他是这个工作的代言人。我为iPod和后来的SQLite数据库编写了一个文件系统,该数据库跟踪所有歌曲。随着时间的流逝,除了音频编解码器(将MP3和AAC转换为声音)之外,我几乎在iPod操作系统的每个部分上工作。



(这些音频编解码器是由伯克利和斯坦福大学的两名研究生工程师编写的。当他们彼此之间不争论哪个大学更好时,他们正在编写数学代码,我怕碰到它们。您不会让普通工程师对此代码感到困惑。以及不让自行车修理工修理保时捷的变速箱。他们不时玩扑克,我跟他们一起去。我之所以没有输光,唯一的原因就是其中一个人喜欢伏特加酒。)



编译操作系统从源头播放iPod,引导到设备,测试和调试是一个复杂的过程。当有新工程师来找我们时,我们会给他一个星期的时间与他打交道,然后再开始分配任务。



iPod操作系统是独立的,并且不基于其他Apple操作系统,例如经典的Mac OS或Darwin,其Unix内核是macOS,iOS,iPadOS,WatchOS和tvOS的核心。最初的iPod硬件依赖于Apple从Portal Player购买的硬件平台。 Portal Player提供了iPod OS的低级方面,例如电源管理,磁盘驱动器和实时内核(Quadros许可)。苹果还从Pixo购买了iPod OS的高端部件。 Pixo由几年前的一位苹果前工程师成立,旨在为手机编写通用操作系统并将其出售给诺基亚和爱立信等公司。 Pixo代码与GUI和Unicode文本(对于本地化非常重要)相处得很好,管理内存并处理事件。当然,随着时间的流逝,Apple工程师已经修改了该代码,并重写了大部分代码。



iPod OS用C ++编写。由于此操作系统不支持第三方应用程序,因此没有有关该操作系统如何工作的公开文档。



最后,iPod开发团队在Windows上运行。苹果当时没有用于ARM开发的工具,因为那是在iPhone之前。开发团队使用了ARM Ltd.提供的工具,并且只能在Windows和Linux上使用。



我的工作是协调Paul和Matthew的工作,以启动他们从未使用过的操作系统。



快速启动



我在大楼里为保罗和马修订了一个空办公室。要求IS&T(苹果公司的IT部门)配置办公室网络,以便他们只能连接到Internet,而不能访问苹果公司的内部网络。苹果公司的Wi-Fi始终位于内部网络之外。即使您连接到建筑物内的Wi-Fi,您仍然需要VPN才能访问内部网络。这不是Apple与Bechtel之间的合同和付款合作,Apple非正式地在帮助美国能源部。在这种情况下,访问受到限制。



不用说,Paul和Matthew无法访问源服务器。我给了他们当前代码的DVD版本的副本,并解释说光盘无法离开建筑物。而且,允许他们存储iPod OS的修改版本,但不能存储修改的源。



苹果没有为他们提供任何硬件或软件工具。我给他们提供了Windows计算机的技术规范,它们需要它们以及ARM编译器和JTAG调试器。他们还购买了几十台iPod。



与所有Apple建筑物一样,每个人都必须在进入前出示徽章才能打开门并进入建筑物。每个楼层都有另一扇门和一个徽章读取器,因此只有经过安全检查的人员才能进入。



保罗和马修每天都从大厅打来电话,因为他们没有徽章。我让他们作为客人进入,并陪同他们到他们的办公室。我最终为他们获得了供应商通行证,就好像他们想向苹果出售咖啡或薯条一样。这样,我不再需要每天陪伴他们。我是程序员,不是保姆。



我们最好的人



保罗和马修都很聪明-也许最好的-在一点帮助下,他们很快就发现了问题。我向他们展示了如何设置开发工具,从源代码构建操作系统以及如何将其加载到iPod。我们对GUI进行了一些小的更改,以便他们可以准确查看正在运行的内部版本。我还向您展示了如何使用JTAG硬件调试器,该调试器足够挑剔。他们投入了工作。



通过检查操作系统,他们至少从总体上解释了他们想做的事情。他们在iPod上添加了专用设备来生成数据,并希望从中记录数据。他们竭尽所能,使我看不到该设备,也看不到。



我们讨论了隐藏已记录数据的方法。作为磁盘工程师,我建议他们在磁盘上创建一个附加分区,然后在其中存储数据。因此,即使有人将iPod连接到PC或Mac,iTunes也会将该设备视为普通的iPod。此外,iPod在Mac Finder和Windows资源管理器中将看起来相同。他们喜欢这个主意。



然后,他们想添加一种简单的方法来开始和停止录制。我们在设置中采用了最长的路径,并在其中添加了名称不明显的项目。我帮助他们在OS代码中做到了这一点,这比显而易见的要多。设备的其余部分的功能类似于普通的iPod。



当时最新的iPod是第五代iPod,即众所周知的“带视频的iPod”。与在此故事发生后不久流行的iPod nano相比,iPod机壳相对易于打开和重新组装,没有留下任何明显的痕迹。而且,第五代iPod具有60GB的驱动器,这意味着歌曲和其他数据都有足够的空间。最后,这是Apple尚未验证操作系统数字签名的最后一款iPod。





这一点很重要,因为它使第五代iPod可以越狱。爱好者们享受了在Linux上运行Linux的机会,而如果没有Apple拥有的专门知识和工具,这将非常困难。 iPod工程团队对我们印象深刻,但Apple不喜欢它。从iPod nano开始,已经对操作系统进行了数字签名,以阻止黑客入侵。引导加载程序在加载操作系统之前检查了数字签名:如果不匹配,则设备将无法引导。



我认为Paul和Matthew从未要求Apple签署他们的操作系统版本以便在iPod nano上运行它。我什至可以肯定苹果不会同意。无论如何,大型第五代iPod都是理想的选择。



在临时办公室连续工作了几个月后,保罗和马修完成了将特殊设备集成到iPod中的工作,并取消了该项目。他们带着计算机和调试设备返回了位于圣塔芭芭拉的Bechtel办公室。他们将源DVD和通行证退还给了我。他们对我说再见,我再也见不到他们。DVD放在我办公室的架子上已经好几年了,直到我在清洁时看到它为止。



他们在做什么?



能源部庞大。2005年预算为243亿美元。它负责美国的核武器和核电计划,包括属于曼哈顿计划的一部分的洛斯阿拉莫斯国家实验室。正如DOE预算要求所述:

2005 $ 9,0 . , . , , .
我的猜测是,保罗和马修正在组装像一个看不见的盖革柜台。DOE代理可以公开使用的东西。看起来像平常的iPod一样播放音乐和功能的东西并不明显。您可以在城市中漫步,听自己喜欢的音乐,并发现放射性物质的存在(例如,铀被盗)或“脏弹”爆炸的证据,而公众或新闻界都不会发现。像许多其他电子产品一样,盖革计数器也变得越来越小,越来越便宜。令我特别高兴的是,我遇到了类似于经典iPodRadiation Alert Monitor 200



当我问保罗和马修在做什么时,他们改变了话题,开始争论去哪里吃午饭。哦,那些怪胎。



不存在的特殊iPod



苹果公司只有四个人知道这个秘密项目。我是iPod的软件开发总监,iPod部门的副总裁和硬件的高级副总裁。我们都不再在Apple工作。而且没有记录。所有的联系都只有文字。



如果您向苹果公司询问有关iPod的特殊项目,则公共关系将诚实地说苹果公司没有此类项目的记录。



但是现在你知道了。






All Articles