Но способность выполнять огромное количество задач означает, что должны быть установлены некоторые правила, иначе все быстро превратится в хаос. Для расширения функционала мы устанавливаем приложения. ОС Android должна решить, как, когда, а иногда и почему приложение может выполнять свою работу.
Один из способов справиться с этим — разрешения приложений Android. Программы, которые хотят или должны выполнить определенное действие, не могут сделать этого, если не предоставлено разрешение. Как пользователи своих девайсов, мы имеем право регулировать, какие приложения к каким данным могут иметь доступ.
Android медленно перешел на модель, которая работает подобным образом. Начиная с Android 6, приложения могли использовать более детальные разрешения, которые мы можем выбирать, предоставлять или отклонять при каждом запуске программы. Это здорово, однако не решило всех проблем. Разрешения по прежнему были объединены во многих отношениях. Реального детального контроля нигде не видно.
Хорошим примером может служить приложение DJI Go 4. DJI создает дронов, которые позволяют использовать смартфон в качестве контроллера. Исследователи безопасности недавно высказали некоторые опасения по поводу фирменного приложения компании и опубликовали список проблем, которые потенциально могут быть использованы для утечки пользовательских личных данных. Некоторые из проблем — ошибки или методы, вызывающие вопросы. Тем не менее, особое беспокойство вызывает то, что разработчики используют SDK (комплекты для разработки программного обеспечения) таких платформ, как Facebook, Twitter или Instagram. Это значит, что приложению необходим доступ ко всем нашим фотографиям, всем нашим контактам, местоположению, к нашим SD-картам и камере с микрофоном.
Такой уровень доступа просто сумасшедший. Пользователям следует подробнее изучать каждое приложение, которому нужны все эти разрешения. С другой стороны, если вы хотите управлять своим дроном и в то же время делиться в реальном времени видео во время полета, вам понадобятся все эти разрешения. По сути, часть вины лежит на компаниях, пищущих все эти SDK. Однако, проблема остается открытой. Android объединяет слишком много разрешений, когда дело доходит до обмена данными, как внутренними, так и внешними. Чтобы поделиться фотографией с помощью приложения SMS, нужно дать разрешение приложению просматривать и читать текстовые сообщения, просмативать библиотеку фотографий, контакты, управлять камерой и многое другое. Вы не можете просто выбрать одну фотографию и отправить ее одному человеку, потому что приложению необходимо проверять ваши контакты при поиске нужного, а затем получить доступ к самой фотографии и вставить в приложение, и т.д. Это супер сложно.
Google решает самую большую проблему, заставляя новые приложения и обновления медленно переходить на таргетинг новых версий Android, чтобы быть принятыми в Google Play. Это помогает, потому что написание приложения, ориентированного на более старую версию, означает, что у него нет каких-либо детализированных разрешений, и вместо этого вы принимаете их все при установке. Однако, вы все еще не сможете поделиться фотографией, не предоставив доступ ко всем вашим контактам.
Я знаю, что это нелегко сделать; потребовалось более 10 версий Android, прежде чем мы смогли позволить приложению записывать данные на SD-карту, не давая ему разрешения читать все, что на ней находится. Я также знаю, что разработчикам не нравится видеть изменения, когда речь заходит о разрешениях, потому что это означает больше работы по созданию или обновлению приложения. Тем не менее, должен быть способ достичь точки, когда мне не нужно делиться всеми своими фотографиями с компанией, которая производит беспилотники, пока я транслирую полет в прямом эфире.
Внимание: это перевод статьи Android Central
Источник: