File: downloads.html

package info (click to toggle)
proguard 3.4-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 4,036 kB
  • ctags: 6,190
  • sloc: java: 33,225; xml: 279; makefile: 17; sh: 2
file content (260 lines) | stat: -rw-r--r-- 10,081 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
<!doctype html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-style-type" content="text/css">
<link rel="stylesheet" type="text/css" href="style.css">
<title>ProGuard Downloads</title>
</head>
<body>

<h2>Downloads</h2>

<b>ProGuard</b> is distributed under the GNU General Public License.
Please refer to the <a href="license.html">license page</a> for more details.
<p>
<b>ProGuard</b> is written in Java. It requires a Java 2 runtime environment.
<p>
You can download the latest release (containing the program jar, the
documentation you're reading now, examples, and source code) from this
location:
<p>
<center><a href="http://sourceforge.net/project/showfiles.php?group_id=54750"
target="other">Download section</a> (at <a
href="http://sourceforge.net/projects/proguard/"
target="other">SourceForge</a>)</center>
<p>

If you're still working with an older version of <b>ProGuard</b>, check out
the summary of changes below, to see if you're missing something essential.
Better look at the up-to-date <a
href="http://proguard.sourceforge.net/downloads.html">on-line version</a> if
you're reading a local copy of this page. The download section may also contain
updates with sub-minor version numbers. These versions are typically released
shortly after their parent versions, for applying emergency fixes.
<p>

<h3>Version 3.4</h3>
<ul>
<li>Extended optimizations: removing duplicate code within methods.
<li>Extended regular expressions for class names to comma-separated lists.
<li>Now automatically keeping arguments of specified methods.
<li>Added verbose statistics for optimizations.
<li>Added boilerplate Number optimizations in GUI.
<li>Fixed <code>Class.forName</code> detection.
<li>Fixed incremental obfuscation bug.
<li>Fixed optimization bug causing stack verification errors.
<li>Fixed optimization bugs related to removal of unused parameters.
<li>Fixed exception when optimizing code with many local variables.
<li>Fixed exception when saving configuration with initializers in GUI.
<li>Updated documentation and examples.
</ul>

<h3>Version 3.3</h3>
<ul>
<li>Extended optimizations: making methods private and static when possible,
    making classes static when possible, removing unused parameters.
<li>Made file names relative to the configuration files in which they are
    specified. Added <code>-basedirectory</code> option.
<li>Added <code>-whyareyoukeeping</code> option to get details on why given
    classes and class members are being kept.
<li>Added warnings for misplaced class files.
<li>Improved printing of notes for <code>Class.forName</code> constructs.
<li>Implemented '<code>assumenosideeffects</code>' nested element in Ant task.
<li>Improved processing of annotations.
<li>Fixed reading and writing of parameter annotations.
<li>Fixed various optimization bugs.
<li>Fixed wildcards not matching '-' character.
<li>Fixed wildcard bug and checkbox bugs in GUI.
<li>Setting file chooser defaults in GUI.
<li>Leaving room for growBox in GUI on Mac OS X.
<li>Properly closing configuration files.
<li>Updated documentation and examples.
</ul>

<h3>Version 3.2</h3>
<ul>
<li>Fixed JDK5.0 processing bugs.
<li>Fixed optimization bugs.
<li>Fixed relative paths in Ant task.
<li>Improved speed of shrinking step.
<li>Updated documentation and examples.
</ul>

<h3>Version 3.1</h3>
<ul>
<li>Improved obfuscation and shrinking of private class members.
<li>Added inlining of interfaces with single implementations.
<li>Added option to specify obfuscation dictionary.
<li>Added option to read package visible library class members.
<li>Extended support for JDK5.0 attributes.
<li>Fixed various optimization bugs.
<li>Modified Ant task to accept paths instead of filesets.
<li>Fixed two Ant task bugs.
<li>Updated documentation and examples.
</ul>

<h3>Version 3.0</h3>
<ul>
<li>Added bytecode optimization step, between shrinking step and obfuscation
    step.
<li>Generalized filtered recursive reading and writing of jars, wars, ears,
    zips, and directories.
<li>Added support for grouping input and output jars, wars, ears, zips, and
    directories.
<li>Added support for applying mapping files to library classes.
<li>Removed <code>-resourcejars</code> option. Resources should now be read
    using regular <code>-injars</code> options, using filters if necessary.
<li>Rewrote Ant task. Input and output modification dates are not checked at
    the moment. Minor changes in XML schema:
    <ul>
    <li>Filters now specified using attributes.
    <li>'<code>outjars</code>' now nested element instead of attribute.
    <li>'<code>type</code>' attribute of <code>&lt;method&gt;</code> element no
        longer defaults to '<code>void</code>'.
    <li><code>&lt;</code> and <code>&gt;</code> characters now have to be
        encoded in embedded configurations.
    <li><code>&lt;proguardconfiguration&gt;</code> task no longer accepts
        attributes.
    </ul>
<li>Updated J2ME WTK plugin, now customizable through configuration file.
<li>Updated GUI.
<li>Fixed various processing bugs.
<li>Fixed ReTrace parsing bugs.
<li>Improved jar compression.
<li>Updated documentation and examples.
</ul>

<h3>Version 2.1</h3>
<ul>
<li>Added support for JDK1.5 classes.
<li>Added additional wildcard for matching primitive types.
<li>Added possibility to switch off notes about duplicate class definitions.
<li>Fixed use of multiple filters on output jars.
<li>Fixed option to keep all attributes.
<li>Fixed various Ant task bugs.
<li>Updated documentation and examples.
</ul>

<h3>Version 2.0</h3>
<ul>
<li>Added a graphical user interface for ProGuard and ReTrace.
<li>Added <code>-applymapping</code> option for incremental obfuscation.
<li>Added support for filtering input and output files.
<li>Added support for the J++ <code>SourceDir</code> attribute.
<li>Improved detection of <code>.class</code> constructs.
<li>Improved handling of misplaced manifest files.
<li>Improved implementation of ReTrace.
<li>Worked around String UTF-8 encoding bug affecting foreign characters.
<li>Fixed exception when ignoring warnings.
<li>Fixed various Ant task bugs.
<li>Updated documentation and examples.
</ul>

<h3>Version 1.7</h3>
<ul>
<li>Fixed various Ant task bugs.
<li>Fixed ClassCastException due to explicitly used abstract classes with
    implicitly used interfaces targeted at JRE1.2 (the default in JDK1.4).
<li>Fixed <code>-defaultpackage</code> bug for protected classes and class
    members.
<li>Fixed ReTrace bug when retracing without line number tables.
<li>Worked around zip package problems with duplicate out entries and rogue
    manifest files.
<li>Added work-around for handling malformed legacy interface class files.
<li>Updated documentation and examples.
</ul>

<h3>Version 1.6</h3>
<ul>
<li>Added support for Ant.
<li>Added support for the J2ME Wireless Toolkit.
<li>Added support for reading and writing directory hierarchies.
<li>Added option for specifying resource jars and directories.
<li>Added support for wildcards in class member specifications.
<li>Improved handling of the <code>-defaultpackage</code> option.
<li>Improved stack trace parsing in ReTrace tool.
<li>Fixed processing of libraries containing public as well as non-public
    extensions of non-public classes.
<li>Fixed examples for processing libraries, midlets, and serializable code.
<li>Updated documentation and examples.
</ul>

<h3>Version 1.5</h3>
<ul>
<li>Fixed processing of retrofitted library interfaces.
<li>Fixed processing of <code>.class</code> constructs in internal classes
    targeted at JRE1.2 (the default in JDK1.4).
<li>Fixed <code>-dump</code> option when <code>-outjar</code> option is not
    present.
<li>Updated documentation and examples.
</ul>

<h3>Version 1.4</h3>
<ul>
<li>Now copying resource files over from the input jars to the output jar.
<li>Added option to obfuscate using lower-case class names only.
<li>Added better option for obfuscating native methods.
<li>Added option not to ignore non-public library classes.
<li>Added automatic <code>.class</code> detection for classes compiled with
    Jikes.
<li>Updated documentation and examples.
</ul>

<h3>Version 1.3</h3>
<ul>
<li>Added support for wildcards in class names.
<li>Added tool to de-obfuscate stack traces.
<li>Added options to print processing information to files.
<li>Added option to rename source file attributes.
<li>Fixed processing of implicitly used interfaces targeted at JRE1.2 (the
    default in JDK1.4)
<li>Fixed processing of configurations with negated access modifiers.
<li>Fixed duplicate class entry bug.
<li>Updated documentation and examples.
</ul>

<h3>Version 1.2</h3>
<ul>
<li>Improved speed.
<li>Fixed processing of classes targeted at JRE1.2 (the default in JDK1.4)
    with references to their own subclasses.
<li>Fixed processing of static initializers in J2ME MIDP applications.
<li>Fixed processing of retrofitted interfaces (again).
<li>Added more flexible handling of white space in configuration.
<li>Updated documentation.
</ul>

<h3>Version 1.1</h3>
<ul>
<li>Added automatic detection of <code>Class.forName("MyClass")</code>,
    <code>MyClass.class</code>, and
    <code>(MyClass)Class.forName(variable).newInstance()</code> constructs.
    This greatly simplifies configuration.
<li>Added options to keep class names and class member names without affecting
    any shrinking. They are mostly useful for native methods and serializable
    classes.
<li>Fixed processing of retrofitted interfaces, like:
    <pre>
    class A     { m() {...} }
    interface I { m();      }
    class B extends A implements I
    </pre>
<li>Added handling of missing/invalid manifest file in input jar.
<li>Updated documentation and examples.
</ul>

<h3>Version 1.0</h3>
<ul>
<li>First public release, based on class parsing code from Mark Welsh's
    <b>RetroGuard</b>.
</ul>

<hr>
<address>
Copyright &copy; 2002-2005
<a href="http://www.graphics.cornell.edu/~eric/">Eric Lafortune</a>.
</address>

</body>
</html>