«Видел?» — пишет мне кол­лега и при­сыла­ет новость: в оче­ред­ном флаг­мане Samsung пре­дус­танов­ленные при­ложе­ния отож­рали 17 Гбайт дис­кового прос­транс­тва — сра­зу пос­ле началь­ной нас­трой­ки и без малей­шей попыт­ки спро­сить поль­зовате­ля, надо ли оно ему.

Се­год­ня пос­мотрим, как про­изво­дите­ли смар­тфо­нов с Android соз­давали проб­лемы сво­им поль­зовате­лям, за мзду малую пре­дус­танав­ливая в сис­темный раз­дел вся­кий хлам. Пре­дадим­ся нос­таль­гии и вспом­ним ES File Explorer, QuickPic, Clean Master и TouchPal — и пос­мотрим, во что прев­ратились эти неког­да популяр­ные ути­литы.

 

Предустановленный софт и кастомные разрешения

Для начала раз­берем­ся, как на самом деле работа­ет трюк с пре­дус­танов­кой и почему пос­леду­ющая под­мена спо­соб­на соз­дать столь­ко проб­лем.

Обыч­ные при­ложе­ния, которые ты ста­вишь из Google Play, живут в песоч­нице — раз­деле /data/app — и исполь­зуют стан­дар­тную модель раз­решений (уже дав­ным‑дав­но при­ложе­ния дол­жны явно зап­рашивать дос­туп к камере, кон­тактам и про­чему). Пре­дус­танов­ленный же софт вши­вает­ся в сис­темный раз­дел, нап­ример в дирек­тории /system/app (а в некото­рых слу­чаях даже в /system/priv-app). Проб­лема здесь не в объ­еме — про­изво­дите­ли дав­но научи­лись вши­вать «бол­ванки» 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, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии