Ofuscación de un proyecto de biblioteca de Android / apklib

Tengo una pregunta sobre cómo ofuscar un proyecto de biblioteca de Android. En general, me gustaría ofuscar un archivo apklib (o realmente los archivos .java para cualquier proyecto de biblioteca) que contenga archivos .java (en el directorio src/ de Android) y archivos XML/recursos externos (en el directorio res/ de Android ). Me gustaría poder distribuir esta biblioteca a otros desarrolladores, de manera similar a la biblioteca SDK de Facebook (https://github.com/facebook/facebook-android-sdk como referencia). Sin embargo, quiero que el código esté ofuscado para que mis métodos no se expongan de una manera fácil de leer.

Intenté usar Proguard con Maven, pero incluso después de construir mi proyecto con Proguard, los archivos en mi .apklib no estaban ofuscados. También intenté ejecutar Proguard manualmente, pero no pude hacer que generara archivos .java sin procesar (a los que otro proyecto podría hacer referencia como una biblioteca) en lugar de archivos .class.

Si alguien tiene información sobre cómo ofuscar el código Java en una biblioteca apklib/Android, estaría muy agradecido. Además, también sería muy útil saber si no es posible crear una biblioteca androide ofuscada.

Muchas gracias por su ayuda.

mejor, kevin

preguntado el 03 de mayo de 12 a las 21:05

1 Respuestas

Dependiendo de cómo configure el objetivo proguard del complemento maven de Android, lo más probable es que pueda crear una apklib ofuscada. Sin embargo, no lo he probado yo mismo. Tenga en cuenta que proguard se ofusca potencialmente en un artefacto secundario y no en la apklib primaria.

También debe tener en cuenta que si ofusca la biblioteca, sus usuarios tendrán que usar los nombres de métodos ofuscados... lo que anula el propósito de la distribución y hará que sea muy difícil de usar, por lo que podría ser una mala idea. Lo único que funcionaría es si ofuscas todo el código sin ofuscar ningún método público ni nombre de clase.

contestado el 03 de mayo de 12 a las 21:05

Manfred - Muchas gracias. De hecho, mi configuración de Proguard mantiene expuestos los métodos públicos para que los desarrolladores no tengan que hacer ningún tipo de locura como llamar a métodos ofuscados. Veré si Proguard se está ofuscando en un artefacto secundario; eso sería consistente con lo que he visto, pero no estoy seguro de cómo volver a incorporar el código en una biblioteca importable. - Kevin

simplemente puede usar el complemento de ayuda de compilación para implementar la biblioteca como un artefacto secundario ... y solo hacer que esté disponible, por ejemplo, con un clasificador ... - Manfredo Moser

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.