Перейти к содержанию

# PMX FAQ

### Зачем мне нужно использовать PMX?

Потому что:

- PMX предоставляет все доступные разрешения информация и управления на одном экране, чтобы вы могли всесторонне и удобно их просматривать.
- На платформе Android нет официального инструмента, чтобы сменить AppOps. Только подмножество manifest разрешений подвергаются воздействию на пользователя в настройках разрешений. PMX раскрывает все разрешения в сырой форме. Связанный: Manifest разрешения и AppOps.
- PMX позволяет вам легко отслеживать любые нежелательные изменения в разрешениях.
- Управление устройством PMX позволяет сохранить ресурсы устройства, такие как заряд батареи и пропускную способность сети, и защитить свою приватность. Вы не всегда остались на милость приложения и ROM разработчиков. Прочитай эту статью, чтобы понять, о чем идет речь.
- PMX может отслеживать изменения прав в реальном времени, откатить их автоматически при остановке использования приложения. Или он может выполнять запланированное сканирование разрешений. Так что вам не нужно что-то запоминать.
- PMX упрощает для вас резервное копирование и восстановление прав состояния установленных приложений, чтобы вам не приходилось снова и снова настраивать разрешения приложения.

Пожалуйста, посмотрите Что такое PMX?

### Почему PMX требует root доступ или ADB?

Android намеренно запрещает приложениям изменять права доступа других приложений manifest или AppOps (и во многих случаях изменять права отдельных пользователей). Эти меры безопасности платформы защищают конфиденциальность пользователей и целостность системы.

Для выполнения действий, требующих повышенных привилегий, PMX использует небольшой, отдельный привилегированный помощник, вместо того, чтобы пытаться сделать все из обычного процесса приложения. По умолчанию этот помощник запускается под ADB UID (`2000`) при запуске через ADB, или под идентификатором системы (`1000`) на устройствах с правами root. Если у вас есть рут-устройство, вы можете изменить UID помощника в Дополнительные настройки.

### Мое устройство без root. Как я могу использовать PMX?

Используйте PMX с ADB. Пожалуйста, прочитайте заметку в начале. На некоторых устройствах могут быть некоторые ограничения.

### Почему PMX не запускает и не работает на последней версии Android?

PMX опирается на скрытые API Android или не SDK интерфейсы, которые не документированы (на разработчиках Android) в отличие от стандартных API. Так что с каждым новым релизом Android, мы должны пройти через исходный код Android, чтобы выяснить, какие API были нарушены (изменены или удалены).

Кроме того, требуется время на исправление испорченных API, иногда недели, иногда месяцы. И не гарантированно, что мы всегда сможем исправить испорченные API. Иногда Google специально делает так, что нам сложно или вообще невозможно продолжать использовать скрытые API.

Поэтому мы не можем немедленно заставить PMX работать над каждым новым релизом Android (особенно в бета-фазе) до тех пор, пока окончательный исходный код AOSP публично не будет выпущен (по Code Search или Git Repository).

Окончательная поддерживаемая PMXверсия описана в описании приложения на GitHub и Play Store. Когда вы запускаете приложение на неподдерживаемой версии в первый раз, оно показывает предупреждение:

### Почему PMX неправильно работает на OEM операционных системах или пользовательских ROMs?

PMX опирается на скрытые API Android или не SDK интерфейсы, которые не документированы (на разработчиках Android) в отличие от стандартных API. Поэтому нам нужен доступ к исходному коду вашего ROM , чтобы точно знать, как работают скрытые API.

Что ж, AOSP (разработанный Google) является открытым исходным кодом. Но если ваш OEM или ROM делает некоторые изменения в AOSP для целей настройки, мы не знаем точно, какие изменения они внесли в стандартный код AOSP. Мы здесь беспомощны. И этот факт описан в описании приложения на GitHub и Play Store. Извините.

### Как PMX изменяет права на другие приложения?

Сам PMX не может и не может предоставить или отозвать разрешения других приложений. Фактически, ни одно стороннее приложение не имеет права сделать это. Это ОС Android, которая управляет разрешениями приложений. PMX просто отправляет запрос на Android фреймворк для изменения состояния разрешения. Теперь все зависит от ОС Android, насколько она выполнит наш запрос. Не все разрешения изменяются. И если вы не можете изменить состояние разрешения с помощью PMX, вы также не сможете изменить его каким-либо образом.

### Разрешения остаются измененными после отключения ADB , либо права пользователя root запрещены, либо PMX удаляется?

Сам PMX не может и не может предоставить или отозвать разрешения других приложений. Фактически, ни одно стороннее приложение не имеет права сделать это. Это ОС Android, которая управляет разрешениями приложений. PMX просто отправляет запрос на Android фреймворк для изменения состояния разрешения.

Так что, как только разрешение изменится, уже не имеет значения, удалишь ли ты PMX или откажешься от его привилегий. Разрешение останется в любом состоянии, если оно снова не будет изменено вами или операционной системой.

### Почему я не могу изменить разрешение XYZ?

Разрешения манифеста только с опасным уровнем защиты (и несколькими другими) могут быть изменены. AppOps не зависит от каких-то других AppOp могут меняться. Так работает Android, мы не можем изменить его поведение. См. Manifest разрешения и AppOps.

Кроме того, PMX защищает некоторые критические каркасные приложения и разрешения; изменение их может привести к брику устройства. См. Связанный вопрос.

Также посмотрите Почему некоторые AppOps не могут быть изменены?

Обрати внимание, что начиная с Android 15, разрешения manifest системных приложений с уровнем защиты Разработка нельзя отменить. Android беззвучно игнорирует запрос.

### Я изменил разрешение, но это не работает. Почему?

Если вы не получаете желаемых результатов после успешного изменения разрешения, т.е. состояние разрешения возвращается сразу или через несколько часов или дней, в этой ситуации виновата операционная система Android. Пожалуйста, посмотрите:

- Как PMX изменяет права доступа других приложений?
- Почему некоторые AppOps не могут быть изменены?

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

### Почему некоторые AppOps не могут быть изменены?

Иногда вы видите "AppOp режим не изменен". Это означает, что Android отклонил запрос на изменение режима AppOp. Вы не можете изменить это независимо от того, какой метод или приложение вы используете. Может быть несколько возможных причин.

- Некоторые AppOps зависят от их соответствующих разрешений manifest. Поэтому они не могут быть изменены самостоятельно. Например, вы не можете отклонить `READ_CONTACTS` AppOp , если предоставлено разрешение `android.permission.READ_CONTACTS` manifest.

  Также если приложение не запрашивает разрешение manifest в файле manifest , его разрешение AppOp также не может быть предоставлено. Но он все еще может появиться в списке разрешений приложения, если приложение попыталось его использовать (и получило отклонение). `SYSTEM_ALERT_WINDOW` — это один из таких примеров.

- Некоторые AppOps используются только для совместимости (например, `LEGACY_STORAGE`) и на самом деле они ничего не контролируют. Если мы исследуем их основную работу, выяснится, что предоставление/отмена таких разрешений не имеет смысла.

- Некоторые разрешения невозможно изменить, если приложение работает на более старой или новой версии Android или предназначено для нее.

- Некоторые OEM ROMs ведут себя странно, когда дело доходит до AppOps. См. Почему PMX не работает правильно на OEM операционных системах или пользовательских ROMs?

- Многие AppOps могут иметь 2 режима: режим пакетов и режим UID. Вполне возможно, что одно можно изменить, а другое нельзя.

  Обычно UID AppOps имеет приоритет над своими аналогами пакета AppOp. В этом случае эффективный режим AppOp такой же, как у пакета UID AppOps. Так что ты не можешь изменить только пакет AppOp .

  Некоторые AppOps предпочитают установить в режиме пакета, а не в режиме UID. Но если он неправильно установлен в UID режиме (с помощью инструмента командной строки или другим приложением), он становится не отвечающим изменениям. Нажми «Сбросить AppOps» в правом верхнем углу, чтобы всё снова заработало. Это также случай с другими AppOps , которые имеют соответствующее разрешение manifest на AppOp уровень защиты.

На самом деле, если мы исследуем каждое приложение и разрешение по отдельности, то мы получим еще много объяснений (что звучит непрактично). Как уже говорилось выше, PMX самостоятельно не меняет права других приложений. Таким образом, даже если по какой-то неизвестной причине Android не меняет разрешение или сразу же возвращает его обратно, мы ничего не можем сделать, чтобы заставить его, потому что это ограничения со стороны Android. Скорее всего, я должен сказать, что именно так работает Android.

Также:

- Что такое AppOp режимы и какие я должен использовать?
- Почему я не могу установить режим AppOp на передний план?

### Почему в списке пакетов я не вижу приложение XYZ?

Пожалуйста, проверьте Исключительные фильтры. По умолчанию практически все стандартные Android приложения исключены. Вы можете исключить/включить любой пакет, который хотите из/в списке видимых.

### Почему я не вижу разрешение XYZ в пакете ABC?

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

### Почему я не вижу XYZ AppOp в пакете ABC?

Пожалуйста, проверьте Фильтры исключений, если XYZ AppOp исключена из видимого списка. Или же пакет ABC может не использовать операцию XYZ. Вам не нужно беспокоиться об этом.

Но если вы хотите увидеть XYZ AppOp для всех приложений, перейдите в Exclusion Filters → Extra AppOps, никогда не исключают и проверьте в списке XYZ AppOp.

Например, Напишите `_CLIPBOARD` в поле поиска (с Глубоким поиском отмечено), и вы получите все приложения, которые использовались (или пытались использовать) `READ_CLIPBOARD` или `WRITE_CLIPBOARD` разрешение. Временная метка также показана (но не для всех AppOps).

So if the app you are concerned about isn't in the search results, check both AppOps in the Exclusion Filters list mentioned above.

### Что мне следует выбрать для UID привилегированного демона в расширенных настройках? Система или ADB?

Это важно, только если вы используете root, или `adbd` на вашем устройстве запущен с правами root (это не так, как в конечных устройствах пользователя).

Предпочтительно используйте System (UID `1000`), так как это позволяет больше привилегий, чем ADB (UID `2000`). Например, Изменить права доступа «System-Fixed» можно только, если ты запущен как система.

### Что такое «недопустимые права» в Фильтрах исключений?

Если приложение запрашивает разрешение manifest , но оно не объявлено (предоставлено) фреймворком Android или любым из установленных пакетов, это неверное разрешение. Например, `com.android.vending.BILLING` является недопустимым разрешением, если приложение Play Store не установлено на вашем устройстве.

### Что такое "дополнительный AppOps" в Фильтрах Исключений?

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

### Что такое AppOp режимы и какие я должен использовать?

Обычно вы должны разрешать или Игнорировать. Или вы можете разрешить операцию только тогда, когда приложение находится в Foreground (только на Android 9 и выше). Deny — интенсивная версия игнорирования, которая может вызвать сбой запрашиваемого приложения. По умолчанию это поведение системы по умолчанию, которое отличается от других AppOps.

Обрати внимание, что не каждый режим AppOp можно включить на каждом AppOp для каждого приложения. Например, в последних версиях Android можно использовать `CAMERA` и `MICROPHONE` только в Передний план режиме (даже если выбран режим Разрешить). Аналогичным образом, некоторые AppOps никогда не могут быть установлены в Foreground.

Связанный: Почему некоторые AppOps не могут быть изменены?

Официальная документация: AppOpsManager.

### В чем разница между режимами "Ignore" и "Deny" AppOp?

Ignore Молчально не удается, пока Deny возвращает ошибку в приложении, к которой приложение может не ожидать и может произойти сбой. Вы обычно используете Ignore.

### Почему я не могу установить режим AppOp на передний план?

Режим переднего плана не может быть установлен для всех AppOps. Даже когда он установлен, он может не дать ожидаемых результатов.

Также:

- Что такое AppOp режимы и какие я должен использовать?
- Почему некоторые AppOps не могут быть изменены?

Пожалуйста, обратите внимание, что режим разрешений "Разрешить только при использовании приложения" не устанавливает режим AppOp в "Foreground":

Обычно мы видим только два штата для разрешения manifest : предоставлено и отозвано. Но Android использует flags для разделения этих двух состояний на многие субсостояния. Для некоторых разрешений тот же феномен используется для достижения поведения «предоставлять только тогда, когда приложение видимо». В этом случае разрешение AppOp не используется.

Дополнительную информацию см. в официальной документации фоновый доступ и foreground access.

Для простоты PMX в данный момент не видит флаги разрешений. Но в будущем может быть добавлена возможность также отслеживать изменения флагов разрешений, даже если предоставленный/отозванный режим остается неизменным.

### What does `WAKE_LOCK` permission do?

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

### Как я могу изменить разрешение `INTERNET`?

Андроид не позволяет изменять все разрешения, такие как у Нормального уровня защиты (e. . `INTERNET`) или с флагом Fixed или Подпись уровня защиты (обычно системные или фреймворки). См. Manifest разрешения и AppOps.

Но если вы корневые, Fyrypt дает вам очень сильный контроль над сетевой активностью на вашем устройстве.

### Что такое Фиксированные разрешения?

Разрешения, которые закреплены системой, предоставляются предустановленным приложениям производителями или разработчиками ROM . Они не предназначены для изменения. But if your device is rooted, PMX can change system-fixed permissions.

Установленные политики разрешения предоставляются (или отклоняются) ИТ-администраторами на управляемых устройствах. Их невозможно изменить.

User-fixed permissions are fixed by the user. Если пользователь отказывает в разрешении несколько раз, когда приложение запрашивает его, операционная система помечает разрешение как пользователь-фиксированное и больше не показывает пользователю запросов на предоставление разрешения, если приложение снова запрашивает такое же разрешение. Этот вид фиксированных разрешений может быть легко изменен при желании пользователя.

### Как я могу изменить разрешения на фиксированные системы доступа, подписание/привилегии или разрешения рамочных приложений?

Если ваше устройство имеет рут-доступ, в платной версии вы можете Разрешить критические изменения в Дополнительные настройки для изменения прав с помощью флага Исправленная система, уровень защиты Подпись или Привилегированный, или каркасное приложение. Но не рекомендуется "играть" с системными или фреймворк приложениями. Вы можете "окирпичить" устройство.

### Что такое "UID режим" в разрешениях AppOp?

Это режим разрешения AppOp , который указывает, что изменение этого AppOp также повлияет на другие приложения (с тем же UID), если установлено. См. `sharedUserId`.

Заметьте, что режим UID имеет приоритет над режимом пакетов для многих AppOps.

### Можно ли управлять функцией Android «Удалить разрешения, если приложение не используется» из PMX?

Да. Эта функция доступна с Android 11. Также он обозначается как "Пауза активности приложения, если не используется" на некоторых устройствах.

Чтобы изменить эту опцию от PMX:

1. Перейдите в Исключающие фильтры → Дополнительный список AppOps и проверьте `AUTO_REVOKE_PERMISSIONS_IF_UNUSED`.
2. Назад на главном экране наберите `AUTO_REVOKE_PERMISSIONS_IF_UNUSED` в верхней строке поиска. Убедитесь, что в настройках поиска включена опция "Глубокий поиск".
3. Установил режим Разрешить или Игнорировать для тех приложений, которые вы хотите.

Вы также можете использовать Вид разрешения или Групповые операции вместо шага 2 и 3. Вот руководство, как вы могли бы сделать это с помощью Batch Operations:

Remove permissions if app isn't used

### Почему у меня есть много всплывающих окон "Bad ROM"?

OEM-производители вносят огромные изменения в стандартный код AOSP (разработанный Google). Таким образом, фреймворк AppOps на некоторых пользовательских / OEM ROMs возвращает неожиданные результаты, которые PMX не понимают. Вы можете игнорировать эти всплывающие окна, но это означает, что функциональность несколько ограничена.

Вы можете выключить эти всплывающие окна в Настройка → Общие настройки → Отключить плохие ROM toasts.

См. Почему PMX не работает правильно на OEM операционных системах или пользовательских ROMs?

### Что делает кнопка «Скрыть приложение из списка» (вызывается долгим нажатием)?

Они оба просто скрывают приложение или разрешение из видимого списка. Если вы не хотите изменять разрешение для любого приложения, вы можете просто «Исключить» его. И он не появится ни для одного приложения. Чтобы снова его показать, зайди в настройки Фильтры исключений.

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

### Есть ли полный список всех разрешений с пояснениями?

Нет полного списка разрешений с описанием, по крайней мере, насколько мне известно. Версия PMX Pro показывает краткое описание общих разрешений manifest и AppOp.

Есть сторонние ресурсы, такие как этой от Izzy. Официальный сайт разработчиков Android и исходный код тоже классные источники для обучения.

С каждой новой версией Android добавляются новые разрешения, а некоторые устаревают. Кроме того, не все разрешения необходимы каждому пользователю.

### Как использовать приложение в рабочем профиле/многопользовательской среде?

Pro версия поддерживает рабочие профили и несколько пользователей. Выберите пользователя из выпадающего меню.

### Как PMX сравнивает с XPrivacyLua? Могут ли они заменить друг друга?

PMX не предназначен для замены, а дополняющих проекты типа XPrivacyLua. Они имеют различные цели.

XPrivacyLua взломает стандартную функциональность Android, подключившись к внутренним API, используя Xposed , который заменяет некоторые библиотеки Android на взломанные. Таким образом, мы получаем дополнительные функции, такие как отправка поддельных данных в приложения и уведомления о событиях, связанных с разрешениями, о которых мы не можем узнать никакими другими обычными способами.

PMX с другой стороны, не задумывался как модуль фреймворка. Оно обеспечивает удобный доступ к нескольким привилегированным API, которые не могут использовать обычные приложения. Это ни в коем случае не взлом стандартных функций Android. Большинство задач PMX выполняется также из командной строки, за исключением нескольких таких как изменение фиксированных системных разрешений.

Корень и Xposed являются двумя строгими требованиями для использования XPrivacyLua. PMX в основном не требует ни того, ни другого. Оба эти устройства не доступны для многих устройств или многие пользователи не считают их вариантом из-за технических трудностей, связанных с этим, Гарантийный нотариус, отказ SafetyNet и другие вопросы.

Больше объяснений here и here.

### Может ли PMX автоматически удалять разрешения, когда приложение закрывается, как это делает Bouncer?

Да. См. Наблюдатель прав и Проверить расписание. Но функция Доступности для Android не используется для нажатия / кликов на экран от имени пользователя (хотя это хорошая функция без необходимости дополнительной настройки). PMX полагается на привилегии root или ADB. Таким образом, он может сделать намного больше (см. Что такое PMX?) чем то, что может быть сделано с помощью функций Специальные возможности.

Если вы используете ADB, а не root, Permission Watcher может не работать на некоторых устройствах. См. Ограничения для ADB.

### Могу ли я получать уведомления о установке нового приложения?

Да. Смотрите Наблюдатель Разрешений.

Начиная с Android 8, фоновые (не работающие) приложения не могут получать уведомления об установке нового приложения. Поэтому мы должны запустить службу переднего плана (с постоянным уведомлением), чтобы получить это уведомление. Или вы можете использовать Запланированная проверка чтобы сохранить вещи на месте.

### Когда установлено новое приложение, может ли PMX сбросить свои разрешения по умолчанию?

Да. Но нет разрешения на сброс. Все аннулируемые manifest разрешения уже отозваны и остаются отозваны, если пользователь не предоставит им явно. Что касается AppOps , то многие из них не появляются хотя бы раз и после их использования приложением, например `VIBRATE` и `READ_CLIPBOARD`. Many others (e.g. `READ_CONTACTS`) have their corresponding manifest permissions already dropped, as pointed out. Так что на момент установки приложения не прогнозируется, что AppOps следует удалить.

Но уведомление отображается при установке нового приложения (если используется Permission Watcher), чтобы пользователь мог установить разрешения по одному или применить профиль.

### Почему PMX требует ИНТЕРНЕТ разрешения?

standalone Pro версия требует подключение к Интернету для проверки лицензии. Другие versions могут работать полностью оффлайн. Хотя приложению Play Маркет для проверки лицензии требуется подключение к Интернету.

#### Необязательное использование `android.permission.INTERNET` разрешения

- Проверка обновления приложения. Вы можете отключить это в настройках.

#### Локальное (на устройстве) использование `android.permission.INTERNET` разрешения

Android не разрешает приложениям создавать сетевые сокеты без разрешения `INTERNET`, даже если они предназначены только локально и не для подключения к Интернету. PMX использует два локальных (на устройстве) соединения (возможность создания `localhost` сокетов в `127.0.0.1`) для коммуникации между процессами (IPC):

- PMX запускает фоновый процесс с привилегиями root / ADB и разговаривает с этим процессом через сетевой сокет. После первоначального "рукопожатия" оба процесса начинают обмен данными через binder. У нас нет лучшего способа сделать это, потому что Android также не позволяет приложениям общаться через сокеты домена UNIX.
- Если твое устройство не рутировано и ты используешь PMX с ADB, то для подключения к `adbd` нужны разрешения на доступ к Интернету. См. PMX шпионил за мной с помощью ADB по сети?

Поэтому, если приложение не может создавать или использовать сокеты локальной сети, оно не будет работать. И если ты хочешь запретить приложению PMX использовать интернет, оно не должно блокировать взаимодействие приложения с процессами на устройстве через интерфейс обратной связи для IPC. Как правило, это относится к таким брандмауэрам на основе `iptables`как Fyrypt и брандмауэрам на основе VPN, как NetGuard. Но некоторые ROMs имеют встроенную функцию для запрещения доступа к сети:

Это не только запрещает приложению использовать Интернет, но и отключает его возможность создавать петлевые (loopback) сокеты для IPC. Таким образом, PMX не сможет получить привилегии root / ADB , если этому разрешению будет отказано.

### Сколько PMX поддерживает конфиденциальность? Собираете ли вы данные пользователя?

Нет. Мы не собираем ваши данные. Никогда. Даже не один байт. PMX есть версия с открытым исходным кодом. Мы верим, что наши пользователи хорошо осведомлены о том, почему они используют PMX. Мы уважаем вашу конфиденциальность, поэтому никакие данные не собираются, даже логи сбоев. Вы также можете посмотреть нашу Политику конфиденциальности.

### PMX шпионил за мной с помощью ADB по сети?

Нет.

PMX общается с процессом `adbd` через localhost (`127.0.0.1`). Но невозможно запустить `adbd` только для localhsot, а не на других сетевых интерфейсах (потому что ADB предназначен для использования с ПК). Ты можешь легко запретить `adbd` слушать с внешних IP-адресов, если у тебя есть такая возможность. PMX по-прежнему будет работать, без каких бы то ни было внешних портов.

Также вы можете изменить порт `5555` на любой номер в разделе Дополнительные настройки. Это не жестко запрограммировано.

Также ADB с Android 4.2 должен быть защищен RSA ключом аутентификации (одним из самых сильных механизмов аутентификации). Таким образом, даже если устройство доступно из интернета (что в высшей степени unlikely), никто не может сделать ADB соединение без аутентификации.

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

### PMX использует ли не по назначению права root для сбора моих данных?

Мы верим в принцип наименьшей привилегии. Но из-за ограниченного характера операционной системы Android, PMX не может функционировать без высоких привилегий. Что мы можем предложить, так это то, что если вы технически подкованный человек, мы можем научить вас, как затруднить подключение приложений к Интернету, даже с root правами.

### Я думаю, PMX бесполезен. Зачем было создано это приложение?

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