Содержание статьи
Сегодня посмотрим, как производители смартфонов с Android создавали проблемы своим пользователям, за мзду малую предустанавливая в системный раздел всякий хлам. Предадимся ностальгии и вспомним ES File Explorer, QuickPic, Clean Master и TouchPal — и посмотрим, во что превратились эти некогда популярные утилиты.
Предустановленный софт и кастомные разрешения
Для начала разберемся, как на самом деле работает трюк с предустановкой и почему последующая подмена способна создать столько проблем.
Обычные приложения, которые ты ставишь из Google Play, живут в песочнице — разделе / — и используют стандартную модель разрешений (уже давным‑давно приложения должны явно запрашивать доступ к камере, контактам и прочему). Предустановленный же софт вшивается в системный раздел, например в директории / (а в некоторых случаях даже в /). Проблема здесь не в объеме — производители давно научились вшивать «болванки» APK, которые практически не занимают места в системном разделе. Фактически это набор из иконки, метаданных и (важно!) цифровой подписи разработчика.
Такие предустановленные приложения нельзя удалить — их можно только «заморозить» или «отключить» (функция disable); это удалит все накаченные сверху обновления, но базовый APK из системного раздела никуда не пропадет: после сброса смартфона приложение вновь окажется активным, получит запрошенные права доступа, установит обновления и начнет делать то, чего от него хотели разработчики.
О каких правах доступа идет речь, если в Android система разрешений давно гранулярная, а сам факт присутствия в системном разделе не гарантирует наследования «страшных» привилегий? О, у разработчиков богатейшая фантазия! Предустановленные приложения (уточню: зловредные предустановленные приложения, чуть ниже мы посмотрим на некоторые из них) прекрасно умеют игнорировать стандартные запросы разрешений, получая их просто по факту своего присутствия в прошивке.
OEM-производители (Samsung, Xiaomi и другие) часто выдают своему софту нестандартные, кастомные права. Исследователи нашли более 4800 таких уникальных привилегий (PDF: An Analysis of Pre-installed Android Software), которых вообще нет в официальной документации Android Open Source Project (AOSP). Они позволяют спокойно общаться с проприетарными компонентами, читать логи звонков и обходить ограничения на расход батареи. Для сканеров Google Play эти разрешения фактически невидимы.
Наверное, если уважаемый производитель установил какое‑то приложение, то, наверное, ему можно доверять... Сомневаешься? Правильно, но на самом деле пока что все еще относительно нормально. Низкоуровневые разрешения часто нужны для вполне банальных вещей — вроде обращения к встроенному в телефон инфракрасному трансмиттеру для управления телевизором, для чего в прошивках того времени просто не было стандартного API.
Нехорошие вещи начали происходить не сразу, а очень даже потом.
Трюк с подменой
Вернемся к началу предыдущего раздела. Предустановленный софт попадает на смартфон по такой цепочке: встроенный APK с цифровой подписью разработчика → обновление через Google Play → наследование разрешений. Видишь подвох? Цифровая подпись прошитого в системном разделе APK не контролируется производителем смартфона; она — в руках разработчика софта.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
