Содержание
- Что такое PMX?
- Разрешения манифеста и AppOps
- Целевые значения разрешений
- Список приложений
- Список разрешений
- Поиск
- Проверка по расписанию
- Отслеживание разрешений
- Просмотр разрешений
- Пакетные операции
- Интеграция с WhatsRunning
- Использование PMX с помощью ADB
- Версии PMX
- Часто задаваемые вопросы (FAQ)
- Зачем мне нужно использовать PMX?
- Почему PMX требует root или ADB доступ?
- Мое устройство без root. Как я могу использовать PMX?
- Что такое скрытые API?
- Как PMX изменяет разрешения других приложений?
- Разрешения остаются измененными после отключения ADB, отказа root или удаления PMX?
- Почему я не могу изменить разрешение XYZ?
- Я изменил разрешение, но это не работает. Почему?
- Почему некоторые AppOps нельзя изменить?
- Почему в списке пакетов я не вижу приложение XYZ?
- Почему я не вижу разрешения XYZ в пакете/приложении ABC?
- Почему я не вижу AppOps XYZ в пакете/приложении ABC?
- Что мне следует выбрать для UID привилегированного демона в расширенных настройках? Система или ADB?
- Что такое недопустимые разрешения в «Фильтрах исключений»?
- Что такое дополнительные AppOps в «Фильтрах исключений»?
- Какие существуют режимы AppOp и какие мне следует использовать?
- В чем разница между режимами AppOp Игнорировать и Запретить?
- Почему я не могу установить AppOp режим переднего плана (активный режим)?
- Что делает разрешение READ_MEDIA_AUDIO?
- Что делает разрешение WAKE_LOCK?
- Как я могу изменить разрешение INTERNET?
- Что такое Фиксированные разрешения?
- Могу ли я изменить разрешения Система-Фиксированный?
- Как я могу изменить разрешения уровня Подпись|Привилегированный?
- Как я могу изменить разрешения фреймворк приложений?
- Что такое UID режим в разрешениях AppOp?
- Могу ли я управлять функцией «Удалить разрешения, если приложение не используется» с помощью PMX?
- Почему я получаю много всплывающих окон Потенциально неподдерживаемая прошивка?
- Что делает кнопка «Скрыть приложение из списка» (вызывается долгим нажатием)?
- Почему сканирование приложений занимает так много времени?
- Есть ли полный список всех разрешений с пояснениями?
- Как использовать приложение в рабочем профиле/многопользовательской среде?
- Как я могу перевести PMX на мой язык?
- Собираетесь ли вы добавить поддержку Shizuku в PMX?
- Сравнение PMX с XPrivacyLua. Могут ли они заменить друг друга?
- Может ли PMX автоматически удалять разрешения, когда приложение закрыто, как это делает Bouncer?
- Могу ли я получать уведомления о установке нового приложения?
- Когда установлено новое приложение, может ли PMX отключить его разрешения по умолчанию?
- Почему PMX требует разрешение INTERNET?
- Насколько PMX безопасен для конфиденциальности?
- Шпионит ли PMX за мной, используя ADB по сети?
- PMX злоупотребляет root правами, для сбора моих данных?
- Я считаю, что PMX бесполезен. Зачем было создано это приложение?
- Загрузки / Скриншоты
- Рейтинг и отзывы
- Связаться с нами
Больше FAQ
Что такое PMX?
Это приложение является расширенным диспетчером разрешений, которое позволяет легко настраивать и просматривать желаемые разрешения для установленных приложений, а так же отслеживать любые нежелательные изменения. Давая контроль над вашим устройством, оно позволяет вам защитить вашу конфиденциальность и сэкономить ресурсы, такие как использование батареи.
PMX предоставляет на одном экране всю разрозненную (или недоступную по другим причинам) информацию и элементы управления, связанные с разрешениями, так что вы можете просматривать и контролировать их комплексным и удобным способом.
Используя PMX вы можете:
- Просматривать / предоставлять / отменять (отзывать) все разрешения манифеста, которые возможно или невозможно настроить с помощью настроек приложения. Список разрешений, которые нельзя настроить из графического интерфейса (GUI), очень длинный.
- Просматривать все разрешения AppOp, которые обычно не имеют графического интерфейса для настроек. Например изменение разрешений "Система-Фиксированный" возможно только при работе в варианте "Система". VIBRATE и READ_CLIPBOARD AppOp разрешения. Вы можете установить желаемый режим AppOp, например Передний план.
- Просматривать все не изменяемые разрешения, запрошенные приложением.
- Просматривать время последнего использования многих разрешений AppOp.
- Изменять разрешения уровня Система-Фиксированный, которые нельзя изменить никакими другими способами.
- Наблюдать в реальном времени за изменениями разрешений или выполнять проверки по расписанию.
- Сортировать приложения и разрешения по многим параметрам, включая дату и количество разрешений.
- Делать сложные поисковые запросы в приложениях и их разрешения.
- Размораживать/замораживать приложения.
Ознакомьтесь с README на Github и подробным описанием приложения в Play Store. Или попробуйте. По большей части это бесплатно.
Разрешения манифеста и AppOps
Ознакомтесь Что такое разрешения манифеста и AppOps?
Целевые значения разрешений
Предположим, вы потратили все воскресенье на то, чтобы настроить разрешения для более 200 установленных приложений. И:
- В следующем месяце вы обновили ваше устройство или установили новую прошивку.
- Или по какой-то причине вы удалили и переустановили несколько приложений.
- Или вы предоставили несколько разрешений по запросу приложений.
Пройдете ли вы через эту возню еще раз?
Вам это не требуется. Вы можете заставить PMX запоминать желаемые состояния разрешений. Задайте разрешение, установите его состояние ЗЕЛЕНЫМ, готово. Понадобится пара мгновений, чтобы просмотреть все установленные пакеты и выяснить, какие разрешения установлены неправильно, например произведя быстрый поиск по запросу: :КРАСНЫЙ|:ОРАНЖЕВЫЙ или !:ЗЕЛЕНЫЙ. Смотрите Поиск для получения более подробной информации.
Есть три целевых значения:
-
Оранжевый означает, что целевое значение разрешения не установлено.
-
Зелёный означает, что текущее значение соответствует целевому.
-
Красный означает, что текущее и целевое значения различаются.
Целевые значение можно удобно бэкапить и восстанавливать. После восстановления есть удобный способ установки всех разрешений в соответствии с восстановленными целевыми значениями. См. Пакетные операции.
Вы можете установить целевое значение несколькими способами:
- Долгое нажатие на разрешение и нажатие кнопки "Установить целевое значение" / "Очистить целевые значения".
- Также в правом верхнем углу экрана списка разрешений каждого приложения есть пункт меню, позволяющий установить или очистить все целевые значения.
- (Только Pro версия) Массовая установка целевых значений с помощью Пакетных операций.
- (Только Pro версия) Включите опцию "Автоустановка целевых значений" в меню Настройки -> Общие настройки. Таким образом, всякий раз, когда вы меняете состояние разрешения, оно также устанавливается как целевое значение.
Список приложений
- Цветная полоска слева — индикатор целевых значений
- Иконка приложения
- Первая строка показывает название приложения
- Вторая строка показывает имя пакета и
- UID
- Третья строка (необязательно) показывает состояние пакета: критический (фреймворк), фреймворк или системное приложение. Также, если приложение заморожено. Состояния незамороженых пользовательских приложений не отображаются.
- Последняя строка показывает количество видимых из общего количества разрешений манифеста и
-
Разрешений AppOps.
Невидимые разрешения - это те, которые исключены в Фильтре исключений.
- При сортировке по времени установки или обновления последняя строка также показывает справа дату или время.
Список разрешений
- Цветная полоска слева — индикатор целевых значений
- Разрешения манифеста показывают флаг в правом верхнем углу
- Значок разрешения
- Первая строка показывает имя разрешения
- Вторая строка показывает уровень защиты разрешений: нормальный, опасный, подпись, разработка, привилегированный, фиксированный, AppOps или неизвестно. Также, если это AppOp по пакету или по UID. И если это дополнительный AppOp (никогда не исключается в настройках фильтра).
- Третья строка (в случае с AppOp) показывает время последнего доступа
- Четвертая строка (в случае с AppOp) показывает целевое значение, если оно не совпадает с текущим.
- Переключатель для изменения состояния разрешения
- Текущее состояние (в случае AppOp)
- По умолчанию означает, что состояние AppOp никогда не было изменено
Поиск
Обычно название пакета, имя и UID ищутся из списка видимых.
При глубоком поиске запрашиваются имена разрешений и другие параметры.
Обратите внимание, что фильтры исключения работают также и при поиске.
Вы можете использовать в поиске следующие специальные ключевые слова:
-
Состояние приложения:
:Критический :Фреймворк :Система :Пользователь :Заморожено
-
Целевые значения:
:ОРАНЖЕВЫЙ :ЗЕЛЕНЫЙ :КРАСНЫЙ
-
Уровень защиты разрешений:
:Нормальный :Опасный :Подпись :Внутренний :Разработка :Привилегированный :Фиксированный :AppOps :Неизвестный
-
По UID AppOps:
:UID
-
AppOps с последним временем доступа:
:ВРЕМЯ
-
Дополнительные AppOps (никогда не исключаются в настройках фильтра):
:ДОПОЛНИТЕЛЬНЫЙ
-
Операторы & (И), | (ИЛИ) and ! (НЕ):
Foo|Bar&Baz
Foo&!Bar&!Baz
Платная версия также показывает подсказки поиска (если задано в предпочтениях) для облегчения процесса поиска.
Проверка по расписанию (только Pro версия)
Вы хотите отслеживать любые нежелательные изменения разрешений во всех установленных приложениях? Проверка по расписанию может делать это для вас через регулярные интервалы (в минутах, часах или днях).
Установите целевое значение ЗЕЛЕНЫЙ, остальное сделает PMX. Если обнаружится изменение какого-либо разрешения (с состоянием КРАСНЫЙ) или установка нового приложения (с состоянием разрешений ОРАНЖЕВЫЙ), PMX напомнит вам, что что-то требует вашего внимания.
Кроме того, если установлено в настройках, "Проверка по расписанию" может автоматически отозвать предоставленные разрешения, с информационным уведомлением.
Отслеживание разрешений (только Pro версия)
Некоторые приложения не работают без предоставления определенного разрешения. Но вы хотите предоставить разрешение только на время, когда вы используете приложение, и отключить/отозвать разрешение сразу же, как вы выйдете из приложения.
Именно это и делает служба "Отслеживание разрешений". Как только вы выходите из приложения или по прошествии установленного времени, эта служба самостоятельно отменяет разрешения приложения (манифест и AppOp) или просит вас сделать это, в зависимости от сделанных вами настроек.
"Отслеживание разрешений" также уведомляет вас о необходимости настроить разрешения для вновь установленных приложений (только в профиле основного пользователя / владельца).
Примечание:
-
Отменяются только разрешения с КРАСНЫМ целевым значением, но не разрешения с состоянием ОРАНЖЕВЫЙ. Таким образом, сначала вам следует установить целевые значения. Смотрите Целевые значения разрешений.
-
Отслеживаются разрешения манифеста только с уровнем защиты опасный. Они обычно меняются. Разрешения с уровнем защиты Подпись | Разработка или разрешения с установленным флагом Система-Фиксированный не отслеживаются, хотя их можно изменить.
-
PMX отслеживает только пользовательские приложения или обычные системные приложения, но не приложения уровня фреймворк. Их изменение может привести к "окирпичиванию" устройства.
-
На некоторых устройствах "Отслеживание разрешений" может работать ненадежно для приложений второго пользователя / профиля. Рекомендуется использовать его в сочетании с функцией "Проверка по расписанию".
Почему не удаётся запустить "Отслеживание разрешений" ?
Вы используете ADB? Некоторые OEM-производители удаляют разрешение OBSERVE_GRANT_REVOKE_PERMISSIONS или SET_ACTIVITY_WATCHER из пакета Shell. Если это ваш случай, то мы сожалеем. Это то, что мы не можем устранить. На таких устройствах "Отслеживание разрешений" может работать только с root. Пожалуйста, прочитайте примечание, приведенное в начале Использование PMX с помощью ADB.
Просмотр разрешений (только Pro версия)
Просмотр разрешений показывает список всех разрешений с подсчетом того, сколько приложений используют эти разрешения.
- Имя разрешения
- Уровень защиты
- Количество приложений
- Количество предоставленных разрешений из общего количества разрешений. Последнее может быть больше, чем количество приложений, поскольку некоторые приложения могут дважды использовать разрешение AppOp (в UID режиме).
Когда вы выбираете разрешение, отображается список приложений, использующих это разрешение:
- Имя разрешения
- Описание разрешения
- Флаг, указывающий, что разрешение предоставлено
- Иконка приложения
- Название приложения
- Имя пакета
- UID приложения
При выборе приложения открывается список разрешений, в котором можно изменить состояние разрешений.
Пакетные операции (только Pro)
Профили разрешений
- Создание и редактирование профилей разрешений (шаблоны).
- Применение профиля к списку выбранных приложений.
- Выберите Профиль по умолчанию для применения к вновь установленным приложениям (если Отслеживание разрешений включено).
Операции с целевыми значениями
-
Установка разрешений
Просмотрите список выбранных приложений и установите КРАСНЫЕ разрешения ЗЕЛЕНЫМИ, установив их состояния в соответствии с целевыми значениями. Разрешения с Зелеными и Оранжевыми состояниями игнорируются.
Эта опция обычно полезна, если вы только что восстановили резервную копию и у вас много разрешений в состоянии КРАСНЫЙ.
-
Установка целевых значений
Просмотрите список выбранных приложений и установите КРАСНЫЕ и ОРАНЖЕВЫЕ разрешения ЗЕЛЕНЫМИ, установив их целевые значения в соответствии с состояниями разрешений.
Эта опция обычно полезна во время начальной установки. Вы только что установили приложение PMX и потратили несколько часов на настройку разрешений. Эта опция сделает их все ЗЕЛЕНЫМИ одним нажатием.
-
Очистка целевых значений
Очистка базы данных целевых значений разрешений. Неиспользуемые значения будут удалены.
Если имеется огромный список неиспользуемых целевых значений, очистка может улучшить загрузку списка приложений.
-
Сброс целевых значений
Сброс базы данных целевых значений разрешений. Все целевые значения будут удалены.
Не предназначено для обычного использования. Только для случаев, если вы хотите начать с нуля.
Интеграция с WhatsRunning
PMX интегрирован с WhatsRunning, так что вы можете открывать одно приложение из другого.
Таким образом, из PMX вы можете переключиться на WhatsRunning, чтобы узнать, работает ли еще приложение с ограниченными разрешениями. Если да, то в каком состоянии он находится и сколько ресурсов использует.
Точно так же из WhatsRunning вы можете переключиться на PMX, чтобы узнать, какие разрешения предоставлены работающему (или неработающему) приложению.
Это особенно полезно при анализе эффекта таких разрешений, как RUN_IN_BACKGROUND.
Использование PMX с помощью ADB
Ограничения ADB
Режим ADB не такой мощный, как root. В нашем случае, например, PMX потребуется больше времени для построения списка приложений, когда он работает с ADB.
Примечание: На некоторых OEM прошивках функциональность ADB может быть нарушена из-за отсутствия разрешений или других ограничений. Вы можете проверить текущий статус того, что может делать ADB, нажав пункт меню О приложении -> Привилегии:
К сожалению, мы не можем ничего сделать с этим. Поэтому некоторые функции доступны только на устройствах с root.
В частности, следующая информация доступна только на устройствах с root-доступом:
- Изменение разрешений Система-Фиксированный
Однако некоторые OEM-производители добавляют дополнительные настройки для управления привилегиями ADB. Например, вам нужно снять флажок "Отключить Мониторинг разрешений" на телефонах Oppo и "Разрешить предоставление разрешений" в настройках безопасности на телефонах Xiaomi. Смотрите этот вопрос для более детальной информации.
Следующие инструкции относятся к прошивкам, близким к AOSP. Кастомные прошивки могут иметь другие или отсутствующие настройки.
Android 10 и ниже
Итак, мы начинаем с того, как заставить PMX работать с ADB.
Если ваше устройство без root, вам необходимо включить ADB по сети перед использованием PMX. В некоторых устройствах есть пункты ADB по сети или Отладка по Wi-Fi, которые доступны в настройке Для разработчиков:
Если у вас нет этих настроек на вашем устройстве, необходимо один раз подключить устройство к USB-хосту, например ПК после каждой перезагрузки.
Показать экран настроек разработчика:
-
Перейдите в Настройки -> О телефоне и нажмите Номер сборки 5-7 раз.
Пункт Для разработчиков должен появиться непосредственно в разделе Настройки или в разделе Настройки -> Система, внизу.
Включение беспроводной отладки:
-
Включите Отладку по USB в настройках Для разработчиков.
-
Подключите телефон к ПК с помощью кабеля USB.
-
На ПК откройте окно терминала (или командную строку в Windows) и выполните:
adb tcpip 5555
На вашем ПК должен быть доступен исполняемый файл adb, чтобы выполнить указанную выше команду. Если его нет, то вот ссылка для загрузки.
Дополнительные шаги для верификации:
-
Отсоедините USB-кабель от устройства.
-
Подключите ваше устройство и ПК к общей сети Wi-Fi.
-
Получите IP адрес устройства (обычно в настройках WiFi или в Настройки -> О), это 192. 68.1.1.
-
Выполните на ПК:
adb connect 192.168.1.1
-
Выполните еще раз:
adb shell id -u
Терминал должен напечатать 2000 (или 0).
Подключение PMX к ADB:
-
Запустите PMX и проверьте ADB Shell в боковом выдвижном меню. Введите порт 5555 и нажмите подключение.
-
Разрешите отладку по USB при запросе.
Оставьте отладку Отладку по USB включенной.
Для получения дополнительной информации смотрите это.
Андроид 11 и выше
На Android 11 и выше можно включить беспроводную отладку/отладку по Wi-Fi без подключения к компьютеру.
-
Подключите ваше устройство к сети Wi-Fi.
-
Откройте PMX и настройку "Для разработчиков" в режиме Разделенный экран. См. инструкции выше, как открыть опции разработчика.
-
Включите Беспроводную отладку/отладку по Wi-Fi и отключите Время ожидания авторизации ADB в настройках "Для разработчиков". Последнее гарантирует, что вам не придется повторять следующие два шага (сопряжение) снова и снова.
-
Откройте Беспроводную отладку/отладку по Wi-Fi и нажмите на "Соединить устройство с кодом сопряжения". Обратите внимание на код подключения и номер порта.
-
В PMX отметьте ADB Shell в выдвижном меню, введите оба параметра в отображаемых полях и нажмите "сопряжение".
-
После успешного сопряжения пришло время подключиться. Введите новый номер порта из беспроводной отладки в отображаемом поле и нажмите "Подключить".
Теперь вы можете оставить включенной Беспроводную отладку. Или лучше отключить его и оставить включенной USB-отладку.
Если вы полностью отключите отладку в настройке "Для разработчиков", или после каждой перезагрузки, вам нужно будет повторить последний шаг.
Для получения дополнительной информации смотрите это.
Вот 1 минутное видео-руководство:
Служба подключения ADB
Если Отслеживание разрешений или Проверки по расписанию включены, PMX подключается по ADB при загрузке телефона. Но если к тому времени ADB не будет включен, PMX больше не будет пытаться подключиться к ADB, если только это не будет сделано явным образом путем открытия приложения.
Но если вы включаете ADB при загрузке автоматически, вы можете уведомить PMX, отправив следующий интент о том, что ADB был включен:
am startservice -n com.mirfatif.permissionmanagerx/.fwk.AdbConnectSvcM --ei "com.mirfatif.pmx.extra.ADB_PORT" 5555
Убедитесь, что вы используете правильное имя пакета в зависимости от версии приложения. Прочтите здесь как использовать инструмент am для запуска службы приложения.
Версии PMX
Приложение PMX доступно в двух вариантах: Платная и Бесплатная версии.
Платная версия доступна в двух вариантах: Play Маркет и Pro версии.
Платная версия публикуется в Play Маркет и Github. Бесплатная версия публикуется на GitHub, F-Droid и некоторых других источниках. Последние APK для обеих версий также размещены в Telegram канале.
В Play Маркете нет бесплатной версии.
Вы можете установить Pro версию вместе с любой другой версией на вашем устройстве. Но никакая из двух других версий не может быть установлена вместе (из-за того же имени пакета). Одну из них нужно удалить перед установкой другой.
Бесплатная версия, которая доступна в IzzySoft такая же, как и версии, публикуемые на Github и в группе Telegram. Но версия, которая доступна в официальном F-Droid репозитории имеет другую подпись. Таким образом, она не может быть установлена поверх первых двух, и наоборот.
В период между основными выпусками некоторые (beta) версии также публикуются только в Telegram группе.
Вы можете обновить платную версию до последней стабильной версии либо из Play Маркета, либо установив APK файл, размещенный в Telegram группе с -ps в имени файла. Иногда команде Google требуется до 24 часов до того, как обновление появится в Play Маркет.
Вы можете обновить Pro версию до последней, установив из Telegram канала или из Github APK файл, с -pro в имени файла.
Вы можете обновить бесплатную версию до последней стабильной версии либо с GitHub (или F-Droid; откуда бы вы его не установили), либо установив APK файл, размещенный в Telegram группе без -ps / -pro в имени файла.
Платная версия, установленная путем простого скачивания файла -ps.apk or -pro.apk из группы Telegram, не будет работать, если вы не приобрели приложение.
Когда новая версия станет доступной для обновления, приложение PMX при запуске покажет уведомление о загрузке обновления (при условии, что вы включили проверку обновлений в настройках). Приложение Play Store также показывает уведомления об обновлении в соответствии с вашими настройками.
Если вы уже скачали и установили последнюю версию из Telegram группы, вы не получите уведомление об обновлении в приложении. В Play Маркете так-же не будут отображаться доступные обновления.
Бесплатная версия является полностью свободной и с открытым исходным кодом. Исходный код доступен на GitHub. Каждый может просмотреть и загрузить код и собрать приложение. Мы уважаем конфиденциальность пользователей, так что ничего не скрыто, нет бэкдоров, трекеров, рекламы. И мы не собираем данные и информацию пользователей с помощью любых видов аналитики, профилирования или с целью продажи. Даже отправка отчёта о сбое по усмотрению пользователя, хотя и настоятельно рекомендуется.
Вы можете приобрести платную версию для пожертвования и/или использования платных функций. Другие способы сделать пожертвование доступны в бесплатной и Pro версии в разделе Пожертвовать. Разработчики могут также поддержать разработку приложения, внося свой вклад в исходный код, исправляя ошибки. Пользователи могут помочь нам улучшить приложение, тестируя бета-версии, сообщая о любых падениях или сбоях, предлагая улучшения и новые функции или переводя приложения на их родной язык.
Платные функции
Платная версия включает в себя все, что есть в бесплатной версии, а также следующие дополнительные функции, которые также перечислены в описании Play Store:
- Сортировка приложений и разрешений по различным параметрам
- Проверка разрешений по расписанию и уведомление в случае их изменений
- Отслеживание и отмена изменений разрешений
- Автоматическая отмена разрешений с КРАСНЫМИ состояниями
- Внесение изменений в критически важные приложения и разрешения
- Поддержка нескольких пользователей/рабочего профиля
- Автоматический бэкап при изменениях
- Пакетные операции (только Pro)
- Описание разрешений
- Подсказки поиска
- Настройки темы
- Просмотр разрешений
Часто задаваемые вопросы (FAQ)
Зачем мне нужно использовать PMX?
Потому что:
- PMX предоставляет на одном экране всю разрозненную (или недоступную по другим причинам) информацию и элементы управления, связанные с разрешениями, так что вы можете просматривать и контролировать их комплексным и удобным способом.
- В стандартной версии Android нет официального инструмента для изменения AppOps. Только подмножество разрешений манифеста доступны пользователю в настройках разрешений. PMX показывает все разрешения в "сыром" виде. Смотрите разрешения манифеста и AppOps.
- PMX позволяет вам отслеживать нежелательные изменения в разрешениях.
- Предоставляя контроль над вашим устройством, PMX позволяет вам экономить ресурсы устройства, такие как батарея и пропускная способность сети, а также защищать вашу конфиденциальность. Вы не полностью оставлены на милость разработчиков приложений и прошивки. Прочитайте эту статью, чтобы понять идею.
- PMX может отслеживать изменение разрешений в реальном времени, автоматически отменяя их, когда вы прекращаете использовать приложение. Или он может выполнить проверки по расписанию разрешений. Так что вам не нужно что-то запоминать.
- PMX упрощает бекап и восстановление состояния разрешений установленных приложений, чтобы вам не приходилось настраивать разрешения приложения снова и снова.
Пожалуйста, также посмотрите Что такое PMX?
Почему PMX требует root или ADB доступ?
Android не позволяет обычному пользовательскому приложению изменять разрешения манифеста или AppOp других приложений, и даже свои собственные. Без root или ADB возможно только чтение AppOps, при условии, что скрытые API не запрещены на вашем устройстве, что очень маловероятно на Android 9+.
Поэтому мы запускаем отдельный демон с высокими привилегиями для того, чтобы обойти ограничения.
По умолчанию, фоновый процесс (демон) запускается с ADB UID (2000) или (если есть root) системным UID (1000). На устройствах с ROOT UID можно изменить в Дополнительных настройках.
Мое устройство без root. Как я могу использовать PMX?
Используйте PMX с ADB. Пожалуйста, прочитайте примечание в начале страницы. На некоторых устройствах могут быть некоторые ограничения.
Что такое скрытые API?
Основной функционал PMX вращается вокруг скрытых API. Это возможности, необходимые для выполнения задач (например, предоставления/отзыва разрешений), которые могут выполняться только привилегированными системными приложениями. Таким образом, эти возможности недоступны для обычных пользовательских приложений. Но PMX использует эти возможности с помощью root или ADB. Обычно пользователь не должен беспокоиться об этом.
Если вас интересуют основные подробности, прочтите это.
Как PMX изменяет разрешения других приложений?
PMX не может и не предоставляет и не отменяет разрешения других приложений. Фактически, ни одно стороннее приложение не имеет права сделать это. Это делает ОС Android, которая контролирует разрешения приложений. PMX просто отправляет запрос в платформу Android на изменение состояния разрешения. Теперь все зависит от ОС Android, насколько она выполнит наш запрос. Не все разрешения изменяются. И если вы не можете изменить состояние разрешения используя PMX, то вы не сможете изменить его другим способом.
Разрешения остаются измененными после отключения ADB, отказа root или удаления PMX?
PMX не может и не предоставляет и не отменяет разрешения других приложений. Фактически, ни одно стороннее приложение не имеет права сделать это. Это делает ОС Android, которая контролирует разрешения приложений. PMX просто отправляет запрос в платформу Android на изменение состояния разрешения.
Таким образом, после изменения разрешения не имеет значения, удаляете ли вы PMX или отзываете его привилегии. Разрешение останется в любом состоянии, если оно снова не будет изменено вами или операционной системой.
Почему я не могу изменить разрешение XYZ?
Можно изменять разрешения манифеста только с уровнем защиты опасный (и некоторыми другими). Можно изменять только AppOps, которые не зависят от некоторых других AppOp. Так работает Android, мы не можем изменить его поведение. Смотрите разрешения манифеста и AppOps.
Кроме того, PMX защищает некоторые критически важные фреймворк приложения и разрешения, их изменение может привести к "окирпичиванию" устройства. Смотрите связанный вопрос.
Я изменил разрешение, но это не работает. Почему?
Если вы не получаете желаемых результатов после успешного изменения разрешения, т.е. состояние разрешения возвращается сразу или через несколько часов или дней, в этой ситуации виновата операционная система Android. Пожалуйста, посмотрите:
По мере того, как вы используете приложения, Android может изменять их разрешения. И, к сожалению, у нас нет способа предотвратить это. Отслеживание разрешений и Проверка по расписанию могут помочь в таких случаях.
Почему некоторые AppOps нельзя изменить?
Иногда вы видите "AppOp режим не изменен". Это значит, что Android отклонил запрос на изменение режима AppOp. Вы не можете изменить это независимо от того, какой метод или приложение вы используете. Может быть несколько возможных причин.
- Некоторые AppOps зависят от соответствующих разрешений манифеста. Некоторые AppOps зависят от соответствующих разрешений манифеста. Например, вы не сможете отклонить READ_CONTACTS AppOp, если предоставлено разрешение манифеста android.permission.READ_CONTACTS.
- Некоторые AppOps используются только для совместимости (например, LEGACY_STORAGE) и на самом деле они ничего не контролируют. Если мы исследуем их основную работу, выяснится, что предоставление/отмена таких разрешений не имеет смысла.
- Some permissions cannot be changed if the app is running on or is targeting an older or newer Android version.
- Также некоторые OEM прошивки ведут себя странно, когда дело доходит до AppOps. Мы не знаем, какие именно изменения ваш OEM-производитель внес в стандартный код AOSP. Вот почему есть заявление на Github и в Play Маркет: Приложение протестировано на стоковом Android 7-11. Некоторые прошивки с большим количеством настроек могут вести себя непредсказуемо."
- Many AppOps can have 2 modes: package mode and UID mode. It's possible that one can be changed while the other cannot be.
На самом деле, если мы исследуем каждое приложение и разрешение по отдельности, то мы получим еще много объяснений (что звучит непрактично). Как было сказано выше, PMX не меняет разрешения других приложений самостоятельно. Таким образом, даже если по какой-то неизвестной причине Android не меняет разрешение или сразу же возвращает его обратно, мы ничего не можем сделать, чтобы заставить его, потому что это ограничения со стороны Android. Скорее всего, я должен сказать, что именно так работает Android.
Также:
- Какие существуют режимы AppOp и какие мне следует использовать?
- Почему я не могу установить AppOp режим переднего плана (активный режим)?
Почему в списке пакетов я не вижу приложение XYZ?
Пожалуйста, проверьте Фильтры исключений. По умолчанию практически все стандартные Android приложения исключены. Вы можете исключить/включить любой пакет, который хотите из/в списке видимых.
Почему я не вижу разрешения XYZ в пакете/приложении ABC?
Пожалуйста, проверьте Фильтры исключений. Разрешения, которые не могут быть изменены, исключаются из списка видимых по умолчанию.
Почему я не вижу AppOps XYZ в пакете/приложении ABC?
Установите флажок Фильтры исключения, если XYZ AppOp исключен из списка видимых. Или же пакет ABC может не использовать операцию XYZ. Вам не нужно беспокоиться об этом.
Но если вы хотите видеть XYZ AppOp всех приложений, перейдите в Фильтры исключения -> Дополнительные AppOps, никогда не исключаемые и отметьте XYZ AppOp в списке.
Например, если ввести _CLIPBOARD в поле поиска (с установленным флажком Глубокий поиск), то вы получите все приложения, которые использовали (или пытались использовать) разрешение READ_CLIPBOARD или WRITE_CLIPBOARD. Также отображается метка времени (но не для всех приложений).
Поэтому, если интересующего вас приложения нет в результатах поиска, отметьте оба AppOps в списке Фильтров исключения, упомянутом выше.
Что мне следует выбрать для UID привилегированного демона в расширенных настройках? Система или ADB?
Это имеет значение только в том случае, если вы используете root или ADBD на вашем устройстве работает с root (что не относится к конечным пользовательским устройствам).
Предпочтительно использовать Система (UID 1000), поскольку это предоставляет больше привилегий, чем ADB (UID 2000). Например изменение разрешений "Система-Фиксированный" возможно только при работе в варианте "Система". .
Что такое недопустимые разрешения в «Фильтрах исключений»?
Если приложение запрашивает разрешение манифеста, но оно не объявлено (предоставлено) платформой Android или любым из установленных пакетов, это недопустимое разрешение. Например, com.android.vending.BILLING является недопустимым разрешением, если приложение Play Store не установлено на вашем устройстве.
Что такое дополнительные AppOps в «Фильтрах исключений»?
Не все AppOps используются для всех установленных приложений. Но вы можете принудительно применить AppOp к любому приложению. Выбранные дополнительные AppOps отображаются в списках разрешений всех приложений, и вы можете использовать их при настройке.
Какие существуют режимы AppOp и какие мне следует использовать?
Обычно вам следует использовать варианты Разрешить или Игнорировать. Или же вы можете разрешить операцию только тогда, когда приложение находится на переднем плане (только на андроид Pie +). Запретить это интенсивная версия Игнорировать, которая может привести к сбою запрашивающего приложения. По умолчанию это поведение системы по умолчанию, которое отличается для разных AppOps.
Пожалуйста, обратите внимание, что не каждый режим AppOp может быть установлен для каждого приложении. Например, в последних версиях Android КАМЕРА и МИКРОФОН могут использоваться пользовательскими приложениями только на переднем плане (даже если установлен режим Разрешить). Точно так же некоторые AppOps никогда не могут быть установлены в режим Передний план.
Связано: Почему некоторые AppOps не могут быть изменены?
Официальная документация: AppOpsManager.
В чем разница между режимами AppOp Игнорировать и Запретить?
Игнорировать автоматически завершается ошибкой, в то время как Запретить возвращает приложению ошибку, которую приложение может не ожидать и может дать сбой. Обычно вы должны использовать Игнорировать.
Почему я не могу установить AppOp режим переднего плана (активный режим)?
Режим переднего плана не может быть установлен для всех AppOps. Даже когда он установлен, он может не дать ожидаемых результатов.
Также:
- Какие существуют режимы AppOp и какие мне следует использовать?
- Почему некоторые AppOps нельзя изменить?
Обратите внимание, что режим разрешений «Разрешить только при использовании приложения» не всегда устанавливает для режима AppOp значение «Передний план»:
Обычно мы видим только два состояния разрешения манифеста: предоставлено и отозвано. Но Android использует флаги, чтобы разделить эти два состояния на многие подсостояния. Для некоторых разрешений тот же феномен используется для достижения поведения «предоставлять только тогда, когда приложение видимо». Разрешение AppOp не используется в этом случае.
Для получения более подробной информации смотрите официальную документацию доступ в фоне и доступ переднего плана (в активном режиме).
Для простоты PMX в данный момент не следит за флагами разрешений. Но в будущем может быть добавлена возможность также отслеживать изменения флагов разрешений, даже если предоставленный/отозванный режим остается неизменным.
Что делает разрешение READ_MEDIA_AUDIO?
READ_MEDIA_ [AUDIO | VIDEO | IMAGES] - недавнее дополнение к списку AppOps, добавленное в Android 10 (IIRC) как часть реализации Android Scoped Storage. В исходном коде указано:чтение носителя аудио типа . Проще говоря, оно контролирует доступ приложений (которые используют MediaStore) к аудиофайлам во внешнем общем хранилище.
Что делает разрешение WAKE_LOCK?
Приложения удерживают wakelock, чтобы устройство не спало, то есть не переходило в режим сна (Doze).
Как я могу изменить разрешение INTERNET?
Android не позволяет изменять все разрешения, например, с уровнем защиты Нормальный (например, ИНТЕРНЕТ) или с флагом Фиксированный или уровнем защиты Подпись (обычно это системные и фреймворк приложения). Смотрите разрешения манифеста и AppOps.
Что такое Фиксированные разрешения?
Разрешения уровня Система-Фиксированый предоставляются предустановленным приложениям производителем или разработчиками прошивки. Они не предназначены для изменения. Но если ваше устройство рутировано, PMX может изменить разрешения уровня система-фиксированный.
Policy-fixed разрешения предоставляются (или запрещаются) ИТ-администраторами на управляемых устройствах. Их невозможно изменить.
Разрешения Пользователь-Фиксированный устанавливаются пользователем. Если пользователь отказывает в разрешении несколько раз, когда приложение запрашивает его, операционная система помечает разрешение как пользователь-фиксированное и больше не показывает пользователю запросов на предоставление разрешения, если приложение снова запрашивает такое же разрешение. Этот вид фиксированных разрешений может быть легко изменен при желании пользователя.
Как я могу изменить разрешения уровня Система-Фиксированный, Подпись | Привилегированный или разрешения фреймворк приложений?
В платной версии вы можете «Разрешить критические изменения» в Расширенных настройках, чтобы вносить изменения в разрешения с пометкой Система-Фиксированный, с уровнем защиты Подпись|Привилегированный или фреймворк приложения. Но не рекомендуется "играть" с системными или фреймворк приложениями. Вы можете "окирпичить" устройство.
Что такое UID режим в разрешениях AppOp?
Это режим разрешения AppOp, который указывает, что изменение этого AppOp также повлияет на другие приложения (с тем же UID), если они установлены. Смотрите sharedUserId.
Могу ли я управлять функцией «Удалить разрешения, если приложение не используется» с помощью PMX?
Да. Эта функция доступна с Android 11. На некоторых устройствах эта функция называется «Приостановить активити приложения, если оно не используется».
Чтобы изменить этот параметр из PMX:
- Перейдите в Фильтры исключения -> Список дополнительных AppOps и отметьте AUTO_REVOKE_PERMISSIONS_IF_UNUSED.
- Вернувшись на основной экран, наберите AUTO_REVOKE_PERMISSIONS_IF_UNUSED вверху, в строке поиска. Убедитесь, что в настройках поиска включена опция "Глубокий поиск".
- Установите режим Разрешить или Игнорировать для требуемых приложений.
You can also use Permission View or Batch Operations in place of step 2 and 3.
Почему я получаю много всплывающих окон Потенциально неподдерживаемая прошивка?
OEM-производители вносят огромные изменения в стандартный код AOSP (разработанный Google). Таким образом, AppOps на некоторых кастомных или стоковых прошивках возвращает неожиданные результаты, которые PMX не может понять. Вы можете игнорировать эти всплывающие окна, но это означает, что функциональность несколько ограничена.
Что делает кнопка «Скрыть приложение из списка» (вызывается долгим нажатием)?
«Исключить» просто скрывает разрешение из списка видимых. Если вы не хотите изменять разрешение для любого приложения, вы можете просто «Исключить» его. И это разрешение не появится ни для одного приложения. Чтобы снова отобразить его, перейдите в Фильтры исключения в настройках.
Точно так же вы можете исключить приложение из списка видимых, если вас не беспокоят его разрешения.
Почему сканирование приложений занимает так много времени?
Permission Manager X получает много информации о приложениях. Туда входят название приложения, имя пакета, иконка, UID и его состояние (фреймворк, системное, пользовательское, заморожено). Для разрешений манифеста и AppOp информация включает имя разрешения, его состояние (предоставлено, отозвано, разрешить, игнорировать, запретить, передний план, по умолчанию), уровень защиты (нормальный, опасный, подпись, разработка, привилегированный, фиксированный, AppOp) и время последнего доступа AppOp. Затем значение каждого разрешения сравнивается с целевым значением и устанавливается индикатор его состояния (красный, зеленый или оранжевый). После сканирования всех разрешений у каждого приложения в общем списке отображается счётчик видимых / всех разрешений манифеста и AppOps и его статус соответствия целевым значениям.
Скорость также зависит от того, сколько мощности ЦП и какое количество ОЗУ ваше устройство оставляет для приложений. Прошивки, выделяющие больше мощности на пользовательский интерфейс (например, MIUI), работают медленнее. Также ADB обычно медленнее, чем root.
Или исключите как можно больше информации во вкладке Фильтры исключений для ускорения процесса сканирования.
Еще один способ, который может ускорить загрузку списка приложений — очистка базы данных целевых значений в Расширенных настройках.
Есть ли полный список всех разрешений с пояснениями?
Нет полного списка разрешений с описанием, по крайней мере, насколько мне известно. Версия PMX Pro показывает краткое описание общих разрешений манифеста и AppOp.
Есть сторонние ресурсы, такие как этот от Izzy. Официальный сайт разработки Андроид и исходного кода также являются хорошими источниками для обучения.
С каждой новой версией Android добавляются новые разрешения, а некоторые устаревают. Кроме того, не все разрешения необходимы каждому пользователю.
Как использовать приложение в рабочем профиле/многопользовательской среде?
Pro версия поддерживает рабочие профили и несколько пользователей. Выберите пользователя из выпадающего меню.
Как я могу перевести PMX на мой язык?
Присоединяйтесь к команде переводчиков на Crowdin. Сообщите мне, какой язык вам интересен, и я добавлю его в проект.
Основные переводчики будут отмечены добавлением их имен в приложение в разделе О программе .
Собираетесь ли вы добавить поддержку Shizuku в PMX?
Нет. Shizuku не поддерживается. Это добавляет ненужную сложность в разработку. Полагаясь на дополнительное стороннее приложение, мы теряем свободу самостоятельной разработки нашего приложения. PMX изначально поддерживает рут и ADB.
Сравнение PMX с XPrivacyLua. Могут ли они заменить друг друга?
PMX не предназначен для замены, а для дополнения таких проектов, как XPrivacyLua. Они имеют различные цели.
XPrivacyLua взламывает стандартные функции Android, подключаясь к внутренним API, используя Xposed, который заменяет некоторые библиотеки Android взломанными. Таким образом, мы получаем дополнительные функции, такие как отправка поддельных данных в приложения и уведомления о событиях, связанных с разрешениями, о которых мы не можем узнать никакими другими обычными способами.
В отличии от XPrivacyLua приложение PMX не предназначено для использования в качестве фреймворка. Оно обеспечивает удобный доступ к нескольким привилегированным API, которые не могут использовать обычные приложения. Это ни в коем случае не взлом стандартных функций Android. Большинство задач, которые выполняет PMX, также можно выполнить из командной строки, за исключением некоторых, таких как изменение разрешений Система-Фиксированный.
Наличие root и Xposed являются двумя строгими требованиями к использованию XPrivacyLua. PMX не требует ни того, ни другого, по большей части. Оба варианта ( root и Xposed) недоступны для многих устройств, или многие пользователи не рассматривают их как вариант из-за технических трудностей, аннулирования гарантии, сбоя SafetyNet и других проблем.
Вот связанная проблема.
Может ли PMX автоматически удалять разрешения, когда приложение закрыто, как это делает Bouncer?
Да. См. Отслеживание разрешений и Проверка по расписанию. Но он не использует функцию Специальные возможности Android для выполнения нажатий / кликов по экрану от имени пользователя (хотя это хорошая функция, не требующая дополнительной настройки). PMX полагается на root или ADB. Таким образом, он может делать гораздо больше (см. Что такое PMX?), чем то, что можно сделать с помощью Спец.возможностей.
Если вы используете ADB, а не root, Отслеживание разрешений может не работать на некоторых устройствах. Пожалуйста, прочитайте примечание, приведенное в начале Использование PMX с помощью ADB.
Могу ли я получать уведомления о установке нового приложения?
Да. См. Отслеживание разрешений.
Начиная с Android 8, фоновые (не работающие) приложения не могут получать уведомления об установке нового приложения. Поэтому мы должны запустить службу переднего плана (с постоянным уведомлением), чтобы получить это уведомление. Или вы можете использовать проверки по расписанию, для контроля за разрешениями приложений.
Когда установлено новое приложение, может ли PMX отключить его разрешения по умолчанию?
Да. Но отключать нечего. Все отключаемые разрешения манифеста уже отключены и остаются такими, если пользователь не предоставит их. Что касается AppOps, многие из них не появляются до тех пор, пока хотя бы один раз не будут использованы приложением, например VIBRATE и READ_CLIPBOARD. У многих других (например, READ_CONTACTS) соответствующие разрешения манифеста уже удалены, как указано. Таким образом, во время установки приложения невозможно предсказать, какие AppOps следует удалить.
Но при установке нового приложения отображается уведомление (если используется Отслеживание разрешений), поэтому пользователь может устанавливать разрешения одно за другим или применить профиль.
Почему PMX требует разрешение INTERNET?
Автономная Pro версия требует подключения к Интернету для проверки лицензии. Две другие версии — бесплатная и Pro из Play Маркет могут работать полностью в автономном режиме. Хотя приложению Play Маркет для проверки лицензии требуется подключение к Интернету.
Необязательное использование разрешения android.permission.INTERNET:
- Проверка обновления приложения. Вы можете отключить это в настройках.
- Получить содержимое справки этой веб-страницы, которую вы просматриваете в выдвижном меню-> Справка.
Локальное (на устройстве) использование разрешения android.permission.INTERNET:
Android не позволяет приложениям создавать сетевые сокеты без разрешения INTERNET, даже если они предназначены только для локального использования, а не для подключения к Интернету. PMX имеет два варианта использования локальных соединений (на устройстве) (возможность создания сокетов localhost по адресу 127.0.0.1) для межпроцессного взаимодействия (IPC):
- PMX запускает фоновый процесс с привилегиями root/ADB и общается с этим процессом через сетевой сокет. После первоначального "рукопожатия" оба процесса начинают обмен данными через binder. У нас нет лучшего способа сделать это, потому что Android также не позволяет приложениям общаться через сокеты домена UNIX.
- Если ваше устройство не имеет root-прав и вы используете PMX с ADB, то для подключения к adbd требуются разрешения интернет. Смотрите Шпионит ли РМХ за мной, используя ADB по сети?.
Поэтому, если приложение не может создавать или использовать сокеты локальной сети, оно не будет работать. И если вы хотите запретить PMX использовать Интернет, это не должно мешать приложению общаться с процессами на устройстве через loopback интерфейс для IPC. Обычно это происходит с брандмауэрами на основе iptables, такими как AFWall+, и брандмауэрами на основе VPN, такими как NetGuard. Но некоторые прошивки имеют встроенную возможность запретить доступ к сети:
Это не только запрещает приложению использовать Интернет, но и отключает его возможность создавать петлевые (loopback) сокеты для IPC. Таким образом, PMX не сможет получить привилегии root / ADB, если в этом разрешении будет отказано.
Насколько PMX безопасен для конфиденциальности?
Мы не интересуемся ни вами, ни вашим устройством. PMX является приложением с открытым кодом. Вы можете просмотреть исходный код на Github. От конечного пользователя ничего не скрывается. Мы верим в то, что наши пользователи обучены и хорошо осведомлены о том, почему они используют PMX. Мы уважаем вашу конфиденциальность, поэтому никакие данные не собираются, даже логи сбоев. Вы также можете посмотреть нашу Политику конфиденциальности.
Шпионит ли PMX за мной, используя ADB по сети?
Нет.
PMX обращается к процессу adbd через localhost (127.0.0.1). Но невозможно запустить прослушивание adbd только на localhsot, а не на других сетевых интерфейсах (потому что ADB предназначен для внешнего использования с ПК). Вы, конечно, можете остановить прослушивание adbd с внешних IP-адресов, если сможете. PMX по-прежнему будет работать без внешнего доступа к порту.
Также вы можете изменить порт 5555 на любой номер в Расширенных настройках. Это не жестко запрограммировано.
Начиная с Android 4.2, ADB должен быть защищен с помощью аутентификации с ключом RSA (один из самых надежных механизмов аутентификации). Таким образом, даже если устройство доступно из Интернета (что очень маловероятно), никто не сможет установить соединение ADB без аутентификации.
Вы можете проверить эти утверждения любым способом. Мы готовы оказать Вам техническую помощь.
PMX злоупотребляет root правами, для сбора моих данных?
Мы верим в принцип минимальных привилегий. Но из-за ограниченного характера операционной системы Android PMX не может работать без высоких привилегий. Что мы можем предложить, так это то, что если вы технически подкованный человек, мы можем научить вас, как затруднить подключение приложений к Интернету, даже с root правами.
Я считаю, что PMX бесполезен. Зачем было создано это приложение?
Вы правы. PMX не для всех (и именно поэтому приложение долгие годы не дорабатывалось и не выпускалось для широкой публики, потому что мы знали, что у нас очень небольшая аудитория). Оно только для некоторых технически подкованных людей, которые тщательно заботятся о своей конфиденциальности и контроле над устройствами. Большинство пользователей телефонов находится в руках своих OEMs и разработчиков приложений. Им не известно о том, что делается с ними и их данными. И это нормально.
Загрузки / Скриншоты
Пожалуйста, посетите Github README.
Рейтинги / Обзоры / Комментарии / Голоса / Звезды
Play Store • XDA • GitHub
У Вас есть еще вопросы?
Пожалуйста, ознакомьтесь с Больше FAQs. Или свяжитесь с нами по электронной почте или в Telegram.