diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java index 89ea0a92..14c4bbb4 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/AndrolibResources.java @@ -633,6 +633,8 @@ final public class AndrolibResources { return ResConfigFlags.SDK_OREO; case "P": return ResConfigFlags.SDK_P; + case "Q": + return ResConfigFlags.SDK_Q; default: return Integer.parseInt(sdkVersion); } 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 0b5c7a9a..5ee08640 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 @@ -538,6 +538,10 @@ public class ResConfigFlags { public final static byte SDK_OREO_MR1 = 27; public final static byte SDK_P = 28; + // AOSP has this as 10,000 for dev purposes. + // platform_frameworks_base/commit/ad5b4ba2a2dda066dbefec4195b86747e3d7d225#diff-b2b93844110603a7b050476c83c1ee3a + public final static int SDK_Q = 10000; + public final static byte ORIENTATION_ANY = 0; public final static byte ORIENTATION_PORT = 1; public final static byte ORIENTATION_LAND = 2; diff --git a/brut.apktool/apktool-lib/src/test/java/brut/androlib/androlib/InvalidSdkBoundingTest.java b/brut.apktool/apktool-lib/src/test/java/brut/androlib/androlib/InvalidSdkBoundingTest.java index c5f888b2..f45c4855 100644 --- a/brut.apktool/apktool-lib/src/test/java/brut/androlib/androlib/InvalidSdkBoundingTest.java +++ b/brut.apktool/apktool-lib/src/test/java/brut/androlib/androlib/InvalidSdkBoundingTest.java @@ -86,4 +86,15 @@ public class InvalidSdkBoundingTest extends BaseTest { androlibResources.setSdkInfo(sdkInfo); assertEquals("26", androlibResources.checkTargetSdkVersionBounds()); } + + @Test + public void checkForSdkQInsaneTestValue() { + AndrolibResources androlibResources = new AndrolibResources(); + + Map sdkInfo = new LinkedHashMap<>(); + sdkInfo.put("targetSdkVersion", "Q"); + + androlibResources.setSdkInfo(sdkInfo); + assertEquals("10000", androlibResources.checkTargetSdkVersionBounds()); + } } \ No newline at end of file