Обфускация кода Android и безопасное приложение для Android от пиратства

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

Для безопасности приложения я использовал RMS в J2ME. В J2ME я использую следующие шаги:

  1. Сгенерировать серийный номер (некоторое случайное число)
  2. Сохранить это число в rms, при следующем запуске приложения отобразить тот же серийный номер на экране и попросить пользователя ввести действительный код активации, а затем, если пользователь вводит правильный код активации, тогда приложение активируется, а флаг установлен в true, и я сохраняю это значение флага в другом эфф
  3. Если значение флага истинно, то для запуска приложения снова появляется домашний экран, иначе отображается страница активации.

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

Во-вторых, я хочу обфускать файл apk, прежде чем выпускать приложение. После того, как я посмотрел на 2 дня, я обнаружил, что это можно сделать с помощью proguard. Но я не понимаю, как запутать код. Пожалуйста, помогите мне в сортировке обеих проблем.

благодаря

На самом деле нет способа защитить какой-либо клиентский код, будь то Android * .apk, файл Java * .jar или немного кода JavaScript, который работает в браузере вашего пользователя. Лучший способ защитить себя от пиратства – это сделать приложение зависимым от некоторых вычислений на стороне сервера, которые вы предоставляете.

Поскольку вы используете RMS, это звучит так, как будто вам уже требуется серверное вычисление. Вместо того, чтобы беспокоить пользователей для ввода кода активации, почему бы вам не связать этот код активации с адресом электронной почты пользователя при покупке приложения, и почему вы не используете OAuth со своей учетной записью Google, чтобы убедиться, что у пользователя есть Который, как известно, приобрел приложение?

  • О RMS

Майкл Аарон Сафян сказал все, нечего добавить.

  • О ProGuard

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

Параллель с RMS в Android – SharedPreferences. Однако XML-файл sharedPreferences не защищен как RMS-файлы в J2ME (по крайней мере, на некоторых устройствах). Любой, у кого есть корневое устройство, может легко читать и писать этот файл …

Поэтому я предлагаю вам прочитать о лицензировании приложений для Android. Это далеко не идеально, но это встроенная функция, которую вы можете легко интегрировать. http://developer.android.com/guide/publishing/licensing.html

EDIT: Obfuscation: Чтобы запутать ваш проект, все, что вам нужно сделать, это добавить proguard.config=proguard.cfg в файл default.properties .

Обфускация произойдет в соответствии с конфигурацией, указанной в файле defult proguard.cfg. Обратите внимание, что ваш код будет запутан только при создании окончательного APK (Android Tools -> Export …), и я рекомендую проверить окончательный APK после обфускации, особенно когда сторонние библиотеки являются частью процесса сборки

Intereting Posts
Отображать состояние прямо из холодного старта Как отключить сервис от запуска в тесте Espresso? Узнайте, какие использует – разрешение поддерживает SmartPhone Android onCreate () Метод вызывается дважды, когда устройство вращается. (МПС) Можно ли использовать Python для написания кросс-платформенных приложений для iOS и Android? Robolectric: запустить петлитель обработчика в моем случае Интеграция Facebook, Twitter, Google+ в Android-приложение с помощью PhoneGap Тестирование жизненного цикла Android-активности Ошибка при установке apk – анализ пакета Алгоритм Android SensorManager.java getOrientation и getRotationMatrix Marsmallow: изменение разрешений при запуске приложения с ошибками Разница между домашним каталогом Gradle и автономным каталогом Gradle Стилизация всплывающего меню в Android 5.0 Java не работает с regex \ s, говорит: недействительная escape-последовательность Как создать Blob из растрового изображения в Android-активности?