Обход ограничений Mac App Store по повышению привилегий - PullRequest
0 голосов
/ 25 января 2019

В соответствии с Руководством по проверке Mac App Store :

2.4.5 Приложения, распространяемые через Mac App Store, должны иметь в виду некоторые дополнительные требования:

(i) Они должны быть соответствующим образом помещены в «песочницу» и следовать документации по файловой системе macOS.Они также должны использовать только соответствующие API-интерфейсы macOS для изменения пользовательских данных, хранящихся в других приложениях (например, в закладках, адресной книге или записях календаря).

...

(iv) Они не могутзагрузите или установите автономные приложения, kexts, дополнительный код или ресурсы, чтобы добавить функциональность или значительно изменить приложение по сравнению с тем, что мы видим в процессе обзора.

(v) Они могут не запрашивать повышение привилегий root или использовать setuidАтрибуты.

«Песочница» уже исключает использование API, таких как AuthorizationCreate(), и в любом случае item (v) довольно понятен.

Конечно, такое приложение, как, например, Parallels ( MAS-ссылка ) не может быть закодирована, даже не прибегая к повышению привилегий.Действительно, обычное (не MAS) приложение Parallels устанавливает как минимум 3 кекста, один из которых - гипервизор, без которого я считаю, что Parallels будет абсолютно бесполезным.Таким образом, они явно нарушают эти правила.

Если разработчик хотел написать приложение, которое, как и Parallels, нуждается в повышении привилегий и совершенно бесполезно без него, как бы разработчик обошел эти ограничения?Или это просто вопрос того, насколько Apple достаточно велика, чтобы Apple закрывала на это глаза во время процесса проверки?Можете ли вы запросить исключение для Apple?

1 Ответ

0 голосов
/ 13 мая 2019

Никаких комментариев по поводу политики App Store (к сожалению), но я могу ответить на ваш вопрос о Parallels. Версия Parallels в Mac App Store не использует kext и не нуждается в этом. Платформа Hypervisor позволяет писать приложения, подобные Parallels, без необходимости получения привилегий root, а также писать и распространять пользовательский kext (который требует отдельного одобрения Apple). Среду гипервизора также можно использовать из изолированных приложений. Я считаю, что эта структура была создана специально для решения этой проблемы. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...