Как зашифровать код в Android Studio

Обновлено: 29.01.2023

AES, Advanced Encryption Standard – это симметричный блочный шифр, выбранный правительством США для защиты секретной информации во всем мире для шифрования служебных данных.

Что такое шифрование AES (Advanced Encryption Standard)?

Возможно, вы слышали о расширенном стандарте шифрования, или сокращенно AES, но не знаете ответа на вопрос «что такое AES?» Вот четыре вещи, которые вам нужно знать об AES:

  • Что стоит за названием? AES — это вариант семейства алгоритмов симметричного блочного шифрования Rijndael, который представляет собой комбинацию имен двух бельгийских криптографов, Джоан Демен и Винсент Раймен. (Это похоже на сочетание имен знаменитостей, таких как «Бранджелина» и «Кимье»).
  • Где используется AES?Шифрование Android AES обычно используется во многих целях, включая безопасность беспроводной сети, безопасность процессора, шифрование файлов и SSL/TLS. Фактически, ваш веб-браузер, вероятно, использовал AES для шифрования соединения с этим веб-сайтом.
  • Почему AES так популярен? AES оказался очень эффективным и действенным и, при условии правильного ключа, практически не добавляет разницы в накладные расходы для любого процесса, в котором он используется. По сути, AES — это быстрая и высоконадежная форма шифрования, которую предпочитают компании и правительства по всему миру.
  • Насколько безопасен AES? Благодаря 256-битному ключу шифрования AES очень безопасен — его практически невозможно взломать. (Подробнее об этом через минуту.)

Какой лучший алгоритм шифрования?

Advanced Encryption Standard состоит из трех блочных шифров:

Обычный текст, который мы используем для преобразования, сначала преобразуется в шифрованный текст, а затем выводится в биты шифрованного текста 128, 192 и 256.


< /p>

Пришло время кода:

Нам нужно инициализировать KeyGenerator и SecretKey, чтобы создать собственный ключ.

Запретите параметр с помощью метода getInstance и инициализируйте KeyGenerator с размером ключа 256. Добавьте их в метод try catch, чтобы предотвратить сбои.

Теперь я использую IV (вектор инициализации) в своем коде. Это необязательная часть шифрования AES, но ее лучше использовать. Используйте его с классом SecureRandom.

Инициализируйте IV после его глобального объявления.

Метод шифрования:

Метод расшифровки:

Как вызвать оба метода:

Я использовал EditText для пользовательского текстового поля, чтобы ввести любую строку, которую необходимо зашифровать. Две кнопки для получения результатов соответственно. Один для шифрования, другой для расшифровки. Также используются два TextViews для отображения значений (результатов). Один текст используется для отображения зашифрованного значения, а другой — для расшифрованного значения.

После размещения всего этого вы можете увидеть результаты того, как шифрование и дешифрование выполняются с помощью шифрования AES 256.

Помните, что IV (вектор инициализации) — это произвольное число, которое используется только вместе с секретным ключом для шифрования данных. Для генерации IV мы используем класс SecureRandom.

Из вектора инициализации мы создаем IvParameterSpec, который всегда требуется при создании шифра во время шифрования или дешифрования.

Узнайте, как шифровать файлы DEX (классы Java) в приложениях для Android.

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

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

В этой статье базы знаний содержатся пошаговые инструкции по использованию Appdome для шифрования файлов классов Java (.dex) в приложениях для Android.

Мы надеемся, что вы найдете эту базу знаний полезной и получите удовольствие от использования Appdome!

О шифровании файлов DEX

Appdome – это платформа для обеспечения безопасности и разработки мобильных устройств без кода, которая позволяет любому пользователю добавлять разнообразные функции безопасности, SDK и API в приложения для Android и iOS. С помощью простого пользовательского интерфейса «нажмите, чтобы добавить» любой может легко зашифровать файлы Android Java Class (.dex) за считанные секунды, без кода или кодирования.

Шифрование файлов DEX от Appdome – это функция безопасности, которая шифрует скомпилированный код Java мобильного приложения и расшифровывает его во время выполнения. Шифрование файлов DEX от Appdome в сочетании с другими функциями запутывания делает обратное проектирование сложной задачей, сохраняя при этом функциональность и производительность исходного приложения.Appdome совместим с мобильными приложениями, созданными в любой среде разработки, включая нативные приложения для Android, гибридные приложения и не нативные приложения, встроенные в Xamarin, Cordova, React Native, Ionic и другие. Это упрощает внедрение, сокращает работу по разработке и гарантирует гарантированное и последовательное внедрение шифрования файлов DEX от Appdome в любое мобильное приложение.

Зачем шифровать файлы DEX (классы Java) в приложениях для Android?

В Android скомпилированный код Java/Kotlin находится в файлах class.dex (см. структуру приложений Android). Распространенными инструментами для обратного проектирования файлов DEX являются дизассемблеры, такие как baksmali и dex2jar, и декомпиляторы, такие как jadx и jdgui. Цель упаковки кода с помощью Appdome APPCode Packer — сделать эти инструменты неэффективными и даже непригодными для использования. Для этого Appdome шифрует все файлы DEX, которые не нужны для инициализации приложения, что делает невозможным поиск исходного кода дизассемблером. Во время выполнения код Appdome расшифрует зашифрованные файлы DEX и позволит приложению продолжить работу в обычном режиме.

Этот метод запутывания обеспечивает следующие преимущества:

  1. Попытка использовать автономные методы реверсирования в приложении не удастся, так как большинство классов не будут найдены в APK или в AAB.
  2. Накладные расходы на расшифровку возникают только при первом запуске приложения, и даже тогда они оказывают минимальное влияние.
  3. Поскольку файлы DEX зашифрованы, они защищены системой защиты от несанкционированного доступа Appdome.
  4. Кроме того, любая попытка вытеснить эту информацию из приложения с помощью методов времени выполнения будет пресечена антиотладкой Appdome и другими функциями ONEShield.

Эта функция является дополнением к Appdome Control-Flow Relocation и может использоваться вместе для усиления защиты от обратного проектирования Java-кода приложения.

Если ваше приложение было разработано с использованием неродной среды, такой как React-Native, Cordova или Xamarin, вы можете проверить обфускацию неродного кода.

Если, с другой стороны, в вашем приложении больше нативного кода, мы рекомендуем вам проверить обфускацию двоичного кода.

Дополнительные примечания:

Поскольку для первоначального запуска приложению по-прежнему требуются определенные классы, определенные классы, упомянутые в следующих тегах в манифесте приложения внутри тега «приложение», не будут зашифрованы:

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

Тимофий Крючков
< /p>

Содержание:

Почему важно шифрование?

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

В этой статье мы рассмотрим семь самых популярных методов шифрования для Android:

  • симметричное шифрование
  • асимметричное шифрование
  • хеширование
  • цифровая подпись
  • сквозное шифрование
  • криптография на основе эллиптических кривых
  • HMAC

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

Давайте внимательно рассмотрим эти методы.

Симметричное шифрование

Принцип работы симметричного шифрования

Принцип работы симметричного шифрования

Симметричное шифрование выполняется быстро и легко. Однако это вызывает определенные проблемы с безопасностью.

Если ваше приложение использует симметричное шифрование, вам следует уделить внимание созданию и защите ключей. Ключи должны быть сложными и хорошо защищенными, чтобы хакеры не могли получить их с помощью вставки учетных данных или грубой силы. Вам следует подумать о безопасном методе распространения и хранения ключей, а также о том, чтобы не допустить их попадания в чужие руки. Ключи не должны передаваться по сети в виде простого текста или записываться на стикерах и прикрепляться к монитору.

Несмотря на свои ограничения, симметричное шифрование широко распространено, потому что оно быстрое и надежное. Он используется в WhatsApp, Firefox и ранних версиях Microsoft Outlook. Вымогатели, шифрующие файлы, также используют этот метод. Злоумышленники шифруют файлы на компьютерах жертв с помощью симметричного шифрования. Расшифровка данных возможна только с помощью ключа, поэтому злоумышленники вымогают деньги у жертв в обмен на ключ расшифровки.

Давайте посмотрим, как можно реализовать симметричное шифрование в приложении для Android:

Мы инициализировали объект keyGenerator в конструкторе Aes256Class(). Он установлен на размер ключа 256 бит. Затем с помощью функции generateKey() генерируется случайный ключ заданного размера (256 бит).

Исходный байтовый массив и режим работы объекта класса Cipher передаются в функцию makeAes:

Cipher.ENCRYPT_MODE или Cipher.DECRYPT_MODE.

В классе с основной функцией мы можем вызывать описанные выше методы следующим образом:

В результате получаем следующий код:

Вот основные плюсы и минусы симметричного шифрования:

  • Простота в использовании: вам нужен только один ключ для шифрования и расшифровки данных.
  • Высокая скорость выполнения.
  • Секретность пароля жизненно важна. Если хакеры получат ключ, взлом приложения — вопрос времени.
  • Вам нужен надежный пароль, устойчивый к хакерским атакам.

Асимметричное шифрование

Асимметричное шифрование или шифрование с открытым ключом – это тип алгоритма шифрования, в котором используется пара ключей: открытый (или общедоступный) и закрытый (или частный). Открытый ключ известен всем в сети, а закрытый ключ хранится на сервере или на стороне другого владельца ключа и должен храниться в секрете. Асимметричное шифрование часто основано на алгоритме RSA-2048. В настоящее время рекомендуется, чтобы ключи RSA имели длину не менее 2048 бит.

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

Асимметричное шифрование
< /p>

Эта технология используется для транзакций блокчейна и шифрования смарт-контрактов. Он также используется приложением Facebook для Android.

Асимметричное шифрование можно реализовать следующим образом:

Зашифрованные данные выглядят следующим образом:

Давайте рассмотрим некоторые плюсы и минусы асимметричного шифрования:

  • Хакеру гораздо сложнее получить закрытый ключ, поскольку он хранится на сервере.
  • Открытый ключ можно использовать в качестве цифровой подписи. Таким образом, этот тип шифрования позволяет выполнять аутентификацию пользователя.
  • Шифрование больших объемов данных занимает много времени.
  • Если вы каким-то образом потеряете или забудете свой закрытый ключ, вы не сможете расшифровать свои данные.

Хеширование

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

Хеширование

В приложениях для Android хеширование используется для шифрования паролей пользователей. Алгоритм хэширования делает практически невозможным получение исходного пароля из хэша.

Давайте создадим новую строку, хешируем ее и сохраним результат в переменной:

Вот наша строка «Hello» после хеширования:

У хеш-функций есть несколько сильных и слабых сторон:

  • Хеширование — это односторонняя функция, поэтому вернуть выходные данные обратно во входные данные невозможно.
  • Хеширование выполняется быстро и легко.
  • Целостность данных абсолютна.
  • Хешированные данные могут быть скомпрометированы методом полного перебора. Существует множество словарей с хешированными версиями простых паролей.
  • Есть только один способ хэшировать одно и то же слово. Поэтому, как только ваш пароль будет взломан, все ваши аккаунты с таким паролем могут быть скомпрометированы.

Цифровая подпись

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

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

Цифровые подписи сочетают в себе хеширование и асимметричное шифрование (как описано выше).

Цифровая подпись
< /p>

Приложение для цифровой подписи

Если вы решите внедрить алгоритм цифровой подписи в свое приложение, обратите внимание на следующие моменты:

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

Сквозное шифрование

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

Анализируя открытую документацию, можно предположить, что шифрование Telegram основано на E2EE. Его аутентифицированное распределение ключей использует классический протокол Диффи-Хеллмана (DH). Этот протокол объединяет асимметричное (RSA) и симметричное (AES) шифрование, позволяя обмениваться зашифрованными сообщениями путем передачи только открытых ключей по открытому каналу. Для этого протокол генерирует сеансовые ключи, которые остаются общим секретом между двумя пользователями. Сеансовый ключ создается на основе секретного ключа отправителя и открытого ключа получателя.

Реализация E2EE очень похожа на асимметричное шифрование.

Реализация E2EE
< /p>

E2EE делает невозможным расшифровку сообщения сервером.

E2EE имеет ряд существенных плюсов и минусов:

  • E2EE вовлекает меньше сторон в обмен данными. Таким образом, снижается вероятность внутренней атаки.
  • Данные нельзя украсть при передаче.
  • E2EE особенно уязвим для атаки "человек посередине". Злоумышленнику легко перехватить передачу, получив открытый ключ и выдав себя за одного из участников.
  • Безопасность ключей в E2EE полностью зависит от безопасности конечной точки. Если конечные точки клиента взломаны, невозможно отличить злоумышленника от настоящего пользователя.

Криптография на основе эллиптических кривых

Криптография на основе эллиптических кривых (ECC) использует открытые ключи на основе алгебраической структуры эллиптических кривых над конечными полями.

При разработке приложений для Android ECC часто использует Curve25519. Это эллиптическая кривая с набором параметров, подобранным специально для обеспечения более высокой скорости шифрования. Его алгоритм напоминает асимметричное шифрование.

Чтобы сгенерировать новую пару ключей, мы добавляем в алгоритм любую последовательность из 32 случайных байтов. Это будет наш закрытый ключ. Затем мы используем Curve25519 для генерации 32 байтов открытого ключа. Наконец, мы обмениваемся нашим открытым ключом с другой конечной точкой и вычисляем общий ключ для данных, совместно используемых с этой конечной точкой.

Curve25519 используется в качестве обмена ключами по умолчанию в OpenSSH, I2P, Tor, Tox, Facebook Messenger и даже iOS.

Давайте посмотрим, как реализована Curve25519:

ECC имеет следующие плюсы и минусы:

Быстрее, чем другие методы шифрования, которые мы рассмотрели в этой статье.

Только криптографически стойкие эллиптические кривые обеспечивают достаточный уровень безопасности.

Код проверки подлинности сообщения на основе хэша (HMAC) – это тип кода проверки подлинности сообщения, который сочетает в себе хеширование и криптографический закрытый ключ. Этот ключ известен только серверу и конечной точке. Конечная точка хеширует данные и отправляет их на сервер. Сервер расшифровывает его с помощью закрытого ключа и сравнивает хешированные данные с исходным сообщением.

HMAC часто использует алгоритм SHA-256, который основан на хэш-функции SHA-2 и считается более безопасным, чем его предшественники, такие как алгоритмы MD-5 и SHA-1.

Этот метод аутентификации используется как для шифрования, так и для аутентификации. Связь в Signal и WhatsApp основана на HMAC-SHA256.

Реализация HMAC
< /p>

HMAC добавляет закрытые ключи в алгоритм хеширования.

HMAC-SHA256 реализован следующим образом:

Давайте рассмотрим некоторые плюсы и минусы HMAC:

  • Добавление закрытого ключа к хэшированию делает этот метод более устойчивым к атакам с расширением длины.
  • Взломать HMAC-SHA256 можно только методом грубой силы.
  • Как и в случае с хешированием, HMAC можно взломать с помощью словарей хешированных паролей.

Заключение

В этой статье мы рассмотрели семь методов шифрования Android, которые используются в таких приложениях, как Telegram, Signal и WhatsApp. Некоторые из них быстро внедряются и используются; другие требуют времени, но обеспечивают более безопасное шифрование. Хотя RSA (один из самых простых и быстрых алгоритмов шифрования для Android-приложений) считается легко взломанным, разработчики мессенджеров не отказались от этого метода шифрования. Вместо этого они улучшают его, объединяя с другими алгоритмами.

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

Вы планируете сложный проект шифрования? Бросьте вызов нашей команде мобильных разработчиков!

Карлос Дельгадо< бр />

Узнайте, как защитить исходный код приложения Cordova.

Как зашифровать (защитить) исходный код приложение Android Cordova

Как вы, возможно, знаете, файл apk на самом деле является просто zip-архивом, поэтому вы можете попытаться переименовать (или просто заставить инструмент распаковки открыть файл apk) файл в appname.apk.zip и извлечь его любым утилита зип. В этом примере мы собираемся создать приложение, которое использует React (не React Native) и веб-пакет для генерации всего кода js в одном файле app.js. Затем мы собираем приложение с помощью Cordova build android --release и видим содержимое сгенерированного файла apk (сборка или отладка) в проекте/платформах/android/build/outputs/apk с помощью утилиты zip (в данном случае мы собираемся использовать WinRAR):

Зашифровать исходный код приложения Cordova

А если попробовать отредактировать какой-то из извлеченных файлов (наш app.js), то он будет содержать:

Содержимое файла исходного кода Cordova APK< бр />

Вы видите то, что вижу я? Исходный код вашего приложения, доступный для чтения всем, кто знает, как открыть APK с помощью утилиты zip. Хотя наш код минимизирован для производства (сделан не Cordova, а нами), код все еще виден, его можно красиво распечатать и, следовательно, читабельно. Это не так хорошо (очевидно), поскольку ваш код может выявить недостатки безопасности (если они есть) в таких функциях, как вход в ваше приложение, процесс оплаты и т. д.

Как говорят многие разработчики, и вам, вероятно, следует это знать, не существует стопроцентной защиты от реверс-инжиниринга. Вы можете сделать больше, чтобы защитить код своего приложения, но на самом деле это будет сложнее, в основном для обычного пользователя, который просто ищет в Google «Как взломать APK». Если кто-то действительно хочет взломать ваше приложение, оно может быть взломано рано или поздно (если только ваше приложение не взаимодействует с сервером и большинство функций не доступны на устройстве).

В этой статье вы узнаете, как защитить (или хотя бы повысить уровень защиты) исходный код вашего приложения в Cordova.

1. Установите плагин шифрования

Мы собираемся использовать плагин cordova-plugin-crypt-file для шифрования всех файлов внутри папки www вашего проекта (файлы, которые включены в сгенерированный apk). Его можно использовать в любом проекте Cordova (даже если он использует Crosswalk), и хотя это руководство предназначено только для Android, сам плагин также поддерживает платформы iOS.

Установите плагин с помощью следующей команды в своем терминале (как только вы окажетесь в папке проекта):

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

Как работает шифрование?

Этот подключаемый модуль использует алгоритм шифрования AES/CBC/PKCS5Padding для шифрования файлов. Файлы шифруются плагином с использованием случайно сгенерированного ключа шифрования и вектора инициализации (IV) во время компиляции вашего приложения (это означает, что исходные файлы внутри вашего проекта не будут изменены, только файлы сгенерированного APK) .Как и ожидалось, файлы будут расшифровываться каждый раз, когда ваше приложение запускается на установленном устройстве.

2. Настройка файлов, которые должны быть зашифрованы

Как упоминалось ранее, файлы зашифрованы, и их невозможно расшифровать с помощью Javascript. Если вам нужно, чтобы файл не был зашифрован, вы можете указать, какие файлы вы хотите зашифровать, с помощью специального регулярного выражения. Однако вам нужно будет указать это в файле плагина. Начните с открытия файла plugin.xml, расположенного в файле /project/plugins/cordova-plugin-crypt-file, и измените тег cryptfiles.

По умолчанию подключаемый модуль включает следующее регулярное выражение, которое шифрует все файлы css, htm, html и js внутри каталога www:

Просто настройте регулярное выражение, чтобы указать, какие файлы будут зашифрованы, например, следующий тег будет сжимать только файлы html, htm, js, но не файлы css, и исключит один файл JS с именем example :

Сохраните изменения после их внесения.

3. Проверить, были ли файлы зашифрованы

Теперь, после установки подключаемого модуля (и дополнительной настройки файлов для шифрования), вы можете проверить, работает ли подключаемый модуль. Повторите тот же процесс, упомянутый в начале статьи. Создайте свое приложение (либо в режиме отладки, либо в режиме выпуска) и используйте утилиту zip, чтобы просмотреть содержимое папки www в вашем apk ( assets/www ):

См. утилиту архивирования содержимого Apk

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

Содержимое зашифрованного файла Cordova

Сейчас это кажется нечитаемым, не так ли? Установленный подключаемый модуль будет расшифровывать файлы во время выполнения, ваше приложение будет работать должным образом, а ваш исходный код будет иметь более высокий уровень защиты.

Дополнительная безопасность

Вы можете использовать ProGuard в сгенерированном APK-файле Cordova. ProGuard оптимизирует байт-код, удаляет неиспользуемые инструкции кода и запутывает оставшиеся классы, поля и методы короткими именами. Запутанный код затрудняет реинжиниринг APK-файла, что особенно важно, когда ваше приложение использует функции, чувствительные к безопасности, такие как проверка лицензии .

Создайте файл proguard-rules.pro в папке /project/platforms/android со следующим содержимым:

Затем отредактируйте файл build.gradle (внутри /project/platforms/android или создайте плагин Cordova, который автоматически добавит его в файл сборки):

В качестве последнего шага соберите APK-файл в режиме выпуска с помощью Cordova build android --release, и все готово.

ProGuard сжимает ваш код, чтобы его было немного сложнее читать (минифицировал), что может замедлить процесс обратного проектирования. Хотя ProGuard не запутывает строковые константы, он больше специализируется на родственном продукте с закрытым исходным кодом для Android, DexGuard, и предоставляет дополнительные методы защиты приложений, такие как шифрование строк и шифрование классов.

Если вы знаете разработчика Cordova, который, вероятно, не знает об этой проблеме, поделитесь этой статьей. Удачного кодирования!

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