Wie kann ich eine verschleierte JAR-Datei erstellen? Ab sofort kann ich mein Android lib Projekt einfach in ein jar exportieren und benutzen. Wie verschleiere ich die JAR-Datei?
Mein Endziel ist es, anderen zu erlauben, meine lib.jar in ihren Projekten zu verwenden. Ich möchte nur den Code so gut wie möglich schützen ...:)
Stellt sich heraus, es ist möglich und es ist nicht so schwer. Nach 3 Stunden des Versuchs habe ich es endlich herausgefunden!
Android bietet eine komfortable Programm-GUI unter:
android-sdk \ tools \ progard
Über die GUI wählen Sie einfach die in.jar und out.jar. Dann müssen Sie die android.jar auswählen und die ausgewählte Standard-rt.jar entfernen.
Sobald dies erledigt ist, müssen Sie die Schrumpfungs- und Verschleierungsoptionen sorgfältig auswählen.
Ich hoffe auf die eine oder andere Weise hilft das!
Das herauszufinden war nicht einfach, aber wenn man es einmal getan hat, ist es nicht so schwierig, die Schritte zu wiederholen:
proguard.cfg Beispiel
%Vor%...
%Vor%das ist es. Die Ausgabe enthält Ihre verschleierte .jar-Datei.
Von diesem Punkt kopiere ich einige Elemente aus meinem Projekt (.project file abzüglich externer Tools für NDK; res Ordner, libs Ordner für meinen jni Code und project.properties und AndroidManifest.xml) in MyReleaseSDK Erstelle ein .zip daraus. das .zip kann dann von jemand anderem als Eclipse- "Import" -Projekt verwendet werden; es wird einen leeren src-Ordner erstellen, die Ressourcen ordnungsgemäß nutzen, und jeder, der es möchte, kann es jetzt als normales Android-Bibliotheksprojekt verwenden, obwohl es verschleiert ist.
Wenn es ein externes jar ist, dann wenn Sie es im "libs" -Ordner haben und mit Android 2.2+ SDK kompilieren, verwendet es automatisch proguard, um die apk zu verschleiern. Wenn Sie möchten, dass dieses Glas als eine Bibliothek und obwuscate es vor der Verwendung in Ihrer apk, dann ist es möglicherweise nicht möglich. Wenn Sie von der Apk-Verschleierung sprechen, dann tut Android das von 2.2 an (mit Proguard), und Sie müssen sich nicht darum kümmern.
Sie proguard für Ihr Projekt zu aktivieren - es ist sehr einfach. Ссылка
Ein häufiger Fehler, der auftreten kann, besteht darin, dass bei der Verwendung von Reflektion keine Methoden gefunden werden. Dies liegt daran, dass die Verschleierung Methodennamen und manchmal sogar ganze Klassen entfernt. Wenn Sie benutzerdefinierte Ansichten haben, kann das Gleiche passieren.
Sie konfigurieren, welche Klassen beibehalten werden, indem Sie das Flag "-keep" in proguard.cfg
verwendenHier sind ein paar Gemeinsamkeiten, die von einem Maven Build stammen - aber das Konzept ist dasselbe.
%Vor%ein ziemlich großes Gebiet, aber ich hoffe, es hilft ...
Um eine verschleierte JAR-Datei zu erstellen, können Sie das tun, indem Sie die Datei build.xml hinzufügen und Änderungen in Ihrer proguard-project.txt-Datei vornehmen und ant-release von der Befehlszeile ausführen. Sie finden die obfuscated.jar unter einem proguard Ordner in Ihrem Ablageordner des Projekts
Schritte
Hinzufügen von build.xml in Ihrem Projekt in linux:
Öffnen Sie ein Terminal und gehen Sie zum Ordner android / tools / ant und führen Sie
aus %Vor%und Sie finden build.xml in Ihrem Projektstammverzeichnis.
, um die Verschleierung in Ihrem Projekt zu aktivieren:
Öffnen Sie in Ihrem Editor eine Datei project.properties und entfernen Sie den Kommentar aus
%Vor%fügen Sie Ihre Änderungen in die Datei proguard-project.txt ein und gehen Sie im Terminal zu Ihrem Projekt und führen Sie
aus %Vor%Tags und Links android proguard obfuscation