5 февраля 2018

Root или не root, вот в чем вопрос

Привет. Не так давно Илья Субботин опубликовал статью «Беседка №173. «Рут» — в прошлом«, которая вызвала споры в комментариях. Все комментаторы разделились на два основных лагеря. Одни считают, что root необходим, другие говорили, что либо не видят и не видели в нем необходимости, либо уже наигрались с этим.

Основным аргументом приверженцев root стала необходимость удаления «лишнего» предустановленного софта от производителя, а также блокировка рекламы.

И если в вопросах блокировки рекламы без root всё еще сложно обойтись (наличие софта, который блокирует рекламу и без наличия root, – это компромисс, сопряженный с повышенным расходом батареи за счет постоянно висящего в фоне приложения), то удаление системных приложений без root не является проблемой. По крайней мере, на аппаратах Samsung.

В моем случае это еще актуальнее, так как я использую преимущественно американские версии аппаратов, на которых много операторского хлама, который необходимо удалить.

Итак, для решения вопроса с лишними системными приложениями без root я использую три основных способа.

Первый способ – это установка специального приложения для заморозки системных приложений. Это приложение периодически исчезает из Play Market, но так же внезапно появляется. Называется оно Package Disabler Pro, или BK Disabler.

Приложение требует лицензии, которая стоит денег. Однако цена весьма доступная, что-то около 150-200 руб., поэтому один раз заплатить, а потом не знать проблем – самый простой вариант.

После запуска приложение попросит права администратора, а также предложит докачать плагин. Необходимо это сделать. После этого можно начинать морозить лишний софт.

BK Disabler позволяет не только замораживать сами приложения, останавливая их, но и замораживать определенные сервисы в самом приложении.

На примере «Сбербанк онлайн» можно кликнуть на приложение, а в открывшемся меню выбрать пункт «Services», найти среди сервисов SdkService и отключить его. Приложение останется полностью функциональным, однако не будет проявлять активности в фоне, а значит, не будет подъедать батарею.

Кроме установки дисаблера из PlayMarket, существует возможность установки его через ADB, после чего приложение тоже прописывается как системное и получает такой же функционал, как и при установке через PlayMarket. Так как это не совсем официальный метод, не буду расписывать тут инструкцию. Знаменитый форум 4pda в помощь.

Но, кроме программ-дисаблеров, есть еще один неочевидный для большинства пользователей способ, описанный завсегдатаями портала XDA-Developers, – удаление приложений через ADB.

Для этого необходимо:

  1. Скачать драйверы под свое устройство и, не подключая телефон к компьютеру, установить их. 
  2. В настройках телефона необходимо включить отладку по USB. Для этого идем в настройки, далее ищем раздел «Об устройстве» или «Сведения о телефоне», ищем строчку «Номер сборки» и семь раз тапаем по ней. После этого телефон поздравит вас с тем, что вы стали разработчиком, а в меню появится новый пункт «Параметры разработчика». Заходим туда и ищем отладку по USB. Включаем, соглашаясь с рисками. 
  3. Скачать также минимальный набор файлов, необходимых для работы консоли ADB.
  4. Разархивировать скачанный набор файлов в отдельную папку, желательно на диск C. 
  5. После этого необходимо зайти в скачанную папку ADB, зажать клавишу «Shift» и нажать правую кнопку мыши на пустом поле внутри папки. В появившемся контекстном меню выбираем «Открыть окно команд». Должна открыться консоль.
  6. Подключаем телефон к компьютеру. Дожидаемся, пока установятся драйверы.
  7. На телефоне должно появиться окно, в котором необходимо нажать «Ок». Если планируете использовать данный функционал и в будущем, можно отметить в появившемся окне «Always allow from this computer», либо может быть написано по-русски «Всегда для этого компьютера». 
  8. Если на телефоне не появилось это окно, можно вызвать его принудительно, написав в открытой консоли ADB команду либо adb shell, либо adb devices. Команды пишутся без скобок, кавычек и т.д.
  9. После этого в консоли должна появиться строка с названием вашего устройства. Скорее всего, это будет незнакомое для вас название, так как это будет внутреннее кодовое имя, используемое компанией-производителем.
  10. Если всё получилось, самое время приступать к удалению приложений. Для этого в консоли набираем команду, после которой через пробел пишем точное название приложения:

pm uninstall -k —user 0 (точное название приложения)

и нажимаем Enter.

Если всё сделали правильно, придет ответ:

Success

Если хотите удалить несколько приложений, то, не выходя из консоли ADB, повторяем последнюю команду (pm uninstall -k —user 0 ) с каждым приложением, которое необходимо удалить. Чтобы каждый раз не набирать команду, можно нажать клавишу курсора «вверх», и система подставит последнюю набранную строку. Стираем имя приложения, пишем новое и жмем Enter. И так до победного конца, которым будет либо чистая система, свободная от лишнего софта, либо циклические перезагрузки или массовые сообщения об остановке процессов. Поэтому перед удалением приложения убедитесь, что без него операционная система будет функционировать (гуглите).

Заключение

У каждого из методов есть свои плюсы и недостатки. С заморозкой можно не переживать за сохранность критически важных файлов – в случае ошибок можно просто разморозить приложение, и всё, но на телефоне будет лишнее приложение, которое всё равно будет хоть немного, но подъедать заряд. С использованием ADB есть риск удалить лишнее, после чего придется прошивать телефон. Однако все эти способы позволяют почистить систему без риска получить нерабочие платежные сервисы, которые очень не любят root. Какой из этих путей вам ближе, выбирает каждый сам для себя. Точно так же каждый сам для себя решает, нужно ли ему удалять лишние приложения. Выбор есть всегда.

Читайте также