SD Maid 2/SE
Русский

Этот перевод может быть устаревшим. Читать английскую версию

Настройка SD Maid SE

Сведения о различных шагах настройки SD Maid SE.

SD Maid подстраивается под доступный ей уровень доступа. Хотя все разрешения необязательны, если не выдать ни одного, большинство функций работать не будет. Лучше всего SD Maid работает, когда выполнены все пункты настройки.

Если доступен root или доступ ADB, SD Maid автоматически попытается выполнить некоторые шаги настройки сама.

Некоторые разрешения пересекаются или включают в себя другие, например можно выдать SD Maid и root-доступ, и доступ ADB. Для любого действия SD Maid всегда старается использовать лучший из доступных способов доступа, а если он не срабатывает, повторяет попытку со вторым по качеству способом, затем с третьим и т. д. Выдача SD Maid пересекающихся разрешений повышает надёжность.

Совет: некоторые шаги настройки ниже требуют выполнения команд ADB. Если ADB на вашем компьютере не настроен, можно воспользоваться Web ADB Helper, чтобы выполнить их прямо из браузера.

Управление хранилищем

Разрешение «Управление хранилищем» даёт широкий доступ к хранилищу.

Статистика использования

Разрешение на статистику использования даёт SD Maid доступ к размерам данных и кэша, а также к сведениям о том, работает ли приложение и когда оно использовалось в последний раз.

Доступ к хранилищу (Storage Access Framework)

SD Maid использует Android Storage Access Framework (SAF), чтобы получить доступ к дополнительным областям хранилища. SD Maid попросит выдать доступ к определённым путям, которые недоступны при одном лишь разрешении «Управление хранилищем» (Just Android Things™️).

Повторяйте, пока все пути не станут зелёными.

SAF: устранение неполадок

Для случаев, когда что-то идёт не по плану.

SAF: доступ к Android/data|obb

Выдать доступ к Android/data|obb невозможно с новыми версиями системного приложения Files («Файлы», com.google.android.documentsui) на Android 11 и Android 12. Если установленное приложение Files нацелено на Android 14 (уровень API 34) или новее, SD Maid скрывает запрос доступа SAF для этих путей (как на Android 13+).

Google Play обновляет приложение Files через службу Google Play system update («Системное обновление Google Play»). Исходное приложение «Files» (сборка для уровня API 31, например aml_doc_310851020 (310851020)), поставлявшееся с Android 12, позволяет SD Maid открыть окно выбора пути SAF для Android/Data, а последняя версия приложения «Files» (сборка для уровня API 34 или новее, например 14-10492947 (340916000)) этому мешает.

Обходной путь:

Можно удалить обновление приложения Files, а затем настроить SD Maid. Повторное обновление приложения Files не нарушит уже выданные разрешения.

или

Эту команду также можно выполнить с помощью Web ADB Helper.

adb uninstall com.google.android.documentsui

SAF: OPEN_DOCUMENT_TREE ActivityNotFoundException

Для выдачи доступа к путям через Storage Access Framework нужно приложение, в котором пользователь подтверждает пути, к которым будет выдан доступ. Это приложение «Документы» (Documents). Это системное приложение, встроенное в каждое Android-устройство начиная с Android 5.0 (com.android.documentsui или com.google.android.documentsui). Если вы получаете эту ошибку, значит, кто-то удалил или отключил это приложение. Чаще всего кто-то запустил слишком усердный инструмент для «удаления лишнего» (de-bloating), который его отключил. Его можно снова включить через ADB:

Эти команды также можно выполнить с помощью Web ADB Helper.

adb shell pm enable com.android.documentsui
or
adb shell pm enable com.google.android.documentsui

SAF: пустое окно

Если окно для выдачи доступа к путям пустое, возможно, отключён пакет поставщика внешнего хранилища (com.android.externalstorage) (скорее всего, слишком усердным инструментом для «удаления лишнего»). Его можно снова включить через ADB:

Эту команду также можно выполнить с помощью Web ADB Helper.

adb shell pm enable com.android.externalstorage

Повторный запуск Google Play system update восстановит обновление. Обновлённую версию можно также скачать вручную с APKMirror.com.

Уведомления

Без этого разрешения SD Maid не сможет показывать уведомления. На некоторых прошивках это может снизить надёжность работы в фоне.

Инвентарь

SD Maid нужно разрешение QUERY_ALL_PACKAGES, чтобы проверять, какие приложения установлены на устройстве (то есть «видимость списка установленных приложений»). См. также «Разрешение на статистику использования»

Разрешение QUERY_ALL_PACKAGES обязательно для:

Это разрешение существует начиная с Android 11 и обычно выдаётся по умолчанию. Начиная с Android 14 встречаются устройства (например, #1015, #1354), на которых это разрешение не выдаётся по умолчанию или может быть отозвано.

Неверный список приложений

На некоторых устройствах разрешение «Список приложений» (QUERY_ALL_PACKAGES / GET_INSTALLED_APPS) выдано, но система всё равно возвращает неполный список установленных приложений, например список, в котором нет основных системных пакетов вроде android. Обнаружив это, SD Maid вместо продолжения показывает в карточке настройки предупреждение «Invalid app list» («Неверный список приложений») и примечание «Возможное ограничение устройства».

SD Maid останавливается здесь намеренно: если она не видит полный список установленных приложений, она не может надёжно определить, какие файлы принадлежат ещё установленному приложению. Продолжение в такой ситуации могло бы привести к удалению данных приложения, которое SD Maid просто не смогла увидеть, поэтому функции, связанные с приложениями, остаются отключёнными, пока не станет доступен полный список.

Что можно попробовать:

Если разрешение «Список приложений» уже выдано, а список всё равно считается неверным, обычно это ограничение устройства, а не то, что можно исправить: некоторые системы (например, HarmonyOS или сильно изменённые сборки Android) никогда не передают сторонним приложениям полный список приложений. Пример см. в #2441.

В этом случае инструменты, связанные с приложениями («Мусор», «Приложения», «Менеджер»), остаются отключёнными для защиты ваших данных, но «Анализ памяти» продолжает работать: он показывает, сколько места занято в хранилище, только с меньшей детализацией: размеры папок показываются только для чтения и не могут быть отнесены к отдельным приложениям.

Служба специальных возможностей

Служба специальных возможностей позволяет SD Maid взаимодействовать с устройством как человек, то есть видеть экран и нажимать кнопки. SD Maid может использовать её для автоматизации утомительных действий, например нажатия «Очистить кэш» в сотнях приложений. Служба специальных возможностей является службой, которую приложение не может запустить само: её должна запустить система, потому что такой тип службы даёт приложению дополнительный доступ к устройству.

Служба специальных возможностей: устранение неполадок

Служба может перестать работать и потребовать повторного включения в разных ситуациях:

Служба специальных возможностей: служба отключена

Некоторые прошивки (например, MIUI) печально известны тем, что агрессивно останавливают всё, что не внесено производителем устройства в белый список. Если вас постоянно просят снова включить службу специальных возможностей, возможно, система отключает её каждый раз, когда SD Maid активно не используется.

Попробуйте отключить оптимизацию батареи, а на прошивках MIUI есть дополнительная настройка «Автозапуск» (Autostart), включите её для SD Maid. Для устройств Xiaomi/POCO/Redmi:

Можно также выдать дополнительное разрешение, которое позволит SD Maid автоматически перезапускать службу.

Служба специальных возможностей: блокировка через Phone Manager (OnePlus, OPPO, Realme)

На OxygenOS и ColorOS предустановленное приложение «Phone Manager» («Диспетчер телефона») может само отключать службу специальных возможностей, обычно в течение секунды после завершения очистки. После этого переключатель специальных возможностей Android действительно выключен, поэтому кажется, что SD Maid перестала работать посреди выполнения.

Отключите эту функцию в Phone Manager>Utilities>Block suspicious app activities («Диспетчер телефона > Утилиты > Блокировать подозрительные действия приложений»).

На том же экране ведётся список того, что было заблокировано. Записи с пометкой «Abnormal device control» («Ненормальное управление устройством») со временем, совпадающим с запущенными вами очистками, подтверждают, что причина именно в этом. Переключатель «Blocking alerts» («Оповещения о блокировке») рядом с ним управляет только тем, получаете ли вы уведомления, поэтому при выключенных оповещениях это происходит незаметно.

Служба специальных возможностей: включение через ADB

Если на устройстве нет способа включить службы специальных возможностей через экран (например, на ТВ-устройстве), службу можно включить через ADB, выполнив:

Эту команду также можно выполнить с помощью Web ADB Helper.

adb shell settings put secure enabled_accessibility_services eu.darken.sdmse/.automation.core.AutomationService

Служба специальных возможностей: автоматический перезапуск службы

Примечание: это продвинутый приём, рассчитанный на опытных пользователей.

Можно выдать дополнительное разрешение, которое позволит SD Maid самостоятельно перезапускать службу. Это разрешение называется WRITE_SECURE_SETTINGS, и выдать его можно только через ADB. Если ADB у вас настроен, выполните эту команду, чтобы выдать разрешение:

Эту команду также можно выполнить с помощью Web ADB Helper.

adb shell pm grant eu.darken.sdmse android.permission.WRITE_SECURE_SETTINGS

Когда это разрешение выдано, SD Maid может при необходимости включать службу командой, описанной здесь. SD Maid будет делать это, только если вы хотя бы раз включили службу специальных возможностей вручную. Если вы снова зайдёте в настройку и укажете SD Maid не использовать службу специальных возможностей, этот приём автоматического перезапуска не будет использоваться, пока вы снова не включите службу специальных возможностей вручную.

Чтобы снова отозвать это разрешение у SD Maid, используйте эту команду:

Эту команду также можно выполнить с помощью Web ADB Helper.

adb shell pm revoke eu.darken.sdmse android.permission.WRITE_SECURE_SETTINGS

Если вы получаете Operation not allowed: java.lang.SecurityException, см. здесь. Некоторые устройства ограничивают разрешения ADB. Проверьте, нет ли в настройках для разработчиков дополнительной настройки (например, Disable Permission Monitoring), которую нужно переключить. После выполнения команды её можно снова выключить.

Служба специальных возможностей: Advanced Protection

На Android 17 и новее режим Google Advanced Protection («Расширенная защита») не позволяет приложениям, которые не являются специализированными инструментами специальных возможностей (программы чтения с экрана, управление с помощью переключателей и т. п.), использовать службу специальных возможностей. SD Maid является инструментом для обслуживания и очистки, поэтому, пока включена расширенная защита, её службу специальных возможностей невозможно включить: Android отклоняет службу на уровне системы, даже если пытаться выдать её через root или доступ ADB.

SD Maid не может сделать для себя исключение: право на это есть только у приложений, которые Google относит к инструментам специальных возможностей, а приложения для очистки явно исключены.

У вас есть два варианта:

Служба специальных возможностей: ограничения AppOps

Android 13+ может накладывать дополнительные ограничения на приложения, установленные не из магазина (sideloading). Поэтому, если SD Maid установлена не из известного (для Google) источника, например Google Play или другого магазина приложений, вы, возможно, не сможете напрямую выдать SD Maid некоторые разрешения, например включить службу специальных возможностей.

OxygenOS 15 - OnePlus

OnePlus забыла (или просто не стала) добавить действие Allow restricted settings («Разрешить доступ к настройкам с ограниченным доступом») в настройки приложения в OxygenOS 15. Если вы устанавливаете не через Google Play, установщик должен установить флаг INSTALL_ALL_WHITELIST_RESTRICTED_PERMISSIONS. Если у вас настроен Shizuku, можно использовать приложение «Install with Options».

Другие прошивки

Чтобы снять эти ограничения, откройте в системе экран настроек приложения SD Maid. Откройте меню в правом верхнем углу и выберите Allow restricted settings («Разрешить доступ к настройкам с ограниченным доступом»), после этого можно вернуться к списку служб специальных возможностей и включить службу SD Maid.

Примечание: Для повышения удобства (это сарказм) Google решила, что эта настройка будет видна, только если:

😮‍💨

Дополнительные сведения можно найти здесь.

Рут-доступ

С root-доступом SD Maid получает полный доступ к устройству и может выполнять максимально тщательное сканирование. Обычно это означает, что вы разблокировали загрузчик и установили Magisk.

Если SD Maid считает, что на устройстве может быть root, она сначала запросит root-доступ. Если root-доступ предоставлен, SD Maid использует его, чтобы выдать себе как можно больше других разрешений. Root-доступ является наивысшим уровнем доступа, который можно дать приложению, остальные разрешения тогда нужны только для удобства и производительности, поэтому, если у SD Maid уже есть root, они не требуют дополнительного согласия во время настройки.

Доступ ADB

Доступ ADB позволяет SD Maid использовать отладочный интерфейс Android (ADB) для операций с повышенными правами. Для этого нужно отдельное приложение, которое запускает на устройстве службу ADB и даёт к ней доступ другим приложениям: Porter или Shizuku. Это модификация телефона, которой могут пользоваться и другие приложения.

Это похоже на root, но не то же самое. Разрешения немного слабее, зато модификация не постоянная и не требует разблокировки загрузчика.

Porter

Porter является поддерживаемым мной форком Shizuku с необязательной поддержкой root. На его сайте описано, как установить и запустить его. На Android 11 и новее отладка по Wi-Fi позволяет запустить его без компьютера.

Если вы настраиваете доступ ADB впервые, используйте Porter. Сборки SD Maid с GitHub и F-Droid направляют вас к Porter, если не установлено ни одно приложение для доступа ADB. Сборка из Google Play направляет к Shizuku в Google Play, но с Porter работает точно так же.

Если установлены и Porter, и Shizuku, SD Maid использует Porter. Тогда в карточке настройки написано Porter установлен, поэтому SD Maid ждёт Porter, а не Shizuku. Запустите Porter, чтобы продолжить, или удалите его, если хотите, чтобы SD Maid использовала Shizuku.

Использование Shizuku

Существует две сборки Shizuku:

Установить их одновременно нельзя. Если оригинал у вас уже работает, переходить на форк незачем.

Выдача доступа

После того как вы настроили Porter или Shizuku:

Настройка доступа ADB, если вы уже выдали SD Maid root-доступ, не включает дополнительных функций, но повышает надёжность. Если действия с root-правами не удаются, SD Maid повторит попытку с доступом ADB.

Доступ ADB: устранение неполадок

Состояние доступа ADB в SD Maid можно проверить, открыв Настройки > Установка и посмотрев на карточку настройки Доступ ADB. Там должно быть написано Теперь SD Maid может использовать доступ ADB через Porter. (или через Shizuku).

Shizuku никогда не подключается

В карточке написано Не удалось получить доступ ADB и Shizuku запущен, но не подключил SD Maid к своей вспомогательной службе. В старых версиях было написано Waiting for link with Shizuku («Ожидание связи с Shizuku») или Shizuku link failed («Не удалось связаться с Shizuku»).

Откройте приложение Shizuku. Если там написано, что он работает, а SD Maid есть в списке авторизованных приложений, значит, Shizuku настроен правильно, и повторная настройка не поможет. Сбой происходит во вспомогательной службе Shizuku: она аварийно завершается при запуске, не успев отчитаться, и SD Maid сдаётся примерно через 15 секунд. Повторить выполняет ту же проверку и завершается так же неудачно.

Это ошибка Shizuku (RikkaApps/Shizuku#1198), а не SD Maid, и она ломает любое приложение, использующее вспомогательную службу Shizuku. Она затрагивает устройства на MediaTek, а также устройства с HyperOS или MIUI.

Форк от thedjchi, по сообщениям, исправляет её. Чтобы перейти на него: