From 8eb2595f873c59288543bf19c707c241dc989cd5 Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Sun, 2 Feb 2020 19:26:14 -0800 Subject: [PATCH] Set the oat version based on the api level in AnalysisArguments This ensures the oat version is set to NOT_ART for api 19 and lower, and fixes deodexing for those api levels. --- baksmali/src/main/java/org/jf/baksmali/AnalysisArguments.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/baksmali/src/main/java/org/jf/baksmali/AnalysisArguments.java b/baksmali/src/main/java/org/jf/baksmali/AnalysisArguments.java index 8fc34582..d1e16845 100644 --- a/baksmali/src/main/java/org/jf/baksmali/AnalysisArguments.java +++ b/baksmali/src/main/java/org/jf/baksmali/AnalysisArguments.java @@ -34,6 +34,7 @@ package org.jf.baksmali; import com.beust.jcommander.Parameter; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; +import org.jf.dexlib2.VersionMap; import org.jf.dexlib2.analysis.ClassPath; import org.jf.dexlib2.analysis.ClassPathResolver; import org.jf.dexlib2.dexbacked.DexBackedDexFile; @@ -101,6 +102,8 @@ public class AnalysisArguments { if (container instanceof OatFile) { checkPackagePrivateAccess = true; oatVersion = ((OatFile) container).getOatVersion(); + } else { + oatVersion = VersionMap.mapApiToArtVersion(dexEntry.getDexFile().getOpcodes().api); } } else { // this should always be true for ART