Содержание статьи
Что это за система и как так получилось, что она практически исчезла с рынка? В этой статье мы обсудим особенности BlackBerry 10 и ее отличия от Android и iOS, полюбуемся на пользовательский интерфейс и проверим заявления маркетологов о безопасности этой ОС.
Архитектура BlackBerry 10
Открытый исходный код, регулярные обновления, сообщества разработчиков — все это не про BlackBerry 10. BlackBerry 10 была разработана на основе операционной системы QNX канадской компанией RIM (Research In Motion), позднее переименованной в BlackBerry Inc. QNX (читается «кьюникс») — ОС реального времени, основанная на архитектуре микроядра. Когда-то ее предустанавливали на машинное и телекоммуникационное оборудование, встраивали в бортовые ПК автомобилей, в сетевое оборудование Cisco (IOS XR, до 2013 года), и наконец она оказалась в смартфонах.
Что такое QNX и что может дать микроядро в применении к мобильной ОС? Возьмем, к примеру, Android. Он построен на ядре Linux, включающем в себя как собственно базовые сервисы ОС (управление процессами и потоками, обмен сигналами и сообщениями, таймеры и синхронизация), так и огромный пласт подсистем и сервисов. В ядро Linux входят все драйверы аппаратной части устройства, драйверы файловой системы, сетевой стек и даже такие вещи, как поддержка 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. Пробуждение экрана свайпом? Есть. Включение экрана при извлечении смартфона из чехла или поднятии со стола? Есть, и прекрасно работает. Разнообразные жесты и действия на переворачивание телефона? Тоже имеются.
Уведомления и контроль фоновых процессов
В BlackBerry 10 совершенно потрясающе настраиваются уведомления. На каждый чих можно сделать свою уникальную реакцию устройства, настроив звуки и вибрацию, а также цвет светодиодного индикатора. Более того, уведомления можно еще и группировать в профили — например, разрешив в ночное время звук только для телефонных звонков (или только от избранных контактов). Впрочем, «ночным режимом» профили далеко не ограничены: с помощью сторонних приложений (работающих, нужно отметить, в фоновом режиме) их можно переключать в зависимости от... да практически от чего угодно, на что хватит фантазии.
Работу в фоне можно разрешать и запрещать приложениям по отдельности, причем гранулярный динамический (при первом запуске) контроль разрешений появился в BlackBerry 10 задолго до выхода Android 6.0.
BlackBerry Hub
Центральная часть BlackBerry 10 — BlackBerry Hub. Он вызывается характерным жестом из любого приложения или места ОС. Достаточно подцепить текущий экран свайпом вверх от нижнего края экрана и смахнуть его вправо, как откроется хаб:
В хабе собраны все учетные записи и все уведомления, поступающие от интегрированных с ним приложений. Это и письма на разные адреса электронной почты, и твиты в Twitter, и сообщения в Facebook, и уведомления Skype, а также звонки и СМС.
И это не просто место, в котором можно просмотреть сообщения или твиты: на них можно ответить или отреагировать, не выходя из хаба и, как правило, даже не запуская соответствующего приложения. Для человека, который должен всегда быть на связи и который использует для этого несколько каналов, хаб просто идеальное решение. (От себя добавлю: действительно, очень удобно. После BlackBerry 10 я так и не смог отвыкнуть от хаба, пришлось устанавливать его версию для Android. Это, конечно, бледная тень былого величия, но все равно удобно!)
Это в теории. А на практике... Малая популярность платформы привела к тому, что провайдеры стали отказываться от поддержки системы и, соответственно, интеграция с хабом стала пропадать. Первой ласточкой был Facebook, объявивший, что официальное приложение перестанет работать в мае 2016 года. За ним последовал 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: у нас видны файлы из телефона, — вещь непредставимая для других мобильных ОС.
Приложения и Android
Для BlackBerry 10 очень мало приложений. Если ты слышал про дефицит приложений для Windows Phone, то здесь его (дефицит) можно смело умножать на десять. Те приложения, которые доступны, можно скачать из встроенного магазина BlackBerry World:
При этом тот факт, что приложение присутствует в BlackBerry World, вовсе не означает, что это приложение, созданное и скомпилированное для BlackBerry. Оно вполне может оказаться обычным APK-файлом для Android с вырезанными Google API. Минуту... Android?
Ты уже знаешь, что BlackBerry 10 основана на QNX. А известно ли тебе, что отличия между QNX и Linux с точки зрения API настолько невелики, что BlackBerry смогли встроить в BB10 полноценную подсистему Android? Версия Android, основанная на Runtime 4.3 Jelly Bean, исполняется даже не в эмуляторе; вызовы из подсистемы транслируются в вызовы QNX. Да, трансляция вызовов API и усиленные требования безопасности замедляют работу подсистемы в сравнении с устройствами на Android с аналогичным железом, но сама возможность запускать приложения для Android заметно облегчает участь приверженцев BlackBerry 10.
Приложения для Android доступны как в BlackBerry World (что отнюдь не украшает магазин, потому что отличить их от гораздо лучше работающих «родных» приложений возможно далеко не всегда), так и во втором, дополнительном магазине — Amazon App Store:
Подсистема Android бесшовно интегрирована в BlackBerry 10. Что это значит на практике? Например, если я выберу действие «поделиться», то в качестве возможных целей мне будет предложен список, в котором будут как «нативные» приложения BB10, так и приложения Android. Скажем, если из приложения Android я открою ссылку на веб-сайт, а в качестве браузера по умолчанию у меня будет установлен Hub Browser или Card Browser (это одностраничный браузер-карточка, на Android аналогом будет Chromer), то я получу стандартную «карточную» анимацию, а жестом «смахивание вправо» я уберу карточку браузера и вернусь к приложению для Android — точно так же, как это произошло бы в случае со связкой из «родных» приложений.
Насколько хорошо работает Android на телефонах BlackBerry и насколько подсистема Android Runtime на самом деле решает проблему нехватки приложений? Ну... это костыль. К тому же сильно устаревший. Как ни крути, а Android 4.3 поддерживается уже далеко не всеми приложениями. «Отваливаются» популярные программы обмена сообщениями. Перестало работать приложение службы доставки DHL: на сайте добавили капчу, а обновленная версия мобильного приложения с ее поддержкой доступна только для устройств с Android 4.4 и выше.
Приложениям Android доступны даже не все ресурсы телефона. Так, BlackBerry Passport, сердцем которого является Snapdragon 801, предлагает приложениям 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 невозможно взломать?
Про безопасность на уровне прошивки мы уже говорили: прошивку модифицировать невозможно, получить эскалацию привилегий — тоже. Root-доступ в 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 в готовом файле автозагрузчика. Пять минут. Максимум — десять. Даже удобнее стало, не надо искать девелоперский автозагрузчик. Аминь.
Наконец, шифрование. Шифрование в BlackBerry 10, как ни странно, опциональное:
Его можно включать, а можно и не включать. Даже при включенном шифровании защита данных одноуровневая: аналога Keychain из iOS в системе не наблюдается. Разумеется, некая Trusted Zone есть; в ней, в частности, сохраняется ключ, которым шифруются резервные копии, но именно широкого использования дополнительного уровня шифрования для защиты пользовательских данных здесь нет.
Впрочем, все-таки надо отдать должное: для 2014 года уровень безопасности системы вполне на уровне, а с тех пор она особо не эволюционировала. При этом в других областях — использование корпоративного BES вместо глобального сервера BlackBerry, использование внешних политик безопасности (в том числе заставляющих использовать шифрование) — смартфоны под управлением BlackBerry 10 до сих пор не потеряли актуальности. А если говорить о слежке за пользователем производителя и сторонних компаний, то именно BlackBerry 10 предоставляет максимум приватности. (А вот смартфон BlackBerry Priv, сделанный на основе Android, ничего такого не дает.)
Заключение
Про BlackBerry 10 можно писать долго. Можно упомянуть BlackBerry Blend — ранний аналог Continuum, появившийся на несколько лет раньше, чем во флагманах Microsoft. Можно рассказать про BlackBerry Travel, сканирующий входящие письма непосредственно на устройстве (это важно! Аналог от Google сканирует почту на собственном сервере) и добавляющий информацию о найденных поездках в календарь. Можно вспомнить еще десятки мелочей, облегчающих использование смартфона и не имеющих аналогов на других платформах.
К сожалению, эта история закончилась. BlackBerry 10 не смогла удержать свою долю рынка и была вытеснена Android — системой с противоречивой архитектурой и неоднозначным подходом к приватности. Причинами тому стали как решения самой компании BlackBerry, так и то, что первые версии системы получились откровенно сырыми.
Да, если бы три года назад у BlackBerry была BlackBerry 10 в том виде, в котором мы застали ее сейчас, история могла бы пойти по другому пути. Но первые версии системы оказались просто недоделаны. Android Runtime сначала не было совсем, потом появилась ограниченная версия, в которой разработчикам приходилось «оборачивать» APK в файлы BAR, и только в самом конце выпустили версию Android Runtime без искусственных ограничений.
У истории нет сослагательного наклонения. BlackBerry 10 уходит с рынка, а компания переключилась на разработку набора сервисов Hub+ и прошивок для Android, которые устанавливаются в устройства, произведенные по лицензии компанией TCL.