Содержание статьи
В этом выпуске: Apple собралась совершить революцию, взрывающиеся Note 7, смерть BlackBerry и Firefox OS, еще одна операционка от Google, самый быстрый эмулятор Android, руководство по обеспечению безопасности Android-приложений и рассказ о методе копирования памяти Apple iPhone 5c.
События
Главное событие сентября — это, конечно же, выпуск новых моделей iPhone, Apple Watch и беспроводных наушников AirPods. И если первые не принесли чего-то действительно нового, кроме совершенно непрактичного черного варианта цвета и отсутствия 3,5-миллиметрового джека для подключения наушников (который даже нельзя высверлить), то AirPods стали не просто новым взглядом на периферийное устройство, а первым шагом Apple на пути к будущему, каким его видит компания.
AirPods не просто дорогой аксессуар, который легко потерять. Это полноценный компьютер (два компьютера!), способный определять, находится ли наушник в ухе, и автоматически ставить воспроизведение на паузу, если это не так. Он следит за твоим ртом и приглушает громкость во время разговора, он переключается в монорежим, когда ты вынимаешь один из наушников, может без всякого дополнительного спаривания работать с любым из твоих гаджетов и вызывать Siri в ответ на двойной тап по наушнику.
В дальнейшем мы наверняка увидим еще большее развитие интеллекта AirPods, а когда Siri наконец научится вести нормальный человеческий диалог, Apple войдет в историю как компания, создавшая реальный гаджет из фильма «Она».
В сентябре отличилась и Samsung, всегда считавшая себя главным конкурентом Apple. Но аналога AirPods они не создали, а всего лишь выпустили на рынок Galaxy Note 7 со взрывоопасной батареей. Проблема, как выяснилось, была в том, что в стремлении сделать девайс как можно тоньше компания нарушила техпроцесс производства аккумуляторов. В результате по всему миру у поклонников продукции Samsung начало в прямом смысле «бомбить». Авиакомпании запретили включать девайс на борту, акции Samsung рухнули.
Первое, что сделала Samsung, — это выпустила специальное обновление, которое просто ограничивает максимальный заряд аккума 60 процентами. Позже компания начала заменять устройства пользователя на новые, с исправленной батареей, и даже получила у Google разрешение сделать цвет значка батареи в таких девайсах зеленым (Google требует, чтобы значки в строке состояния были монохромными серыми или белыми). Однако, как заявляют многие владельцы, программа обмена смартфона работает из рук вон плохо, так что, скорее всего, Samsung придется еще долго отмываться от этой истории.
Не обошлось и без печальных новостей. В конце месяца BlackBerry официально заявила, что прекращает производство смартфонов и переключается на разработку ПО. Судя по всему, такое решение было принято уже давно, вскоре после релиза BlackBerry Priv: уже несколько месяцев «разрабатываемый» смартфон BlackBerry DTEK50 оказался как две капли воды похож на Alcatel Idol 4. Теперь понятно, что это он и есть, очевидно — с собственной версией прошивки от BlackBerry и ее же сервисами.
Вторую печальную новость принесла Mozilla. Они окончательно отказались от разработки и поддержки Firefox OS и планируют в ближайшее время выпилить весь код, касающийся мобильной ОС, из движка Gecko. Сама Firefox OS останется в руках сообщества, но, как подчеркивает Mozilla, без соответствующей поддержки в движке Gecko проект будет очень трудно развивать.
Ну и очередная новость от поискового гиганта: Google разрабатывает новую операционку Andromeda, которая должна стать чем-то вроде сплава Android и Chrome OS. О возможном объединении проектов компания начала говорить еще в прошлом году, и теперь мы получили подтверждение этой затеи: в исходниках Android 7.0 есть прямое упоминание новой ОС.
По слухам, Google представит Andromeda уже четвертого октября, а выход первого устройства на ее базе должен произойти в конце 2017 года. Это будет ноутбук Pixel 3, стоимостью 799 долларов. Сама же операционка будет сплавом Android и Chrome OS с перекосом в сторону первого. То есть не Chrome OS, способная запускать Android-приложения, а, скорее, Android, функционально похожий на Chrome OS.
Релизы
В середине сентября компания Jide, известная как разработчик операционной системы Remix OS, представляющей собой Android с многооконным интерфейсом, выпустила новый продукт — Remix OS Player. Как ни странно, это эмулятор Android для Windows, созданный на базе стандартного эмулятора из комплекта Android Studio и отличающийся использованием Remix OS вместо стандартного Android.
Пока эмулятор доступен исключительно для Windows и страдает от проблем c производительностью и предустановленным Play Store. Но, как заявляют разработчики, это самый быстрый эмулятор из всех существующих в данный момент.
Инструменты
Droid-hunter — инструмент для анализа Android-приложений. Умеет выводить информацию о пакете, включая манифест и используемые привилегии, декомпилировать и дизассемблировать код и выполнять автоматизированный поиск уязвимостей (penetration testing).
Посмотреть
Безопасность Android-приложений — Дмитрий Лукьяненко рассказывает о том, как надо и как не надо писать безопасные приложения для Android. Лекция охватывает многие проблемы Android-приложений, включая экспортируемые сервисы, неявные интенты, протекающие контент-провайдеры, ошибки типа path traversal и так далее. В целом довольно познавательная лекция, которая может оказаться полезной разработчикам и реверсерам, интересующимся безопасностью приложений. Но более-менее подготовленный разработчик не откроет для себя ничего нового.
Android Performance — Nougat vs Marshmallow — сравнение производительности Android 6.0 и 7.0. Вывод: 6.0 быстрее. Проблема только в том, что, скорее всего, автор видео некомпетентен. Android 7.0 использует гибридный JIT/OAT-компилятор, поэтому полную трансляцию байт-кода установленного приложения в нативный код ARM он выполняет не сразу, а раз в день при подключении к заряднику. Сразу после установки исполнение приложения происходит практически так же, как в Android 4.X, то есть только с задействованием JIT-компилятора.
Почитать
Android 7.0 for Developers — официальная документация Android 7.0 для разработчиков. Статья рассказывает, как адаптировать свое приложение к многооконному режиму, использовать новые возможности уведомлений, оптимизировать приложения с целью сохранения заряда аккумулятора, использовать Vulkan API, пришедший на смену OpenGL, добавить собственную кнопку в панель быстрых настроек, адаптировать приложения для режима Direct Boot и так далее.
Keeping Android safe: Security enhancements in Nougat — краткий список всех повышающих безопасность нововведений в Android 7.0: режим Direct Boot, шифрование файлов по отдельности вместо всего пользовательского раздела, применение seccomp, разделение MediaServer’а на множество сервисов и многое другое. Почти обо всех этих новшествах мы уже писали.
Doctor Web: Android.Xiny Trojans have learned how to infect system processes — разбор трояна Android.Xiny.60 от компании Dr.Web. Троян получает права root на устройстве и копирует свои компоненты в каталог system, затем с помощью ptrace внедряет свою библиотеку в Google Play, Google Play Services и Zygote — родительский процесс всех запускаемых в системе приложений.
После внедрения в Zygote троян мониторит запуск приложений и внедряет в них Java-код igpi.jar, который отправляет на сервер информацию о смартфоне: IMEI, IMSI, MAC-адрес, версию ОС, модель устройства и прочее. Троян способен расширять свою функциональность с помощью загружаемых модулей, а также перехватывать и отправлять сообщения (если он внедрен в соответствующее приложение) и получать информацию о кредитных картах и паролях пользователя, попадая в клиент банка (какие банки поддерживаются — непонятно).
Android.Xiny был найден как на варезных сайтах, так и в Google Play.
The bumpy road towards iPhone 5c NAND mirroring — рассказ об успешном эксперименте по клонированию NAND-памяти iPhone 5c, который мог бы помочь ФБР сэкономить полтора миллиона долларов. Суть метода очень проста: так как подобрать PIN-код брутфорсом в iPhone невозможно из-за ограничения на число попыток, автор предлагает скопировать NAND-память устройства, затем несколько раз попробовать ввести PIN, залить содержимое NAND обратно (сбросив счетчик попыток) и вновь попробовать ввести PIN — и так множество раз.
Хотя сам метод и выглядит простым, для его реализации без джейлбрейка автору пришлось расковырять проприетарный протокол передачи данных между NAND-чипом и найти методом проб и ошибок правильные пины для слива с него информации.