From e1f7ac355e427181a1f482d1272ee9a700cb2c6f Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Mon, 8 May 2017 08:44:21 -0400 Subject: [PATCH] add support for preview builds (N, O) --- .../src/main/java/brut/androlib/Androlib.java | 18 +++++++++++++++++- .../brut/androlib/res/data/ResConfigFlags.java | 3 +++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/Androlib.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/Androlib.java index d51cb8d4..9c61d964 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/Androlib.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/Androlib.java @@ -19,6 +19,7 @@ package brut.androlib; import brut.androlib.meta.MetaInfo; import brut.androlib.meta.UsesFramework; import brut.androlib.res.AndrolibResources; +import brut.androlib.res.data.ResConfigFlags; import brut.androlib.res.data.ResPackage; import brut.androlib.res.data.ResTable; import brut.androlib.res.data.ResUnknownFiles; @@ -279,7 +280,22 @@ public class Androlib { mAndRes.setSharedLibrary(meta.sharedLibrary); if (meta.sdkInfo != null && meta.sdkInfo.get("minSdkVersion") != null) { - mMinSdkVersion = Integer.parseInt(meta.sdkInfo.get("minSdkVersion")); + String minSdkVersion = meta.sdkInfo.get("minSdkVersion"); + + // Preview builds use short letter for API versions + switch (minSdkVersion) { + case "M": + mMinSdkVersion = ResConfigFlags.SDK_MNC; + break; + case "N": + mMinSdkVersion = ResConfigFlags.SDK_NOUGAT; + break; + case "O": + mMinSdkVersion = ResConfigFlags.SDK_O; + break; + default: + mMinSdkVersion = Integer.parseInt(meta.sdkInfo.get("minSdkVersion")); + } } if (outFile == null) { diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResConfigFlags.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResConfigFlags.java index 0c4aaf5f..333c3aa7 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResConfigFlags.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/ResConfigFlags.java @@ -507,6 +507,9 @@ public class ResConfigFlags { public final static byte SDK_LOLLIPOP = 21; public final static byte SDK_LOLLIPOP_MR1 = 22; public final static byte SDK_MNC = 23; + public final static byte SDK_NOUGAT = 24; + public final static byte SDK_NOUGAT_MR1 = 25; + public final static byte SDK_O = 26; public final static byte ORIENTATION_ANY = 0; public final static byte ORIENTATION_PORT = 1;