Wie erstelle ich eine verschleierte JAR-Datei?

8

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 ...:)

    
Jona 23.05.2011, 20:31
quelle

5 Antworten

15

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!

    
Jona 24.05.2011, 15:24
quelle
1

Das herauszufinden war nicht einfach, aber wenn man es einmal getan hat, ist es nicht so schwierig, die Schritte zu wiederholen:

  • Erstellen und erstellen Sie Ihr Android-Bibliotheksprojekt wie gewohnt
  • Erstellen Sie eine Datei proguard.cfg (das folgende ist ein Rezept, enthält aber einige wichtige Teile.

proguard.cfg Beispiel

%Vor%
  • auf einer Befehlszeile (dies ist auf Darwin ausgerichtet, sollte aber unter Windows
  • weitgehend identisch sein

...

%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.

    
john.k.doe 30.01.2014 08:54
quelle
0

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.

    
omermuhammed 23.05.2011 20:41
quelle
0

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

verwenden

Hier 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 ...

    
siliconeagle 23.05.2011 23:33
quelle
0

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%
Deep Verma 19.12.2012 09:34
quelle

Tags und Links