Я пишу программы на Java для Android. Я пытаюсь скрыть свой код Java от декомпиляции. Возможно ли сделать .so библиотеку из java-кода?Можно ли сделать .so библиотеку из java-кода?
ответ
Чтобы «скрыть мой код Java от декомпиляции», вы должны использовать proguard.
Инструмент ProGuard сжимает, оптимизирует и обфускает ваш код, удаляя неиспользуемый код и переименовывая классы, поля и методы с семантически неясными именами. В результате получается меньший размер .apk-файла, который сложнее перестроить.
Никакая обфускация не является совершенной, но, по крайней мере, с защитой, злоумышленник не может вернуться к тому же исходному коду, с которого вы начали.
И помните, что даже с скомпилированным c в .so
он может быть обратным проектированием, поэтому это не так, как лучшее решение.
В ответ на ваш вопрос:
Можно ли сделать .so библиотеки из Java-кода?
Нет, вы не можете, вы должны использовать JNI и написать код C, который реализует собственные функции, которые вы определяете в своем Java-коде. Таким образом, библиотека .so
скомпилирована из кода C.
Может быть, есть инструменты третьей части, которые позволяют «преобразовать» байт-код Java в native? Как и RoboVM для iOS https://robovm.com http://postimg.org/image/pjaxod17j –
Извините, у меня нет опыта работы с этими инструментами и я не знаю о них. Мой опыт связан с JNI и C (не C++). Это единственный способ сделать то, что вы хотите. – malaguna