В 2018 году на рынке мобильных ОС сложилась фактическая дуополия: Google конкурирует с Apple, Android уверенно вытесняет iOS на большинстве рынков. Но ещё несколько лет назад ситуация выглядела иначе. Вполне неплохо себя чувствовала Microsoft с её Windows Phone и почти десятью процентами рынка. Пусть на четвёртом месте, но вполне ощутимо на рынке присутствовала BlackBerry с собственной ОС BlackBerry 10. Что это за система и как так получилось, что она практически исчезла с рынка? В этой статье мы обсудим особенности BlackBerry 10 и её отличия от Android и iOS, полюбуемся на пользовательский интерфейс и проверим заявления маркетологов о безопасности этой ОС.
Открытый исходный код, регулярные обновления, сообщества разработчиков – всё это не про BlackBerry 10. BlackBerry 10 была разработана на основе операционной системы QNX канадской компанией RIM (Research In Motion), позднее переименованной в BlackBerry Inc. QNX (читается «кьюникс») – ОС реального времени, основанная на архитектуре микроядра.
Что такое микроядро в применении к мобильной ОС? Возьмём, к примеру, Android. Ядро Android, основанное на архитектуре Linux, включает в себя как собственно базовые сервисы ОС (управление процессами и потоками, обмен сигналами и сообщениями, таймеры и синхронизация), так и много другого. В ядро Android входят все драйверы аппаратной части устройства, драйверы файловой системы, сетевой стек и даже такие вещи, как поддержка CIFS. Подобная монолитная архитектура дает хорошую производительность, но в то же время создает огромное количество проблем в том, что касается стабильности работы и безопасности. Что будет, если, например, разработчик драйвера сетевой карты допустит небольшую ошибку, приводящую к переполнению буфера? В лучшем случае при возникновении ошибки упадёт все ядро и смартфон перезагрузится. В худшем найдется тот, кто сможет эту ошибку эксплуатировать, сформировав специальный сетевой пакет. И да, после этого он получит контроль над всем ядром, работающим в нулевом кольце защиты. А если по-простому — контроль над всей операционной системой.
В BlackBerry 10 используется очень компактное микроядро QNX Neutrino, внутри которого работают планировщик процессов, система обмена сообщениями, обработчик исключений и таймеры. Все остальное: все драйверы, файловые системы, службы и приложения — исполняется в пространстве пользователя в виде отдельных процессов. И все они общаются друг с другом через микроядро, которое выступает диспетчером сообщений от одного компонента системы к другому.
В такой архитектуре ошибка в драйвере сетевой карты приведёт… да в общем-то, ни к чему не приведёт. В лучшем случае драйвер просто упадёт, и система его перезапустит и переконфигурирует. В худшем — взломщик окажется в ловушке этого драйвера: сам-то драйвер взломан, но что делать дальше? Хорошо, можно запустить другую службу, чтобы открыть «чёрный ход», но вот незадача: чтобы это сделать, надо послать сообщение компоненту proc, отвечающему за запуск процессов, а он совсем не захочет принимать сообщения от сетевого драйвера. А может быть, попытаться вклиниться в сетевой поток и подделать трафик? Ну, как говорится, удачи в написании шелл-кода, который все это проделает в динамически меняющемся трафике.
Минус микроядерной архитектуры только в том, что ядра на ее основе более медлительны в сравнении с монолитными. Однако устройства на BlackBerry 10 работают исключительно плавно в своей базовой функциональности, даже если они оснащены давно устаревшим двухъядерным Snapdragon S4. Даже если запущено приложение, полностью загружающее ресурсы слабенького процессора, свайп от нижнего края экрана — и приложение плавно и без задержек сворачивается в окошко. Подобного уровня оптимизации нет ни в Android, ни даже в iOS — во всяком случае, последних версий.
На основе BlackBerry 10 было выпущено множество устройств. Сенсорные BlackBerry Z10, Z30, Z3, Leap, клавиатурные Q10, Q5, Classic и Passport. Все эти модели за исключением Passport собирались на основе устаревшего уже в момент выхода моделей чипсета Snapdragon S4 в разных вариациях. Что заставляло BlackBerry упорно держаться за устаревшее железо, продолжая выпускать устройства, заведомо проигрывающие конкурентам?
Дело в драйверах. Говоря об Android, драйверы для наборов системной логики создают производители микросхем – Qualcomm, MediaTek и другие, причём делают они это за свой счёт (разумеется, включая стоимость разработки в стоимость отгруженных микросхем). Но писать драйверы для BlackBerry 10, основанной на QNX, производители не стали, и компании пришлось самостоятельно заниматься этим процессом. Разработка драйверов – процесс дорогой, сложный и небыстрый; неудивительно, что в BlackBerry приняли решение максимально использовать уже написанные драйверы.
И только в одном из последних устройств, BlackBerry Passport, был использован свежий чипсет Snapdragon 801. Увы, но продолжения линейки на этом же наборе системной логики не последовало.
BlackBerry 10 была пионером того, что спустя время в Google назвали «Material design». Рабочие столы, приложения, экраны настроек – плоские карточки с тенями, которые перемещаются и перелистываются, как материальные объекты. Никакой полупрозрачности, всё очень строго, логично и продуманно.
Главный экран телефона может выглядеть вот так:
Виджетов как таковых в BlackBerry 10 нет, зато если свернуть приложение – оно превращается в своеобразный виджет, или «живую плитку». Часы – идут, календарь – показывает ближайшие события, Device Monitor отслеживает и отображает состояние устройства, а приложение двухфакторной аутентификации отображает актуальные коды. Стоит коснуться такого окошка, как приложение моментально разворачивается на весь экран. Свайп вверх от нижнего края экрана – снова сворачивается в плитку. Прикоснуться к крестику в нижней правой части плитки – закрыть приложение и выгрузить его из памяти (в отличие от Android, закрытые приложения честно выгружаются).
Стоит перелистнуть вправо, как попадаем на стандартные экраны с иконками установленных приложений; здесь всё очень похоже на iOS и те ланчеры для Android, в которых все приложения показываются на рабочем столе.
Если присмотреться к ОС BlackBerry 10, создаётся стойкое впечатление, что система собрала в себе всё лучшее, что могут предложить разнообразные кастомные прошивки для Android. Пробуждение экрана свайпом? Есть. Включение экрана, стоит вытащить телефон из чехла или поднять со стола? Есть, и прекрасно работает. Разнообразные жесты и действия на переворачивание телефона? Тоже имеются. Даже форму и разрешение экрана для приложений Android можно менять динамически – возможность, появившаяся в Android лишь с 7-й версии.
Казалось бы, совсем недавно Apple выпустили iPhone X и одиннадцатую версию iOS. В iPhone X реализована жестовая концепция управления пользовательским интерфейсом. Смахивающее движение от нижнего края экрана – и активное приложение сворачивается с красивой анимацией, а пользователь попадает на домашний экран. Свайп снизу-вверх и направо – и пользователю доступен список приложений. Удобно? Как оказалось, пользователи iPhone X вполне адаптировались к новой системе управления.
Вот только придумала эту систему совсем не Apple. Именно в BlackBerry 10 в далёком 2013 году появилось управление жестами, причём практически в том же виде, в каком Apple реализовала подобные функции в iPhone X. При этом управление и интерфейс BlackBerry 10 были гораздо более интересны: например, приложение, которое сворачивалось смахиванием от нижнего края экрана, превращалось не в статичную иконку, как на iPhone, а сворачивалось на главный экран в своеобразный виджет в виде плитки. Что характерно, даже на очень слабых процессорах и даже при полной загрузке CPU базовый функционал и интерфейс системы никогда не подтормаживали и не подлагивали.
В BlackBerry 10 очень гибкая настройка уведомлений. Аналогичного уровня настройки Android достиг, пожалуй, только к версии 7. На каждое уведомление можно настроить свою уникальную реакцию устройства, настроив звуки и вибрацию, а также цвет светодиодного индикатора. Более того, уведомления можно ещё и группировать в профили – например, разрешив в ночное время звук только для телефонных звонков (или только от избранных контактов). Впрочем, «ночным режимом» профили далеко не ограничены: с помощью сторонних приложений (работающих, нужно отметить, в фоновом режиме) их можно переключать в зависимости от… да практически от чего угодно, на что хватит фантазии.
Кстати, работу в фоне можно разрешать и запрещать приложениям BlackBerry по отдельности: подобная функция (в достаточно урезанном виде) пришла в Android только с версией 8.0. А гранулярный динамический (при первом запуске) контроль разрешений появился в BlackBerry 10 задолго до выхода Android 6.0, в котором Google впервые ввёл аналогичную функцию. Если же на устройстве с BlackBerry 10 запускать приложения для Android, то с ними дела обстоят несколько более грустно: для них управление разрешениями куда более скудное.
Центральной частью BlackBerry 10 является BlackBerry Hub (название так и не было переведено на русский язык даже в официальной документации). Он вызывается характерным жестом из любого приложения или места ОС. Достаточно подцепить текущий экран свайпом вверх от нижнего края экрана и смахнуть его вправо, как откроется BlackBerry Hub:
В хабе собраны все учётные записи и все уведомления, поступающие от интегрированных с ним приложений. Это и письма на разные адреса электронной почты, и твиты в Twitter, и сообщения в Facebook, и уведомления Skype, а также звонки и SMS.
И это не просто место, в котором можно просмотреть сообщения или твиты: на них можно ответить или отреагировать, не выходя из хаба и, как правило, даже не запуская соответствующего приложения. Для человека, который должен всегда быть на связи и который использует для этого несколько каналов, хаб – просто идеальное решение. (От себя добавлю: действительно, очень удобно. После BlackBerry 10 я так и не смог отвыкнуть от хаба, пришлось устанавливать его версию для Android. Это, конечно, бледная тень былого величия, но всё равно удобно!)
Это в теории. А на практике… Малая популярность платформы привела к тому, что провайдеры стали отказываться от поддержки системы и, соответственно, интеграция с хабом стала пропадать. Первой ласточкой стал Facebook, объявившей, что официальное приложение перестанет работать в мае прошлого года. За ним последовал WhatsApp, клиент которого перестал работать на BlackBerry 10. Skype уже очень давно доступен исключительно в виде приложения для Android (о них ниже).
Что интересного можно написать про доступ к файлам? «Устройство поддерживает карты памяти объёмом до…» — ну, да, поддерживает. И exFAT, и NTFS. И тем не менее, не спешите пропускать эту секцию: в BlackBerry сумели создать нечто уникальное, аналогов чему нет ни в одной другой мобильной системе (если не считать таковой Windows 8 или 10, запущенную на планшете).
Итак, во-первых: пользователю телефона с BlackBerry 10 штатным образом доступны не только файлы, которые хранятся на самом устройстве, но и файлы из популярных «облачных» сервисов – Dropbox, Box.com и OneDrive. Они доступны в штатном файловом менеджере. Что же здесь такого необычного, ведь и в Android можно получить доступ к любому облаку через интерфейс Document Storage? А необычно то, что в BlackBerry 10 можно отобразить «облака» непосредственно на файловую систему устройства, заставив систему синхронизировать данные между «облаком» и телефоном. В результате «облако» будет доступно и в офлайне. Установить в устройство карту памяти побольше – и все файлы всегда будут доступны независимо от того, есть ли связь с интернетом или нет.
А ещё в BlackBerry 10 можно получать доступ к файлам, которые хранятся на твоём компьютере или сетевом накопителе. Даже тогда, когда телефон работает через мобильную сеть. Правда, для этого на компьютере должно быть установлено приложение BlackBerry Link, но это уже тонкости.
При подключении телефона к компьютеру внутренняя память и SD карта также становятся доступными: приложение BlackBerry Link монтирует их как обычные диски. Правда, для этого требуется предварительно настроить на компьютере приложение Link и обязательно разблокировать телефон паролем (это можно сделать с компьютера).
Гораздо интереснее то, что доступ к файловой системе телефона можно получить (смонтировав как обычные диски) даже тогда, когда телефон не подключен к компьютеру проводом, а работает в сети Wi-Fi.
Да, для этого требуется предварительно установить доверительные отношения между компьютером и телефоном через приложение BlackBerry Link, но сам факт того, что на диске «E:\» у нас видны файлы из телефона – вещь непредставимая для других мобильных ОС.
Напоследок отметим встроенный DLNA сервер:
Для BlackBerry 10 очень мало приложений. Если про дефицит приложений для Windows Phone писали все кому не лень, то здесь дефицит можно смело умножать на десять. Те приложения, которые доступны, можно было скачать из встроенного магазина BlackBerry World (в настоящее время магазин BlackBerry World закрыт для добавления новых приложений, а в декабре 2019 и вовсе будет полностью отключен):
При этом тот факт, что приложение присутствует в BlackBerry World, вовсе не означает, что это – приложение, созданное и скомпилированное для BlackBerry. Оно вполне может оказаться обычным .apk-файлом для Андроид с вырезанными Google API. Минуту… Android?
Как нам известно, BlackBerry 10 основана на QNX. А очевидно ли, что отличия между QNX и Linux с точки зрения API настолько невелики, что BlackBerry смогли встроить в BB10 полноценную подсистему Android? Версия Android, основанная на Runtime 4.3 Jelly Bean, исполняется даже не в эмуляторе; вызовы из подсистемы транслируются в вызовы QNX. Да, трансляция вызовов API и усиленные требования безопасности замедляют работу подсистемы в сравнении с устройствами на Андроид на похожих аппаратных платформах, но сама возможность запускать приложения для Android заметно облегчала участь приверженцев BlackBerry 10.
Приложения для Android доступны как в BlackBerry World (что отнюдь не украшает магазин, потому что отличить их от гораздо лучше работающих «родных» приложений возможно далеко не всегда), так и во втором, дополнительном магазине – Amazon App Store:
Подсистема Android бесшовно интегрирована в BlackBerry 10. Что это значит на практике? Например, если выбрать действие «поделиться», то в качестве возможных целей пользователю будет предложен список, в котором будут как «нативные» приложения BB10, так и приложения Android. Скажем, если из приложения Android открыть ссылку на веб-сайт, а в качестве браузера по умолчанию установлен Hub Browser или Card Browser (это одностраничный браузер-карточка, на Android аналогом будет Chromer/Lynket), то пользователь увидит стандартную «карточную» анимацию, а жестом «смахивание вправо» карточка браузера будет убрана, а пользователь вернётся к приложению для Android – точно так же, как это произошло бы в случае со связкой из «родных» приложений.
Насколько хорошо работает Android на телефонах BlackBerry и насколько подсистема Android Runtime на самом деле решает проблему нехватки приложений? Фактически, это «костыль». К тому же сильно устаревший. Как ни крути, а Android 4.3 уже давно поддерживается большинством приложений. «Отваливаются» популярные программы обмена сообщениями. Перестало работать приложение службы доставки DHL и многие другие полезные программы.
Приложениям Android доступны даже не все ресурсы телефона. Так, BlackBerry Passport, сердцем которого является Snapdragon 800, предлагает приложениям Android только два ядра из четырёх. Отсутствует инерционная прокрутка с клавиатуры или трекпада. Если закрыть приложение для Android жестом «назад», перестают работать свайпы с клавиатуры для перелистывания экранов (этот баг так и не был исправлен за полтора года, прошедших с последнего обновления до выхода системы версии 10.3.3). «Наверное, лучше, чем ничего» — будет весьма верной характеристикой.
Создание и восстановление резервных копий – штатная функция iOS и до сих пор больное место Android. В BlackBerry 10 механизм создания и восстановления резервных копий есть и вполне отлажен. Для создания резервной копии используется приложение BlackBerry Link, но можно воспользоваться и сторонним приложением Sachesi.
Для создания резервной копии устройство потребуется подключить к компьютеру и разблокировать паролем. Данные, которые попадают в резервную копию, надёжно шифруются ещё внутри устройства; наружу попадает уже зашифрованный поток, который просто сохраняется приложением BlackBerry Link или Sachesi в виде файлов. Можно сказать, что создание резервной копии происходит внутри телефона. Кстати, в случае с iOS резервное копирование работает точно так же, только шифрование там опционально и делается с помощью пароля.
В BlackBerry 10 есть мощный сквозной поиск. Достаточно начать набирать слово с клавиатуры, как результаты – приложения, контакты, письма и т.п. – появляются автоматически. Никакое отдельное приложение запускать для этого не нужно. Кроме того, в системе есть и весьма приличный голосовой помощник, работающий – снова в отличие от Google – полностью автономно.
Здесь всё привычно и непривычно одновременно. Привычно – наличие ОТА-обновлений, привычно и то, что ждать их можно до морковкина заговенья. Это не Apple, и явные баги или не чинятся никогда, или нехотя и не полностью исправляются спустя годы и месяцы. Ежемесячные обновления безопасности? Да зачем они «самой безопасной системе»? Две зияющие дыры – отсутствие двухфакторной аутентификации и обход системы защиты от сброса к заводским установкам BlackBerry Protect – так и не исправлены спустя годы. Новая прошивка 10.3.3 сертифицирована NIAP после полутора лет разработки? Это означает только то, что она сертифицирована NIAP, и совершенно не означает того, что обойти BlackBerry Protect вдруг стало невозможно.
И в то же время… в то же время у BlackBerry есть совершенно уникальный механизм восстановления «убитых» устройств с помощью так называемых автозагрузчиков. Автозагрузчик – это просто большой исполняемый файл, приложение для Windows, в котором содержится абсолютно всё необходимое для прошивки смартфона из состояния «кирпича». Не нужно никаких Flash Tools, QPST, QFIL и других страшных слов. Просто скачиваем файл с сайта BlackBerry или с любимого форума, запускаем – и устройство восстанавливается. Зловредное ПО? Нет, не получится: прошить можно только файлы, у которых совпадает цифровая подпись. За все годы работы обойти это условие так и не удалось, так что прошивку устройства считаем действительно безопасной.
Ещё интересный момент: прошивку можно обновлять по частям, просто записывая отдельные приложения в виде .BAR-файлов через программу Sachesi. Разумеется, файлы также должны быть подписаны BlackBerry, иначе в систему они не прошьются. А вот пользовательское приложение таким образом установить можно, но никаких преференций по сравнению с приложениями, установленными из магазина, оно не получит.
Эту главу я оставил напоследок. С момента выхода BlackBerry 10 производитель твердил о не имеющей аналогов безопасности этой системы. В чём она выражается, и правда ли, что BlackBerry 10 невозможно взломать?
Про безопасность на уровне прошивки мы уже говорили: прошивку модифицировать невозможно, получить эскалацию привилегий – тоже. Рут-доступ в Android Runtime (несмотря на то, что это – древний Android 4.3 Jelly Bean) также получить не удалось никому за всё время существования системы.
Система BlackBerry 10 – единственная из мобильных операционных систем, которая не следит за своими пользователями. Данные не собираются и не передаются на серверы компании; отсутствует даже анонимная телеметрия. История твоих перемещений останется на твоём устройстве (если, конечно, ты не установишь сервисы Google и не воспользуешься Google Maps). Голосовой помощник обрабатывает все команды локально, а запись голоса не будет храниться ни на каком сервере (Google, например, передаёт и хранит). Даже BlackBerry Travel осуществлял разбор и обработку писем полностью локально, лишь по твоему выбору создавая уже готовые события в «облачном» (или локальном) календаре. Да, при ловле наркобаронов в Колумбии производитель может оказать помощь следствию, но в сравнении с Apple или Google это – воистину капля в море как по частоте обращений, так и по объёму «помощи», которую оказывает компания.
Собственных «облачных» сервисов у BlackBerry нет за двумя исключениями: BlackBerry Protect и криптографический ключ, привязанный к учётной записи BlackBerry ID, с помощью которого шифруются и расшифровываются резервные копии устройств. Как мы помним, все бэкапы BlackBerry 10 шифруются, причём шифруются не паролем, а криптографическим ключом, привязанным к BlackBerry ID пользователя. Вот этот-то ключ и хранится в «облаке» и, при определённой сноровке, может быть оттуда извлечён. С учётом того, что у BlackBerry ID нет защиты с помощью двухфакторной аутентификации, надёжность хранения этого ключа вызывает вопросы.
Кстати, о двухфакторной аутентификации BlackBerry ID. Её нет. Большая, жирная точка.
BlackBerry Protect призван защищать пользователей от кражи смартфонов. Если сбросить устройство (или просто десять раз подряд ввести неправильный пароль), то для настройки системы потребуется зайти в ту же учётную запись, которая была активна до сброса. Удалили учётную запись? Вам не повезло: устройство превращается в кирпич.
Это в теории. На практике же для обхода BlackBerry Protect на версиях системы 10.3.2 и более старых достаточно было прошить автозагрузчик девелоперской версии ОС, после чего зарегистрировать устройство на другую учётную запись. Казалось бы, полтора года, потраченные компанией на выпуск ОС 10.3.3 – достаточный срок, чтобы закрыть эту дыру. И действительно, *эту* дыру закрыли. Теперь для обхода BlackBerry Protect требуется просто заменить приложение BlackBerry Protect в готовом [ https://www.blackberrys.ru/faq/31536.html ]файле автозагрузчика. Пять минут. Максимум – десять. Даже удобнее стало, не надо искать девелоперский автозагрузчик. Аминь.
Наконец, шифрование. Шифрование в BlackBerry 10, как ни странно, опциональное:
Его можно включать, а можно и не включать. Даже при включенном шифровании защита данных – одноуровневая: аналога Keychain из iOS в системе не наблюдается. Разумеется, некая Trusted Zone есть; в ней, в частности, сохраняется ключ, которым шифруются резервные копии, но именно широкого использования дополнительного уровня шифрования для защиты пользовательских данных здесь нет.
Впрочем, всё-таки надо отдать должное: для 2014 года уровень безопасности системы был вполне на уровне, а с тех пор она особо не эволюционировала. При этом в других областях – использование корпоративного BES вместо глобального сервера BlackBerry, использование внешних политик безопасности (в том числе заставляющих использовать шифрование), — смартфоны под управлением BlackBerry 10 до сих выглядят неплохо. А если говорить о слежке за пользователем со стороны производителя и сторонних компаний, то именно BlackBerry 10 предоставляет максимум приватности. (А вот линейка смартфонов BlackBerry, работающих под управлением ОС Android, ничего такого не даёт).
Про BlackBerry 10 можно писать ещё много. Можно упомянуть BlackBerry Blend – ранний аналог Continuum, появившийся на несколько лет раньше, чем во флагманах Microsoft. Можно рассказать про BlackBerry Travel, сканирующий входящие письма непосредственно на устройстве (это важно! Аналог от Google сканирует почту на собственном сервере) и добавляющий информацию о найденных поездках в календарь. Можно вспомнить ещё десятки мелочей, облегчающих использование смартфона и не имеющих аналогов на других платформах.
К сожалению, эта история завершилась. Скорое закрытие магазина приложений BlackBerry World поставит окончательную точку в эволюции BlackBerry 10. BlackBerry 10 не смогла удержать свою долю рынка и была вытеснена Android — системой с противоречивой архитектурой и неоднозначным подходом к приватности. Причинами тому стали как решения самой компании BlackBerry, так и тот факт, что первые версии системы получились откровенно сырыми.
Да, если бы в момент выхода у компании BlackBerry была ОС BlackBerry 10 в том виде, в котором мы застали её сейчас, история могла бы пойти по другому пути. Но первые версии системы были откровенно недоделаны. Android Runtime сначала не было совсем, потом – была ограниченная версия, в которой разработчики должны были «оборачивать» .apk в файлы .bar, и только в самом конце была выпущена версия Android Runtime без искусственных ограничений.
У истории нет сослагательного наклонения. BlackBerry 10 покинула рынок, а компания переключилась на разработку набора сервисов Hub+ и прошивок для Android, которые устанавливаются в устройства, произведённые по лицензии компанией TCL.