diff options
Diffstat (limited to 'src/main/com/tonicsystems')
-rw-r--r-- | src/main/com/tonicsystems/jarjar/Main.java | 6 | ||||
-rw-r--r-- | src/main/com/tonicsystems/jarjar/MainProcessor.java | 15 |
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()])); |