Выбрать главу

Ловля «блох» в новых сборках продолжалась, и люди Кью присматривались к разработкам Uber все тщательнее, так что, изучая коды, они уже могли определить, когда компания Каланика пыталась провернуть очередной трюк.

Некоторое время Кью сдерживался и не спешил с выводами. Не все правила Apple были прописаны кристально ясно, а Uber оставался одним из самых популярных приложений у пользователей айфона. Хакеры есть хакеры; модераторы App Store видели все их ухищрения в кодах приложений – какие-то безобидные, другие похуже. Постоянные фокусы Uber раздражали, но команда App Store раскрывала их, а польза от приложений стоила затраченных усилий.

Ситуация стала быстро ухудшаться в конце 2014 года. Руководство App Store увидело пост в Hacker News, в котором приложение Uber для Android было декомпилировано и представлено в своем истинном обличье – как шпионская функция149. И верно, приложение запрашивало все те же разрешения, пытаясь получить доступ к идентификатору. Пропустить функцию фингерпринтинга было нельзя. Приближались праздники, инженеры спешили получить одобрение представленных кодов до того, как все уйдут на каникулы, но Apple отражал попытки Uber протолкнуть функцию в iOS-приложение.

В штаб-квартире Uber в Сан-Франциско инженеры компании делали все, чтобы преодолеть постоянные отказы. Причем, что типично для Apple, отказы не сопровождались объяснением, что именно в приложении не устраивает «яблочников». Сотрудники Uber понимали, что, скорее всего, дело в коде InAuth, но раскрывать карты не спешили – в конце концов, они могли ошибаться и Apple не обнаружил код.

После одного затянувшегося обсуждения с участием двух команд – Квентина и мобильной – слово взял инженер из второй группы. Когда-то он работал на Apple, а потому знал, как обойти проблему App Store.

«Есть идея, – сказал он, перед тем как выйти из конференц-зала и вернуться к лэптопу на своем столе. – Я с этим справлюсь».

Одно дело обходить правила, представляя для одобрения в App Store новую сборку приложения. Так поступали многие разработчики, и Uber не был исключением.

Однако новая идея могла по своей дерзости сравниться с троянским конем. Суть ее заключалась в применении сервиса, известного как геофенсинг и позволяющего, используя GPS и IP-адрес телефона, определять местоположение пользователя. Геофенсинг действует соответственно своему названию; если пользователь находится в границах некоего географического радиуса, приложение работает определенным образом. Если приложение Uber использовалось в районе Залива или вблизи штаб-квартиры Apple в Купертино, код InAuth, запрашивающий необходимую для фингерпринтинга персональную информацию, не запускался.

Предложивший этот вариант инженер думал – как оказалось, ошибочно, – что специалисты, проводящие ревизию кодов, находятся в Купертино и районе Залива. На самом же деле код InAuth обнаружил сотрудник Apple, работавший за пределами Калифорнии. Уловка была раскрыта.

Кью пришел в ярость. Одно дело попытка обойти прописанные Apple правила и совсем другое – сознательный обман, намеренное сокрытие поведения приложения от администраторов Apple. Это уже смертный грех. Uber целенаправленно и изощренно обманывал Apple.

Кипя от злости, он откинулся на спинку офисного кресла, достал айфон и набрал номер.

Каланик ответил. Гендиректор Uber был бодр и настроен на позитив. Он знал, как важно не огорчать Кью.

Последний взял с места в карьер.

«Нужно поговорить. У нас серьезная проблема». – Он коротко изложил суть того, что делает Uber со своими приложениями, и ясно дал понять, как сильно ему это не нравится.

«Тебе нужно приехать сюда. Попробуем разобраться. Я скажу своим ребятам, чтобы все приготовили. До свидания». – Кью дал отбой, так что собеседник не успел сказать и слова.

Звонок серьезно обеспокоил Каланика. Он опасался, что Apple может предпринять решительные меры.

На срочное совещание в штаб-квартире Uber вызвали Квентина и нескольких человек из его команды. Едва закрыв дверь, Каланик набросился на присутствующих с вопросами, общий смысл которых сводился к следующему: «Что здесь, черт возьми, случилось?»

Квентин знал, по крайней мере в общих чертах, что именно пошло не так, поэтому привез с собой провинившегося инженера – который к тому моменту уже трясся от страха – и заставил его объяснить, как именно он попытался обмануть Apple.

Как обычно, Каланик расхаживал по комнате, постепенно осознавая всю серьезность проступка его команды. В свою защиту он мог сказать, что никогда не приказывал своим людям лгать или обманывать Apple. В конце концов, разработчики не подчинялись ему напрямую. Он полагал, что его тимлидеры обращаются с подчиненными соответственно.