summaryrefslogtreecommitdiffstats
path: root/src/main/com/tonicsystems
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/com/tonicsystems')
-rw-r--r--src/main/com/tonicsystems/jarjar/Main.java6
-rw-r--r--src/main/com/tonicsystems/jarjar/MainProcessor.java15
2 files changed, 19 insertions, 2 deletions
diff --git a/src/main/com/tonicsystems/jarjar/Main.java b/src/main/com/tonicsystems/jarjar/Main.java
index 117bdbb..1eaa3e3 100644
--- a/src/main/com/tonicsystems/jarjar/Main.java
+++ b/src/main/com/tonicsystems/jarjar/Main.java
@@ -90,7 +90,11 @@ public class Main {
List<PatternElement> rules = RulesFileParser.parse(rulesFile);
boolean verbose = Boolean.getBoolean("verbose");
boolean skipManifest = Boolean.getBoolean("skipManifest");
- MainProcessor proc = new MainProcessor(rules, verbose, skipManifest);
+ // ANDROID-BEGIN: b/146418363 Add an Android-specific transformer to strip compat annotation
+ boolean removeAndroidCompatAnnotations = Boolean.getBoolean("removeAndroidCompatAnnotations");
+ MainProcessor proc = new MainProcessor(rules, verbose, skipManifest,
+ removeAndroidCompatAnnotations);
+ // ANDROID-END: b/146418363 Add an Android-specific transformer to strip compat annotation
StandaloneJarProcessor.run(inJar, outJar, proc);
proc.strip(outJar);
}
diff --git a/src/main/com/tonicsystems/jarjar/MainProcessor.java b/src/main/com/tonicsystems/jarjar/MainProcessor.java
index de15924..2778cc5 100644
--- a/src/main/com/tonicsystems/jarjar/MainProcessor.java
+++ b/src/main/com/tonicsystems/jarjar/MainProcessor.java
@@ -21,14 +21,23 @@ import java.io.File;
import java.io.IOException;
import java.util.*;
+import com.android.jarjar.RemoveAndroidCompatAnnotationsJarTransformer;
+
class MainProcessor implements JarProcessor
{
private final boolean verbose;
private final JarProcessorChain chain;
private final KeepProcessor kp;
private final Map<String, String> renames = new HashMap<String, String>();
-
+
+ // ANDROID-BEGIN: b/146418363 Add an Android-specific transformer to strip compat annotation
public MainProcessor(List<PatternElement> patterns, boolean verbose, boolean skipManifest) {
+ this(patterns, verbose, skipManifest, false /* removeAndroidCompatAnnotations */);
+ }
+
+ public MainProcessor(List<PatternElement> patterns, boolean verbose, boolean skipManifest,
+ boolean removeAndroidCompatAnnotations) {
+ // ANDROID-END: b/146418363 Add an Android-specific transformer to strip compat annotation
this.verbose = verbose;
List<Zap> zapList = new ArrayList<Zap>();
List<Rule> ruleList = new ArrayList<Rule>();
@@ -52,6 +61,10 @@ class MainProcessor implements JarProcessor
if (kp != null)
processors.add(kp);
processors.add(new ZapProcessor(zapList));
+ // ANDROID-BEGIN: b/146418363 Add an Android-specific transformer to strip compat annotation
+ if (removeAndroidCompatAnnotations)
+ processors.add(new RemoveAndroidCompatAnnotationsJarTransformer(pr));
+ // ANDROID-END: b/146418363 Add an Android-specific transformer to strip compat annotation
processors.add(new JarTransformerChain(new RemappingClassTransformer[]{ new RemappingClassTransformer(pr) }));
processors.add(new ResourceProcessor(pr));
chain = new JarProcessorChain(processors.toArray(new JarProcessor[processors.size()]));