Android: Удаление вшитых приложений без Root » Crossroads
 

 
Crossroads » Linux » Android: Удаление вшитых приложений без Root

Android: Удаление вшитых приложений без Root

  • Dislike
  • 0
  • Like
Так называемое Bloatware - беда любого устройства, купленного в ритейле. Если на устройстве есть операционная система и предусмотрен выход в Интернет, производитель обязательно напихает туда кучу всякого “жизненно необходимого” дерьма, в лучшем случае о существовании которого пользователь может и не знать. Иначе же оно постоянно предлагает купить “полную версию”, дать ему разрешение на всё для “улучшения качества” и “удобства использования”.

“Мы передаём данные партнёрам (далее идёт список) для предоставления Вам персонализированного доступа, с учётом Ваших интересов и предпочтений”. Далее требуется разрешить приложению доступ к геолокации, списку контактов, отмечать лица на фото, читать текст с экрана и так далее. И единственное, для чего это приложение существует - навязывать вам игры, разработчики которых заплатили производителю вашего устройства и предлагать рестораны, которые так же не за “спасибо” рекламируются всем, кто по стечению обстоятельств оказался в той же части города. Вы участвуете в похоронной процессии, а смартфон в кармане блямкает, так как за углом есть замечательный стрип-клуб.

Microsoft просит за лицензию на Windows $200 и первое, что вы увидите после нажатия кнопки “Пуск” — это Candy Crush и Bubble Witch. И периодически этот список будет пополняться сам, даже если ничего из этого вы никогда не откроете. Другими словами, Microsoft удостоила вас чести за ваши 200 баксов получить цифровой рекламный буклет. Им уже заплатили все, кто в этом буклете представлен, а теперь платите вы, покупая лицензию на Windows. Вообще, для того чтобы брать деньги с пользователя за Adware нужен талант. У маркетологов Microsoft он определённо есть.

Когда начинаешь настраивать только что купленный гаджет от Samsung, удивляешься: почему они вообще берут за них деньги? Ведь за стоимость производства и даже доставки к вам под дверь, давно заплатили Facebook и Verizon. А учитывая то, сколько “предложений” ещё будет продано в явной и завуалированной форме, за время эксплуатации этого гаджета, Samsung должна платить потребителю, а не наоборот.

Основная проблема на устройствах с Android в том, что Bloatware обычно “вшито” в систему. У пользователя нет прав доступа к системному разделу ОС. А Facebook платит не за то, чтобы приложение можно было взять и удалить в один клик сразу после покупки гаджета. Все эти “жизненно важные” приложения установлены именно в системный раздел. Максимум, что может сделать пользователь - “заглушить” приложение, удалив все его обновления и сделав его “неактивным”. Практика показывает, что “неактивные” приложения нередко “просыпаются” после системных обновлений. Я видела китайский смартфон со вшитыми приложениями Yandex, Yandex Browser и Yandex Launcher, где этот самый Launcher вообще никак нельзя убить. То есть Самсунговский One UI можно просто отключить, предварительно поставив сторонний Launcher. Вы делаете сторонний Launcher приложением по умолчанию, перезапускаете смартфон и далее пользуетесь тем, к чему привыкли и что вам больше нравится. Yandex же подстраховался на этот случай. При отключении у приложения от Yandex всех прав на изменения системных настроек и установке галки “по умолчанию” на другой продукт, Yandex делает вид, что всё в порядке. После перезагрузки смартфона все снятые галки опять на месте и Алиса издевательски: “Чем Вам помочь”? Та же беда с браузером. Его можно отключить, но когда он включен, он всегда “по умолчанию”. Забавно, когда в Yandex начинают рассуждать о честной конкуренции, показывая пальцем в сторону Google.

Вообще, идея с системными разделами - идея правильна. То, что происходит на рынке со вшитыми приложениями — это юрисдикция антимонопольных ведомств. С технической же точки зрения — это система защиты. И это не только защита “от дурака”, не позволяющая пользователю удалить “звонилку” с телефона. В Linux существует достаточно продвинутая система прав доступа и в Android, как в ОС на ядре Linux, она используется именно для защиты данных. Всё, что ставит пользователь со своими пользовательскими правами, не может получить права на запись в системных разделах. По той же причине устройства на Android практически неубиваемые. Если там нет физических и аппаратных повреждений, то как бы не был загажен смартфон пользователем, простой сброс “к заводским настройкам” приведёт его в то состояние, в котором он был при покупке. Да, телефон может заглючить из-за косого обновления от производителя или несовместимых приложений, но пользователь не имеет возможности что-то сломать без возможности восстановления.

Многие слышали о “рутировании”. Root-доступ — это права администратора в Linux. Как на ПК пользователь с root-доступом может сделать что угодно, так и на “рутированном” гаджете. Официально Google осуждает подобные практики, но на деле серьёзно этому не противостоит. В Google Play море всяких приложений, для работы которых нужен root-доступ. Вы не найдёте там приложений, предоставляющих этот доступ, но поиск в Google покажет всё, что для этого нужно.

Если всё так просто, то почему root-доступ не предоставляется как на ПК, например? Потому что в реальности не всё так просто. Если не брать во внимание защиту “от дурака”, что немаловажно для тех же гарантийных центров, наличие в смартфоне возможности повышения прав до администраторских приведёт к резкому появлению вирусов и прочего ПО, ворующего данные и включающие устройства в бот-неты. Смартфон на Android, в плане безопасности станет тем же, чем являются ПК на Windows XP. В связи с тем, что официальных инструментов “рутирования” не существует, доступны только кустарные, что несёт в себе дополнительные риски. Даже если вы безоговорочно доверяете команде, которая предоставила вам инструмент для “рутирования” и они действительно не вшили туда что-либо мерзкое, то это всё равно ещё одна лишняя дверь для эксплойтов и шанс “окирпичить” ваше устройство, даже если вы очень осторожны. По той же причине банковские приложения либо отказываются работать на “рутированных” устройствах, либо путём оферты и предупреждений о возможных рисках снимают с себя всю ответственность.

Root-доступ - не абсолютное зло, и при определённых условиях, и с определёнными навыками пользователя имеет право на существование. Но “рутировать” смартфон только для того, чтобы вычистить bloatware - идея плохая. Рассмотрим вариант удаления хлама без root-доступа...

Android - система многопользовательская, как бы глупо это не звучало. Это мы и будем эксплуатировать в дальнейшем. Нам понадобится ПК на Linux, Windows или Mac. Я приведу пример установки соответствующего ПО на Mac, но не смогу объяснить возможные нюансы, так как лично никогда этого не делала на Маках. На ПК нам нужно поставить ADB-инструменты для доступа к гаджету через консоль с ПК.

Самый простой способ поставить ADB на Windows — это Chocolatey. Посмотрите соответствующую статью о Chocolatey, если не знаете, что это такое. Для установки через Chocolatey используйте следующую команду в PowerShell:
choco install adb

Так же ADB — это часть Android Studio, со всеми вытекающими. Установка этого набора только для ADB мне кажется излишней.

Для Mac используйте следующее:
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew cask install android-platform-tools


В репозиториях вашего дистрибутива Linux также должно быть всё необходимое. Например, для Arch это пакеты “android-tools” и “android-udev”, для Ubuntu “android-tools-adb” и “android-tools-fastboot".

На стороне устройства нужно включить режим разработчика. В этом нет ничего страшного и на некоторых устройствах он уже включен. Режим даёт доступ к некоторым настройкам, которые в повседневном использовании устройства не нужны.
Android: Удаление вшитых приложений без Root

В настройках вашего устройства, в самом низу, в разделе “об устройстве” нажмите семь раз на номер сборки. Пункт так же может быть спрятан в подразделе “Информация о ПО”. После чего вы увидите сообщение о том, что режим разработчика включен. Убедитесь, что в корне раздела с настройками появился пункт “опции разработчика”, также, в самом низу. Зайдите в него и найдите пункт, связанный с отладкой по USB (в разделе “отладка”). Включите его. Убедитесь, что сам режим “разработчика” включен в этом меню. Самый верхний пункт. Далее возьмите кабель от вашего зарядника и с его помощью подключите устройство к ПК. Далее, в терминале ПК введите следующую команду:
adb devices

Выдача будет примерно следующей:
* daemon not running; starting now at tcp:5037
* daemon started successfully
List of devices attached
RE6D13KSX7K     device

То есть всё работает и внизу список устройств. Оно одно, и мы видим его серийный номер. При первом подключении устройство будет “неизвестным” (unknown). Это защита устройства. На нём вы увидите всплывающее окно с предложением запретить или разрешить отладку. Разрешите отладку и поставьте соответствующую галку, которая добавит ваш ПК в “доверенные”, дабы этот промт не появлялся при каждом подключении. После чего введите вышеуказанную команду снова. Если всё в порядке, то можно удалять bloatware. Введите следующую команду:
adb shell pm list packages

Эта команда выдаст весь список установленных приложений, включая “системные” навязанные, а также реально системны, удаление которых нарушит работу вашего устройства. Список будет длинным. Строки в нём выглядят следующим образом:
package:com.whatsapp  
package:com.explusalpha.Snes9xPlus  
package:com.android.companiondevicemanager  
package:com.android.mms.service  
package:com.samsung.android.rubin.app  
package:com.android.providers.downloads  
package:com.google.android.apps.enterprise.cpanel

И так далее. Ещё раз повторю, если вы снесёте что-то реально нужное, то тем самым повредите свой аппарат. Как отличить реально системные приложения от bloatware, если тут не всегда понятно, что к чему? В первую очередь, не трогайте то, в чём сомневаетесь.

Например, я знаю, что без Яндекса телефон точно сможет работать, и я не буду страдать без Алисы и того факта, что “в целях улучшения качества обслуживания” список моих контактов окажется на серверах Яндекс со всеми последующими “чудесами”, которым подвержена любая персональная информация в России. Я уже не говорю о том, что приложения, котором всё запрещено и они уважают эти настройки, просто болтаются на устройстве и потребляют системные ресурсы без какой-либо пользы.

И так, если вы хотите удалить тот же Яндекс, указанный здесь для примера, то самым безопасным способом будет уточнение его системного имени. Для этого идём в Google Play через браузер, на ПК. Ищем там нужное приложение, переходим к нему и смотрим на ссылку в адресной строке. В конце всегда указано системное имя приложения. Мы видим, что этот пакет с Алисой и прочим, занимающий на устройстве более полутора гигов места, в системе скромно называется “плагин”, а именно “ru.yandex.searchplugin”. Для удаления этого приложения введите следующее:
adb shell pm uninstall -k --user 0 ru.yandex.searchplugin

Должно появиться сообщение об успешном удалении. Таким образом, командой “adb shell pm uninstall -k --user 0” можно удалить любое приложение, не важно, насколько “намертво” оно вшито.

Обратите внимание на параметр “--user 0”. Как было сказано выше, Android, как и любая другая ОС на ядре Linux - многопользовательская система. Вряд ли вы практикуете коммунизм со своими гаджетами, поэтому скорее всего у вас один реальный пользователь в смартфоне. Он же номер “0”. Вышеприведённой командой мы убили приложение для конкретного пользователя. В системе оно осталось, но никак не задействовано. Это не то же самое, что “выключено”. Для текущего пользователя оно больше не существует. В Google Play мы не видим предложения “удалить обновления”, так как приложение удалено. Если вы передумали и хотите снова поставить это приложение, то установите его через Google Play и оно встанет как нормальное приложение, перестав быть “системным”. Но если вы всё же снесли что-то, что удалять не следовало (например, сам Google Play), и гаджет ещё не умер, то приложение можно восстановить. Воспользовавшись тем, что у нас есть “бэкап”, на примере того же Яндекса вводим следующее:
adb shell cmd package install-existing ru.yandex.searchplugin

Это вернёт удалённое приложение. Для поиска конкретного приложения используйте опцию “grep”. Пример:
adb shell pm list packages | grep facebook

Данная команда покажет всё, что связано с Facebook. С Facebook вообще интересно в ряде случаев, так как вшитое приложение имеет собственный установщик, способный, судя по всему, обходить Google Play при скачивании других прелестей от Facebook, например при установке мессенджера, инициированной из основного приложения Facebook. Всё это безболезненно можно удалить.

Обратите внимание, что здесь мы используем “adb shell”. Это подразумевает то, что само устройство у нас подключено и работает. Но есть так же “fastboot”. Эту команду можно использовать, когда устройство не совсем “кирпич”, но уже почти присмерти.
fastboot devices
fastboot reboot

Первая команда покажет список устройств, вторая сделает попытку устройство перезагрузить и так далее... Это отдельная тема и имеет нюансы для разных устройств.

И так, из всего вышесказанного можно понять, что для удаления мусора root-доступ не нужен. Но удалять что-либо нужно с пониманием процесса и с осторожностью. Например, я знаю, что теоретически с устройств от Samsung можно удалить их фирменный One UI, предварительно установив другой Launcher, но на сколько это безопасно? Версия One UI указана в списке “основного” ПО в описании прошивки. При следующем системном обновлении могут возникнуть неприятности.

В нормальных устройствах на Android существует два типа обновлений: Обновления приложений через Google Play или другой магазин, а также системные обновления. Патчи безопасности ядра, заплатки на известные эксплойты других системных компонентов и прочее. Если у вас дешёвый китайский смартфон, который никогда не видел и не увидит системных обновлений, то с него можно относительно безболезненно удалить практически всё, заменив это аналогами из Google Play. Но если разработчик вашего устройства периодически выпускает системные обновления, то слишком “вычищенная” система может сильно усложнить процесс обновления, или вовсе привести к тому, что обновления устанавливаться не будут.

Как и во всём другом, что связано с гаджетами и компьютерами, осторожность и внимательность поможет вам избежать непредвиденных финансовых расходов и прочих неприятностей.
Like Dislike

___
Tatyana K.



Tags: Android, Linux


 
  • Creative Commons Licence
  • Norton Safeweb
  • Powered by MariaDB
  • Powered by Debian
  • Website Uptime Monitoring By ServiceUptime.com
  • Yandex.Metrika