極秘iPod事件

極秘iPod事件

2005年後半のどんよりとした日だった。私は机に座り、翌年のiPodのコードを書いていた。ノックもせず、iPodソフトウェア部門のディレクター――私の上司の上司――が突然入ってきて、後ろ手にドアを閉めた。彼はいきなり本題に入った。「君に特別な任務がある。上司には内緒だ。米国エネルギー省のエンジニア二人が特別なiPodを開発するのを手伝ってほしい。報告は私だけにしてくれ。」

翌日、受付係から電話があり、ロビーに2人の男性が待っていると告げられた。私は階下へ降りて、このカスタムiPodを実際に製造するエンジニア、ポールとマシューに会った。サングラスとトレンチコートを着て、尾行されていないか窓の反射をチラチラと確認していたと言いたいところだが、彼らはごく普通の30代のエンジニアだった。私は彼らに受付を済ませ、話をするために会議室へ行った。

ポールとマシューの名刺

彼らは実際にはエネルギー省に勤めていたわけではなく、エネルギー省の大手防衛関連請負業者であるベクテルの一部門で働いていました。彼らはiPodにカスタムハードウェアを追加し、そのカスタムハードウェアからiPodのディスクに、簡単には検知されない方法でデータを記録することを計画していました。しかし、見た目も動作も通常のiPodと変わらないものでなければなりませんでした。

彼らが全ての作業を行う。私の仕事は、Appleから彼らが必要とするあらゆるサポートを提供することだった。

エネルギー省の職員がAppleのハードウェア担当上級副社長に連絡を取り、カスタム改造iPodの製造に協力してほしいと依頼したことを知りました。上級副社長は依頼をiPod部門の副社長に伝え、副社長はiPodソフトウェア担当ディレクターに依頼を委任し、ディレクターが私に会いに来ました。上司には、私が特別なプロジェクトに取り組んでいるため、質問はしないようにと伝えられました。

背景

2001年にiPodプロジェクトが始まったとき、私は2人目のソフトウェアエンジニアとして採用されました。当時、Appleのマーケティング部門はまだiPodという名前を思いついていませんでした。製品名はP68というコードネームで知られていました。最初のソフトウェアエンジニアは後にiPodソフトウェアのディレクターとなり、私にこの特別な任務を与えてくれた人物です。私はiPodのファイルシステムを開発し、後にすべての楽曲を管理するSQLiteデータベースを開発しました。時が経つにつれ、MP3やAACファイルを音声に変換するオーディオコーデックを除く、iPodソフトウェアのほぼすべての部分に携わりました。

(これらのオーディオコーデックは、バークレーとスタンフォードで高度な学位を取得した2人のエンジニアによって書かれました。どちらの大学が優れているかを互いにからかっている時以外は、私が触るのが怖いほど数学的なオーディオコードを書いていました。普通のエンジニアにそのようなコードに手を出すのは、自転車整備士にポルシェのトランスミッションを組み直させるのと同じくらい危険です。彼らは時々ポーカーをやっていて、私はそれに参加しました。私が全財産を失わなかったのは、彼らのうちの1人がウォッカを楽しんでいたからでした。)

iPodのオペレーティングシステムをソースコードからコンパイルし、iPodにロードしてテストとデバッグを行うのは、かなり複雑なプロセスでした。新しいエンジニアが入社すると、実際の業務を割り当てる前に、通常1週間かけてこれらすべてを習得する時間を与えていました。

iPod のオペレーティングシステムは、macOS、iOS、iPadOS、watchOS、tvOS の基盤となる Unix コアである Classic Mac OS や Darwin のような別の Apple オペレーティングシステムに基づいていませんでした。オリジナルの iPod ハードウェアは、Apple が Portal Player という会社から購入したリファレンスプラットフォームに基づいていました。Portal Player は、電源管理、ディスクドライバー、リアルタイムカーネル (Portal Player が Quadros という別の会社からライセンスを取得) など、iPod OS の下位レベルも提供していました。Apple は iPod OS の上位レベルを Pixo から購入しました。Pixo は数年前に元 Apple のエンジニアが、Nokia や Ericsson などの携帯電話会社に販売する汎用携帯電話オペレーティングシステムを作成しようと設立した会社です。Pixo のコードは、ユーザーインターフェイス、Unicode テキスト処理 (ローカリゼーションに重要)、メモリ管理、イベント処理を担当していました。もちろん、Apple のエンジニアはこのコードをすべて修正し、時間をかけてその多くを書き直しました。

iPod OSはC++で書かれていました。サードパーティ製のアプリをサポートしていなかったため、その動作に関する外部ドキュメントはありませんでした。

最終的に、iPodチームはWindowsコンピュータで開発を行いました。iPhoneが発売される前のことだったので、AppleはまだARM開発ツールを実装していませんでした。iPodチームは、WindowsとLinuxでのみ動作するARM社のARM開発ツールを使用しました。

私の仕事は、ポールさんとマシューさんがこれまで見たこともなく、ましてや開発されたこともない新しいオペレーティング システムを使いこなせるようにすることでした。

はじめる

私はポールとマシューのために、ビル内の空きオフィスを接収しました。IS&T(AppleのIT部門)に依頼して、そのオフィスのイーサネット配線をAppleのファイアウォールの外側にあるパブリックインターネットにのみ接続するように変更し、Appleの社内ネットワークへのアクセスを遮断しました。AppleのWi-Fiネットワークは常にファイアウォールの外側に接続します。Appleのビル内でも、Wi-Fiを使うにはAppleのファイアウォールを通過するためにVPNが必要です。これはベクテル社との契約と金銭による協力関係ではなく、Appleがエネルギー省に裏で便宜を図ったものでした。しかし、その便宜のためのアクセスは限定的でした。

言うまでもなく、ポールとマシューはソースコードサーバーに直接アクセスすることはできませんでした。その代わりに、私はDVDに現在のソースコードのコピーを渡し、社外に持ち出してはいけないことを説明しました。最終的に、彼らは自分たちが開発したiPod OSの修正版だけは持ち帰ることができましたが、ソースコードは持ち帰ることができませんでした。

Appleは彼らにハードウェアやソフトウェアツールを一切提供しませんでした。私は必要なWindowsコンピューターの仕様と、ARMコンパイラとJTAGデバッガを提供しました。彼らは作業のために市販のiPodを少なくとも数十台、おそらくはそれ以上購入しました。

他のAppleビルと同様に、iPodビルに入るには、全員がバッジリーダーにAppleバッジを提示する必要がありました。このビルへの入館許可を得た従業員だけが入館を許可されていました。各フロアにはそれぞれ施錠されたドアとバッジリーダーが設置されており、そのフロアへの入館許可を得た人だけが入館を許可されていました。

ポールとマシューは毎日ロビーから私に電話をかけてきました。Appleバッジを持っていなかったからです。私は彼らをゲストとして受付し、オフィスまで案内しました。最終的には、Appleのコーヒーやメモリチップを販売しているかのように、ベンダーバッジを取得できるように手配しました。そうすることで、毎日受付する必要がなくなりました。私はプログラマーであり、ベビーシッターではありませんでした。

トップメン

ポールとマシューは頭が良く、まさに一流の男でした。少し手助けするだけで、あっという間に使いこなせるようになりました。開発ツールの設定方法、ソースからOSのコピーをビルドする方法、そしてiPodにロードする方法を教えてあげました。ビルドが実際に動作しているのを確認できるよう、ユーザーインターフェースに一時的な変更を加えました。JTAGハードウェアデバッガの使い方も教えましたが、これはかなり扱いが難しいものでした。彼らはすぐに作業に取り掛かりました。

彼らはシステムの使い方を覚えるにつれ、少なくとも大まかには、何をしたいのかを説明してくれた。彼らはiPodに特別なハードウェアを追加し、秘密裏に記録したいデータを生成するようにしていた。彼らは私がそのハードウェアを決して見ないように気を配っていたし、実際に私は見ることができなかった。

彼らが録音したデータを隠す最善の方法について話し合いました。ディスクエンジニアとして、私はディスク上に別のパーティションを作成してデータを保存することをお勧めします。そうすれば、改造されたiPodをMacやPCに接続しても、iTunesは通常のiPodとして認識し、MacのFinderやWindowsのエクスプローラーでも通常のiPodとして表示されます。彼らはこの方法を気に入り、隠しパーティションを作ることにしました。

次に、録音の開始と停止を簡単に行える方法を求めていました。そこで、設定メニューの最深層パスを選択し、最後に無難そうなメニューを追加しました。私は、このメニューをコード内に組み込むのを手伝いましたが、これはあまり分かりにくいものでした。その他の点では、デバイスは通常のiPodと同じように機能しました。

当時の最新iPodは第5世代iPodで、「iPod with video」としてよく知られていました。ケースを開け閉めするのは比較的簡単で、その後すぐに人気が出たiPod nanoとは異なり、跡が残っていませんでした。さらに、第5世代iPodは60GBのディスクを搭載していたため、たくさんの曲を保存できるだけでなく、追加のデータも記録するのに十分な容量がありました。そして、これはAppleがオペレーティングシステムにデジタル署名を施さなかった最後のiPodでもありました。

ビデオ付きiPodこれは第5世代iPodをある程度ハッキング可能にしたため、重要でした。愛好家たちはiPodでLinuxを動かすことに熱中していましたが、Appleが持つ専門知識とツールがなければ、それは困難でした。iPodエンジニアリングチームの私たちは感銘を受けました。しかし、Apple本社はそれを快く思いませんでした。iPod nano以降、Linuxハッカー(そしてその他のハッカー)をブロックするため、オペレーティングシステムはデジタル署名で署名されました。ブートROMはオペレーティングシステムをロードする前にデジタル署名をチェックし、一致しない場合は起動しませんでした。

ポールとマシューが、iPod nanoで動作させるためにカスタムOSビルドに署名してほしいとAppleに頼んだとは思えません。Appleはきっと拒否したでしょう。そもそも、第5世代の大型iPodの方が彼らの目的には合っていたのですから。

数ヶ月間、接収されたオフィスで断続的に作業を続けた後、ポールとマシューはiPodへのカスタムハードウェアの組み込みを完了し、プロジェクトを終了させました。彼らはコンピュータとデバッグ用ハードウェアをサンタバーバラにあるベクテルのオフィスに戻しました。Appleのソースコードが収録された最新のDVDとAppleベンダーバッジを私に返却してくれました。彼らは別れを告げ、私は二度と彼らに会うことはありませんでした。DVDは何年も私のオフィスの棚に置かれていましたが、片付け中についに捨ててしまいました。

彼らは何をしていたのか?

エネルギー省は巨大な組織です。2005年度の予算は243億ドルでした。米国の核兵器および原子力発電計画を管轄しており、マンハッタン計画の一部であったロスアラモス国立研究所もその管轄下にあります。エネルギー省の予算要求書には次のように記されています。

2005年度予算では、防衛関連目標達成のため90億ドルが提案されています。この予算要求は、政権の核態勢見直しにおける核抑止力の要件へのコミットメントを維持し、大量破壊兵器の脅威を軽減するための積極的な戦略への資金提供を継続するものです。

放射線警報ガイガーカウンターポールとマシューはステルス・ガイガーカウンターのようなものを製作していたのではないかと思います。エネルギー省の職員が隠さずに使えるような、見た目は無害で音楽を再生でき、普通のiPodと全く同じように機能するものです。街中を気楽に歩き回りながら、音楽を聴きながら放射能の証拠を記録し、例えば密輸または盗難されたウランや、汚い爆弾開発計画の証拠をスキャンできます。しかも、報道機関や一般大衆に知られる心配は全くありません。他の電子機器と同様に、ガイガーカウンターも小型化と低価格化が進んでいますが、私はRadiation Alert Monitor 200という、昔ながらのiPodによく似た製品を見つけて、面白おかしく思いました。

ポールとマシューに何を作っているのか尋ねると、彼らはいつも話題を変えて、昼食にどこに行くかで言い争いを始めます。典型的なオタクです。

存在しなかったカスタムiPod

この極秘プロジェクトについて知っていたのは、Apple社内ではたった4人だけでした。私、iPodソフトウェア担当ディレクター、iPod部門副社長、そしてハードウェア担当上級副社長です。誰も今もAppleに勤務していません。書類は一切残っていません。コミュニケーションはすべて対面で行われました。

もしApple社にカスタムiPodプロジェクトについて尋ねて、決まりきった「ノーコメント」の答えを超えたら、広報担当者は、Apple社にはそのようなプロジェクトの記録はないと正直に答えるだろう。

しかし、今は分かっています。

Idfte
Contributing writer at Idfte. Passionate about sharing knowledge and keeping readers informed.