Device policy что это за программа на андроид

Обновлено: 04.07.2024

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

В этой статье рассказываем, как мы в Axmor используем несколько простых манипуляций с Android Management API, чтобы заблокировать ненужные функции без root-прав.

SingleApp-устройства можно встретить в ресторанах, аэропортах, гостиницах, а также в корпоративной сфере​

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

в случае клиентских приложений они используются для покупки билетов, заказа еды в ресторанах, регистрации гостей и т.д;

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

В нашей компании разрабатывается много enterprise-приложений, из-за чего мы часто сталкиваемся с необходимостью блокировки функций на dedicated devices. Например, в нашей практике было приложение для инженеров по безопасности на промышленных предприятиях. Эти специалисты ходят по заводу, следят за исправностью трубопроводов и должны куда-то заносить собранные данные:

Компания-заказчик закупила для этой цели несколько десятков смартфонов на Android и заказала нам приложение со следующими требованиями:

Часть этого функционала можно реализовать довольно просто, однако на текущий момент устройство без root-прав не позволяет как-либо блокировать взаимодействие со статус-баром и пуш-уведомлениями. Также не удастся ничего сделать с кнопкой “Последние приложения”.

Тут на помощь приходит Android Management API и device policy controller (DPC), которые позволят выполнять настройку корпоративных устройств в кратчайшие сроки и по своему усмотрению блокировать любые функции.

Инструменты для управления устройством: Device policy controller и Android Management API

DPC — это приложение, которое может контролировать разрешения других приложений, а также блокировать различные функции устройства. Соответственно, используя кастомный DPC, мы можем в том числе скрывать статус-бар и блокировать системные кнопки на устройстве.

Написание собственного DPC довольно трудозатратно, т.к. включает в себя написание целого приложения, единственная функция которого — ограничивать возможности пользователя при работе с устройством. Кроме того, любые изменения в политике устройства придётся внедрять в коде, что повлечет за собой выпуск новой версии этого приложения.

Чтобы упростить жизнь разработчикам таких решений, Google в 2017 году выпустил свой DPC, который называется Android Device Policy и управляется с помощью Android Management API. Чтобы использовать Android Management API, нужно выполнить несколько шагов:

Использование Android Management API для создания SingleApp-устройства

Вернёмся теперь к списку требований для Dedicated device и рассмотрим, как их можно реализовать с помощью policy. Чтобы выбранное приложение всегда присутствовало на экране и запускалось автоматически после перезагрузки, оно должно заменить стандартное Home app. Для этого нужно добавить следующий блок в политику:

Чтобы запустить lockTaskMode, просто вызовите в коде основного Activity своего приложения соответствующий метод:

Чтобы скрыть статус бар, нужно добавить в policy

Ну а для того, чтобы экран всегда оставался включенным, нужно просто добавить флаг android:keepScreenOn="true" в корневую ViewGroup Activity. Итоговый JSON политики будет выглядеть примерно так:

< "adjustVolumeDisabled": true, "appAutoUpdatePolicy": "ALWAYS", "applications": [ < "defaultPermissionPolicy": "GRANT", "installType": "FORCE_INSTALLED", "lockTaskAllowed": true, "packageName": "com.example.lockerApp" >], "persistentPreferredActivities": [ < "actions": [ "android.intent.action.MAIN" ], "categories": [ "android.intent.category.HOME", "android.intent.category.DEFAULT" ], "receiverActivity": "com.example.lockerApp" >], "playStoreMode": "WHITELIST", "safeBootDisabled": true, "screenCaptureDisabled": true, "statusBarDisabled": true, "systemUpdate": < "endMinutes": 240, "startMinutes": 120, "type": "WINDOWED" >>

Различные примеры политик можно посмотреть тут. А все возможные параметры для политики — тут.

Есть ещё одна проблема, с которой мы столкнулись при разработке нашего решения. В одном из проектов Axmor заказчику требовался функционал выхода из заблокированного режима, чтобы можно было снова полноценно пользоваться устройством без сброса к заводским настройкам. Это можно сделать через создание двух разных политик — policy_locked и policy_unlocked, и инициируя их смену через backend с устройства. Но дело в том, что с устройства нельзя напрямую получить его внутренний id в Android Management API, а значит — нельзя выполнить никакие операции с ним. До Android 10 можно найти устройство в общем списке по его серийному номеру, который хранится в Device.hardwareInfo.serialNumber, сравнив его с серийным номером, полученным через Build.getSerial() или Build.SERIAL, однако начиная с Android 10, получение серийного номера запрещено для несистемных приложений.

Как опубликовать enterprise-приложение в Google Play

Решение — использовать Managed Google Play и выложить наше приложение как private app. Для этого нужно сначала загрузить приложение в Google Play, затем зайти в Store Presence -> Pricing & Distribution -> User programs -> Managed Google Play, отметить Turn on advanced managed Google Play features -> Privately target this app to a list of organizations. Здесь нужно выбрать id enterprise, для которой мы регистрируем устройства. Теперь, если в policy для нашего приложения будет прописано поле installType как FORCE_INSTALLED, оно будет установлено автоматически при регистрации устройства.

Несмотря на некоторые недостатки, Android Management API в настоящий момент — самый простой и удобный способ для создания Dedicated device или устройства одного приложения в ОС Android. Большие возможности для кастомизации позволяют делегировать непосредственное выполнение кода для создания ограничений на устройстве готовому DPC, что способно существенно сократить время разработки. Нам на мобильных проектах в Axmor это API позволяет сократить время на выполнение “рутинной” работы по реализации ограничений и уделить больше внимания самому Single App.

Мы тут собрали умную камеру для наблюдения за котиками. Хотите научим?

Даже не слышал про такую опцию, спасибо за вводную.

Спасибо! Это было полезно.

Привет, я использую приложение Kiosk Mode app управления планшетами своих сотрудников и теперь хочу интегрировать в него свое новое приложение. Очень интересный материал.

Scalefusion works as an Android Kiosk App that allows you to lock Android tablets into kiosk mode…

Еще вариант полиси с опцией "kioskCustomLauncherEnabled": true оно всё-же позволяет по желанию приложениям кодом, прикреплятся к экрану (не знаю может это баг). Только работает это странно, после загрузки устройства, через 30 секунд, экран приложения открепляется сам! И выпадает на рабочий стол(кастомный ланчер), так-же экран открепляется при смене локали устройства (а у меня кстати задача менять локаль устройства, из настроек на сервере. Кстати Management API менять локаль не позволяет, покрайней мере полиси я не нашел, а вот было бы круто). Хотя потом можно снова запустить приложение и оно прикрепит экран.

Еще вопрос, а что делать, если я после установки Single APP приложения, хочу зарегистрировать аккаунт, сразу для него. Хорошо есть Pub/Sub нотификации, в конце установки. Затем можно задать этот аккаунт в приложение, через managed configurations.
Но блин, вся прелесть полиси, в том что изменив один раз policy, мы получаем эффект на всех устройствах с этим полиси (например установить новое приложение на все устройства), и это ломается, т.к. идентификатор управляемой конфигурации или сама конфигурация, задаётся в Policy. А вот аккаунт желательно б иметь на каждом устройстве свой. ред.

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

Требования

  • Устройство с Android 6.0 (Marshmallow) или более поздних версий, поддерживающее рабочие профили. на своем устройстве в аккаунт Google Workspace.

Разрешения для приложений

Установив приложение Android Device Policy на свое устройство, вы предоставляете ему доступ к некоторым данным:

  • Местоположение. Геоданные нужны для поиска доступных сетей Wi-Fi, для применения правил безопасности и для подсказок о новых сетях.
  • Телефон. Доступ к телефону нужен для регистрации устройства и передачи его идентификаторов вашему администратору.
  • Камера (необязательно). Может использоваться для сканирования QR-кодов (при условии, что администратор зарегистрировал устройство как управляемое).

Возможности Android Device Policy для администраторов

  • Настроить перечисленные ниже правила безопасности.
    • Надежность и требуемая длина пароля на устройстве.
    • Количество вводов недействительных паролей, оставшееся до очистки устройства.
    • количество заблокированных паролей с истекшим сроком использования;
    • число дней до истечения срока действия пароля устройства;
    • продолжительность периода бездействия устройства до автоматической блокировки (в минутах);
    • продолжительность периода без синхронизации, по истечении которого с устройства стираются все данные.
    • аудит приложений;
    • шифрование данных на устройствах;
    • дистанционное удаление данных с корпоративного устройства;
    • Блокировка взломанных устройств.

    Как открыть приложение Android Device Policy

    Для запуска приложения на устройстве выберите НастройкиGoogleРабочиеDevice Policy.

    Устранение неполадок

    Устройство принадлежит компании или настроено только для работы

    1. Перезагрузите устройство и посмотрите, начнется ли синхронизация.
    2. Если перезагрузка не помогла, перейдите в раздел НастройкиGoogleРабочие и нажмите Device Policy"Синхронизация" , чтобы синхронизировать данные вручную.
    3. Если это не поможет, сбросьте настройки устройства. Сброс удалит все данные с устройства, поэтому сначала убедитесь, что у вас создана резервная копия важных данных. Подробнее о том, как сбросить настройки устройства Android…

    Устройство используется как для рабочих, так и для личных целей

    Выполните повторную регистрацию устройства: удалите рабочий профиль, а затем снова добавьте аккаунт Google Workspace и рабочий профиль.

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

    Как удалить приложение на Android?

    Прежде чем мы перейдем к сути вопроса, вспомним, как удалять приложения на Android-смартфоне. На некоторых смартфонах достаточно нажать пальцем на иконку приложения и подержать пару секунд. В появившемся меню выбрать пункт Удалить или Отключить:

    Но, в большинстве случаев, для удаления приложения необходимо зайти в Настройки смартфона, там выбрать пункт Приложения. После выбора нужного приложения, открываем его и нажимаем Удалить (или Выключить). В зависимости от марки смартфона, все может выглядеть немного по-другому, но, принцип тот же:

    Как удалить приложение через настройки

    Список приложений, которые следует сразу удалить

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

    Итак, проверьте, не встречаются ли у вас приложения из нашего списка:

    Диск

    Защищенная папка

    Приложение от Samsung, позволяющее скрывать различные файлы или даже приложения от посторонних людей. Достать что-либо из этой папки можно только по паролю\отпечатку пальца. Если вы не работаете на спец.службы, с этим приложением можно расстаться.

    Google Карты

    Google

    Словарь

    Briefing

    Duo

    Этому приложению можно смело дать звание самого бесполезного приложения от Google. Конечно, сама идея (осуществление видео-звонков) отличная, вот только никто этим приложением не пользуется, так как есть гораздо более популярные аналоги: Skype, Viber, WhatsApp или Facebook Messanger. Смело удаляйте!

    Wear

    Gmail

    Google Фото

    Google Музыка

    Очень удобное приложение для прослушивания музыки. Проблема состоит лишь в том, что нужно оплачивать его ежемесячную подписку. А если вы не слушаете музыку по подписке, смысла в этом приложении нет никакого, ведь для прослушивания своих mp3 есть множество более удобных и функциональных аналогов.

    Google Фильмы

    Если предыдущее приложение для музыки еще имеет смысл оставить (и очень многие, включая меня, им пользуются), тогда это приложение можно смело удалять. Если, конечно, вы не против платить за просмотр одного фильма по $10-$20 (или брать его напрокат за $1), да еще без перевода (многие фильмы идут только с оригинальной дорожкой).

    LinkedIn

    OneDrive

    PowerPoint

    Когда в последний раз вы создавали или просматривали на своем смартфоне PowerPoint-презентацию? Смело удаляйте это приложение, если оно было установлено на вашем смартфоне из магазина.

    Smart Switch

    Что бы еще удалить?

    Здесь мы не говорили о таких простых приложениях, как Блокнот или Музыкальный проигрыватель. По названию приложения уже понятно, что его можно удалить без каких-либо последствий, если оно вас не устраивает.

    • Блокнот
    • Заметки
    • Здоровье
    • Зеркало
    • Компас
    • Погода
    • Сканер
    • Советы
    • Центр игр
    • Android Accessibility Suite (важно для людей с ограниченными возможностями)
    • Facebook App Installer
    • Facebook App Manager
    • Facebook Services (эти 3 приложения можно удалить, если не используете Facebook)
    • HiCare (техподдержка смартфонов Huawei)
    • Huawei Device (приложение на Huawei, которое является просто ссылкой на сайт компании)
    • Phone Clone (перенос всех данных со старого смартфона на новый, аналог Smart Switch от Samsung)
    • Samsung Internet, Mi Браузер и другие браузеры (всё это аналоги Google Chrome, а потому есть смысл оставить только одно приложения для выхода в интернет)

    Но даже если вы удалите только перечисленные выше приложения, сможете уже освободить достаточно много места на смартфоне, а также продлить время его работы от одной зарядки!

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

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

    Условия теста были очень просты: Только 4G интернет (принудительно, даже если сигнал плохой), яркость примерно 60%, смешанный тип использования, с большим количеством времени выделенным на просмотр видео онлайн в качестве 1080p.

    Как вы видите, при пяти с половиной часах экрана, осталось ещё 57% заряда аккумулятора, а «Система Android» использовала 7.29% (от 43 потраченных). Графики активности и работы экрана практически идентичны, а это значит, что смартфон ничего не беспокоит в фоновом режиме.

    А вот результаты на следующий день, показывающие что «Система Android» увеличила расход батареи всего на 0.13%, за 12 часов. Обычно, на моём смартфоне (Redmi Note 8T) этот показатель увеличивался на 2-3% за тот же период.

    К чему я это всё ? Знакомьтесь: Device Health Services - служба от Google, призванная следить за состоянием аккумулятора и отображать время продолжительности работы смартфона, что на первый взгляд выглядит весьма полезно.

    Но работает она только на девайсах с Android One и фирменных смартфонах Google Pixel, следовательно, в наших Xiaomi, это приложение попросту бесполезно и впустую тратит ресурсы системы.

    Отключить её можно через Play Market или Activity Launcher (ссылку оставлю в конце). Я покажу на примере последнего, так как это просто быстрее, вы же можете делать, так как вам удобно.

    Заходите в приложение —> в поисковой строке пишите «Все приложения» —> заходите в первый пункт списка —> Ещё —> Показать системные процессы

    Находите в списке «Device Health Services» —> Хранилище и кеш —> Очистить кеш (если есть) —> возвращаетесь назад и нажимаете сначала «Остановить», а затем «Отключить».

    Если хотите, можете вовсе удалить эту службу через приложение «ADB AppControl» (инструкцию по его использованию вы найдёте по ссылке ниже). Так же, чтоб два раза не ходить, можете отключить приложения «Сделать вырез в углу экрана» и «Сделать вырез на экране выше», имена которых выглядят вот так:

    Читайте также: