Как се забърках в създаването на топ секретен модел на iPod, разработен с агенти от Министерство на енергетиката на САЩ
Беше мрачен ден в края на 2005 г. Седях на бюрото си и пишех код за iPod за следващата година. Без да почука, директорът на iPod Software – шефът на моя шеф – рязко влезе и затвори вратата зад себе си. Той отсече: „Имам специално задание за Вас. Шефът Ви не знае за това. Ще помогнете на двама инженери от Министерството на енергетиката на САЩ да изградят специален iPod. Докладвайте само за мен.“
На другия ден рецепционистката се обади, за да ми каже, че във фоайето чакат двама мъже. Слязох долу, за да се срещна с Пол и Матю, инженерите, които всъщност ще изграждат този топ секретен модел на iPod. Носеха тъмни очила и тренчкоти и гледаха в отраженията на прозорците, за да се уверят, че не са били проследени. Напълно нормални тридесет и няколко годишни инженери. Подписах ги и отидохме в конферентна зала да поговорим.
Те всъщност не работеха за Министерството на енергетиката, а за подразделение на Бехтел, голям контрактор на отбраната в САЩ към Министерството на енергетиката. Те искаха да добавят някакъв персонализиран хардуер към iPod и да записват данни от този персонализиран хардуер на диска на iPod по начин, който не може да бъде лесно открит. Но все пак трябваше да изглежда и да работи като нормален iPod.
Съдържание
Те щяха да свършат всичко.
Моята работа беше да предоставя всякаква помощ, която им е необходима от Apple.
Научих, че служител в Министерството на енергетиката се е свързал с висшия вицепрезидент на Apple за хардуер, като е поискал помощта на компанията в изработката на модифицирани iPod-и. Старшият вицепрезидент предаде молбата до вицепрезидента на отдел iPod, който я делегира на директора на iPod Software, който дойде да ме види. На шефа ми беше казано, че работя по специален проект и да не задава въпроси.
Малко обща информация
Бях вторият софтуерен инженер, нает за iPod проекта, когато той започна през 2001 г. Apple Marketing все още не беше измислил името iPod. Продуктът беше известен с кодовото име P68. Първият софтуерен инженер по-късно стана директор на iPod Software, човекът, който ми даде тази специална задача. Написах файловата система на iPod и по-късно базата данни SQLite, която следеше всички песни. С течение на времето работих върху почти всяка част от софтуера за iPod, с изключение на аудио кодеците, които превръщаха MP3 и AAC файлове в аудио.
(Тези аудио кодеци са написани от двама инженери, завършили Бъркли и Стенфорд. Когато не се дразнеха помежду си за това кое училище е по-добро, те пишеха математически аудио код, който се уплаших да пипна.)
Компилирането на операционната система iPod от изходния код, зареждането му на iPod, тестването и отстраняването на грешки беше доста сложен процес. Когато започваха нови инженери, обикновено давахме седмица, за да научат всичко това, преди да им възложим каквито и да било реални задачи.
Операционната система iPod не се основаваше на друга операционна система на Apple, като Classic Mac OS или Darwin, основното ядро на Unix на macOS, iOS, iPadOS, watchOS и tvOS. Оригиналният хардуер за iPod се основава на референтна платформа Apple, закупена от компания, наречена Portal Player. Компанията е предоставила и по-ниските нива на операционната система iPod, включително управление на захранването, драйвери на дискове и ядрото в реално време (което Portal Player е лицензирало от друга компания, наречена Quadros). Apple купи по-високите нива на iPod OS от Pixo, компания, основана няколко години по-рано от бивши инженери на Apple, които се опитват да напишат операционна система за мобилни телефони с общо предназначение, която да се продава на компании за мобилни телефони като Nokia и Ericsson.
iPod OS е написана на C ++. Тъй като не поддържаше приложения на трети страни, нямаше външна документация за това как работи.
И накрая, екипът на iPod разработи интерфейс и за компютри с Windows. Apple все още нямаше работещи инструменти за разработчици на ARM, защото това беше преди излизането на iPhone. Екипът на iPod използва инструменти за разработчици на ARM от ARM Ltd, които работят само в Windows и Linux.
Моята работа беше да помогна на Пол и Матю да работят на нова операционна система, която никога досега не са виждали.
Подготовка за начало
Резервирах празен офис за Павел и Матю в нашата сграда. Дадох им достъп само до публичния Интернет, извън защитната стена на Apple, с цел да нямат достъп до вътрешната мрежа. Wi-Fi мрежата на Apple винаги се свързва извън защитната стена. Дори вътре в сградите на Apple, ако използвате Wi-Fi, се нуждаете от VPN, за да преминете през защитната стена на Apple. Това не беше сътрудничество с Bechtel с договор и плащане. Apple е направила услуга „под масата“ за Министерството на енергетиката. Но достъпът за тази услуга е само до тук.
Излишно е да казвам, че на Пол и Матю не беше разрешено да имат достъп директно до изходния код на нашия сървър. Вместо това им дадох копие на текущия изходен код на DVD и обясних, че не може да напуска сградата. В крайна сметка им беше позволено да запазят промененото копие на създадената от тях iPod OS, но не и изходния код за нея.
Apple не им предостави никакви хардуерни или софтуерни инструменти. Дадох им спецификациите за Windows компютрите, от които се нуждаят, заедно с ARM компилатора и JTAG дебъгъра. Те купуваха iPod-и на дребно, за да работят. Купиха поне няколко десетки, вероятно много повече.
Както във всички сгради на Apple, всеки влиза в сградата на iPod, след като се чекира с чип на входния четец. Допускаха се само служители в нашата сграда. На всеки етаж имаше друг четец, който отключваше вратата му. Затова всеки ден Пол и Матю ми се обаждаха от фоайето, тъй като нямаха чипове на Apple. Подписвах ги като гости и ги придружавах до техния офис. В крайна сметка им уредих значки на продавачи, сякаш продават кафе в Apple, така че да не се налага да ги подписвам ежедневно. Бях програмист, а не детегледачка.
Двамата топ агенти
Пол и Матю бяха умни и с малко помощ напреднаха много бързо. Показах им как да настройват инструментите за разработка, да изграждат копие на операционната система от източника и да го зареждат в iPod. Направихме някои временни промени в потребителския интерфейс, така че можехме да видим, че тяхното изграждане всъщност работи. Показах им как да използват хардуерния дебъгер на JTAG, който беше доста фин. Те се потапяха в работата си.
Бяха добавили специален хардуер към iPod, който генерира данни, които искат да запишат тайно. Внимаваха, за да се уверят, че никога не съм виждал техния хардуер, а аз и не съм.
Коментирахме най-добрия начин да скрием записаните от тях данни. Като дисков инженер предложих да направят друг дял на диска, за да съхраняват своите данни. По този начин, дори ако някой включи модифицирания iPod в Mac или PC, iTunes ще го третира като нормален iPod и ще изглежда като нормален iPod в Mac Finder или Windows Explorer. Идеята за скрития дял им хареса и я приеха.
Друга тяхна цел беше по прост начин да стартират и спират записа. Избрахме най-дълбокия път на менюто с предпочитания и добавихме безобидно звучащо меню до края. Помогнах им да закачат това в кода, което беше доста неочевидно. Във всички останали аспекти устройството функционира като нормален iPod.
По това време най-новият iPod беше iPod от пето поколение, по-известен като „iPod с видео“. Беше сравнително лесно да отворите кутията и да я затворите отново, без да оставяте очевидни следи, за разлика от iPod nano моделите, които станаха популярни малко след тях. Плюс това, петото поколение iPod имаше 60 GB диск, така че имаше достатъчно място за много песни и записване на допълнителни данни. И това беше последният iPod, за който Apple не подписа цифрово операционната система.
Това беше важно, защото направи iPod от пето поколение донякъде хакерски. Хобистите се наслаждаваха да слагат Linux на iPod, което бе трудно за направа без специалните знания и инструменти, които Apple притежава. Ние от инженерния екип на iPod останахме впечатлени. Но корпорацията на Apple не го хареса. Започвайки с iPod nano, операционната система беше подписана с цифров подпис, за да блокира Linux хакерите (и други). Пътният ROM проверява цифровия подпис преди да зареди операционната система; ако не съвпадне, няма да се стартира.
Не мисля, че Пол и Матю някога са питали Apple за подписване на изграждането на тяхната персонализирана операционна система, така че да работи на iPod nano. Почти съм сигурен, че Apple би отказала. По-големият iPod от пето поколение така или иначе беше по-подходящ за техните цели.
След няколко дни работа в резервирания си офис, Пол и Матю завършиха интегрирането на потребителския си хардуер в iPod, а с това и проекта. Преместиха компютрите си и хардуера за дебъгване обратно в офиса на Бехтел в Санта Барбара. Те ми върнаха най-новото DVD с изходния код на Apple, заедно с техните чипове на продавачи в Apple. Сбогувахме се и никога повече не ги видях. DVD-то седеше на рафт в офиса ми години наред, докато накрая го хвърлих, докато почиствах.
Какво правеха те?
Министерството на енергетиката е огромно. Бюджетът му за 2005 г. беше 24,3 милиарда долара. То отговаря за американските ядрени оръжия и ядрените енергийни програми. Националната лаборатория в Лос Аламос бе част от проекта в Манхатън. Тя е изследователски институт на Министерството на енергетиката на Съединените щати, разположен в близост до град Лос Аламос в щата Ню Мексико в САЩ. „Лос Аламос“ е известен като един от двата института, използвани от САЩ за разработване на ядрени оръжия. Както се казва в искането на бюджета на DOE:
Бюджетът за 2005 г. предлага 9,0 милиарда долара за постигане на целите, свързани с отбраната. Бюджетното искане поддържа ангажименти за изискванията за ядрено възпиране от прегледа на ядрената позиция на администрацията и продължава да финансира агресивна стратегия за смекчаване на заплахата от оръжия за масово унищожение.
Предполагам, че Пол и Матю изграждаха нещо като скрит Гайгеров брояч. Нещо, което DOE агентите биха могли да използват, без да го скриват. Нещо, което изглеждаше безобидно, пускаше музика и функционираше точно като нормален iPod. Бихте могли да се разхождате из града, слушайки песните си, докато записвате доказателства за радиоактивност – сканиране за контрабанден или откраднат уран, например, или доказателства за програма за разработване на мръсна бомба – без шанс, че пресата или обществеността ще разберат какво се случва. Подобно на всички други електронни джаджи, Гайгеровите броячи станаха по-малки и по-евтини, а аз се забавлявах да минавам през Radiator Alert Monitor 200, който изглежда досущ като класически iPod.
Всеки път, когато питах Пол и Матю какво правят, те сменяха темата и започваха да спорят къде да отидат за обяд. Стандартни номера.
Този топ секретен модел на iPod,който никога не е съществувал
Само четирима души от Apple знаеха за този таен проект – аз, директорът на iPod Software, вицепрезидентът на iPod Division и старши вицепрезидент на Hardware. Никой от нас вече не работи в Apple. Цялата комуникация беше лична.
Ако попитате Apple за проекта за топ секретен модел на iPod, някак прескочите репликите „Без коментар“, то PR отделът ще ви отговори честно, че Apple няма данни за нито един такъв проект.
Но сега знаете за този.