Comment dissimuler un Android (bibliothèque.fichier jar) à l'aide de Proguard dans Eclipse
J'ai vu de nombreux posts sur la façon de coder une application Android (.fichier apk) à l'aide de ProGuard dans Eclipse. Voir aussi http://developer.android.com/guide/developing/tools/proguard.html:
"Lorsque vous construire votre application en mode release, soit en exécutant ant la libération ou à l'aide de l'Assistant d'Exportation dans Eclipse, le système vérifie automatiquement si le proguard.config propriété est définie. Si elle l'est, ProGuard automatiquement les processus de l'application du bytecode avant de les emballer le tout dans un .fichier apk."
Mais dans le cas de l'exportation d'un projet Android dans un .fichier jar avec Eclipse Assistant d'Exportation, à la suite de la description des étapes (de la création d'un fichier proguard.cfg, la configuration de proguard.config propriété de proguard.cfg dans le fichier par défaut.propriétés, à l'aide de l'Assistant Exportation, etc.) ne semble pas fonctionner, je ne vois pas l'obscurcissement de la classe des noms, etc. dans le fichier jar. J'ai aussi l'un des paramètres suivants dans mon proguard.fichier cfg, mais je ne vois pas les fichiers de sortie dans mon répertoire de projet ou dans le proguard répertoire (le répertoire n'est pas encore créé).
-dump class_files.txt
-printseeds seeds.txt
-printusage unused.txt
-printmapping mapping.txt
J'ai même créé un fichier de projet.propriétés dans mon répertoire de projet avec la ligne suivante, mais qui ne semble pas attirer ProGuard en action:
proguard.config=proguard.cfg
Il n'y a pas d'activités définies dans le présent projet. J'utilise Android 2.3.1 et Eclipse Galileo 3.5.2 sur Windows. Mêmes résultats avec Android 3.0. Semble que la dissimulation de l'étape doit être en quelque sorte indiqué explicitement dans l'Eclipse de l'Assistant Exportation. Je vous en seront reconnaissants de l'aide ou de la perspicacité. Merci.
- avez-vous été en mesure de générer de l'obfuscation POT ?
Vous devez vous connecter pour publier un commentaire.
comme suggéré dans les commentaires de l'une des réponses ci-dessus (mais que je n'avais pas remarqué au premier abord car il a été enterré parmi les "commentaires") ...
nous suffit d'exécuter progruard sur la ligne de commande (voir le premier bloc ci-dessous) sur la bibliothèque en dehors d'eclipse avec les paramètres dans le deuxième bloc ci-dessous dans notre
proguard.cfg
fichier (et certainement ne pas utilisation-dontpreverify
, ou des projets qui utilisent votre projet comme un android bibliothèque ne sera pas en mesure de bien être codé en raison de StackMapTable les problèmes de votre project.jar).ligne de commande:
proguard.cfg:
il est possible de ne pas tous les paramètres et -conserver les éléments strictement nécessaires (autres que de ne pas utiliser
-dontpreverify
comme mentionné précédemment), mais la plupart de ces sens pour moi que les éléments qui doivent être là, si vous avez une Activité de la classe d'extension de la bibliothèque de l'exportation.- Je utiliser un moyen indirect pour générer un exporté android dissimuler le pot, mon chemin est:
exportation signé apk utiliser eclipse
décompressez le apk, trouver les classes.dex
utilisation dex2jar.chauve-souris ,changer le cours.dex, pour un pot
décompressez le bocal et supprimer la classe que vous n'avez pas besoin,puis zip et
modifier le nom de fichier XXX.jar
Puis vous utilisez ce pot dans un autre projet,ou de le donner à la clientèle, il
est de camoufler!
Je suis sûr que cela va vous aider! Profitez-en!
yourconfig.pro (étendue de http://proguard.sourceforge.net/index.html#manual/examples.html):
Résultat peut être vérifié avec jd-gui
La façon d'invoquer ProGuard est assez simple:
proguard.config=proguard.cfg
de projet.propriétésUn défaut proguard.cfg le fichier doit avoir été créé automatiquement par l'assistant nouveau projet.
Ne pas obscurci votre pur Java Jar. Sauter cette phase complètement tandis que la production du Pot (si manuellement dans Eclipse ou via Ant construire à partir de la ligne de commande).
Au lieu de cela, le programme d'installation et effectuer la bonne dissimulation dans le client projet, celle qui utilise le Pot, où vous ajoutez de la bibliothèque externe Jar. Proguard sera en mesure de dissimuler le code à l'intérieur du Bocal de trop.
Je suis tombé sur ce problème, et a terminé avec succès comme je l'ai décrit ici.