Как предотвратить клонирование приложения на Android

kotlin

Preventing Android App Cloning — статья о том, как предотвратить установку двух экземпляров приложения на устройство.

Другие полезные статьи на тему Kotlin:

Некоторые производители встраивают в свои прошивки функцию клонирования приложения (например, Parallel Apps в OnePlus, Dual Apps в Xiaomi), которая позволяет установить на смартфон копию какого-либо приложения. Прошивка создает дополнительного Android-пользователя с идентификатором 999 и устанавливает копию приложений от его имени.

Такую же функциональность предлагают некоторые приложения из маркета (Dual Space, Clone App, Multi Parallel). Они работают по-другому: создают изолированную среду для приложения и устанавливают его в собственный приватный каталог.

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

Сделать это можно с помощью анализа пути к приватному каталогу приложения. К примеру, приложение с именем пакета com.example.app при нормальной установке будет иметь приватный каталог по следующему пути:

При создании клона с помощью одного из приложений из маркета путь будет уже таким:

А при создании клона с помощью встроенных в прошивку инструментов — таким:

Автор статьи предлагает анализировать этот путь и проверять его либо на количество точек, либо на наличие цифры 999. Я переписал его громоздкий Java-код на Kotlin:

На этом все. Теперь вы знаете, предотвратить клонирование приложения на Android.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий