diff --git a/CHANGES b/CHANGES index fa438def..9b8ae2c5 100644 --- a/CHANGES +++ b/CHANGES @@ -55,6 +55,7 @@ v2.0.0 (TBA) -Fixed (issue #329) - Fixed issue with incorrectly identifying similarly named strings as ResFileValues. -Fixed (issue #590) - Fixed issue with segfaulting aapt with certain apks. -Fixed (issue #545) - Fixed issue with undefined attrs w/ updated internal frameworks +-Fixed (issue #702) - Fixed improper handling of MNC_ZERO which caused dupe`d resources -Fixed issue with APKs with multiple dex files. -Fixed issue with using Apktool without smali/baksmali for ApktoolProperties (Thanks teprrr) -Fixed issue with non-URI standard characters in apk name (Thanks rover12421) 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 9a353372..05986ae6 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 @@ -142,8 +142,8 @@ public class ResConfigFlags { StringBuilder ret = new StringBuilder(); if (mcc != 0) { ret.append("-mcc").append(String.format("%03d", mcc)); - if (mcc != MNC_ZERO) { - if (mnc != 0 && mnc != -1) { + if (mnc != MNC_ZERO) { + if (mnc != 0) { ret.append("-mnc"); if (mnc > 0 && mnc < 10) { ret.append(String.format("%02d", mnc)); @@ -151,6 +151,8 @@ public class ResConfigFlags { ret.append(String.format("%03d", mnc)); } } + } else { + ret.append("-mnc00"); } } if (language[0] != '\00') { @@ -438,7 +440,7 @@ public class ResConfigFlags { public final static int DENSITY_ANY = 0xFFFE; public final static int DENSITY_NONE = 0xFFFF; - public final static int MNC_ZERO = 0xFFFF; + public final static int MNC_ZERO = -1; public final static short MASK_LAYOUTDIR = 0xc0; public final static short SCREENLAYOUT_LAYOUTDIR_ANY = 0x00; diff --git a/brut.apktool/apktool-lib/src/test/java/brut/androlib/BuildAndDecodeTest.java b/brut.apktool/apktool-lib/src/test/java/brut/androlib/BuildAndDecodeTest.java index 6620cc7e..4ee4e694 100644 --- a/brut.apktool/apktool-lib/src/test/java/brut/androlib/BuildAndDecodeTest.java +++ b/brut.apktool/apktool-lib/src/test/java/brut/androlib/BuildAndDecodeTest.java @@ -93,6 +93,11 @@ public class BuildAndDecodeTest { compareValuesFiles("values-mcc001/colors.xml"); } + @Test + public void bug702Test() throws BrutException { + compareValuesFiles("values-mcc001-mnc00/strings.xml"); + } + @Test public void valuesDimensTest() throws BrutException { compareValuesFiles("values-mcc001/dimens.xml"); diff --git a/brut.apktool/apktool-lib/src/test/resources/brut/apktool/testapp/res/values-mcc001-mnc00/strings.xml b/brut.apktool/apktool-lib/src/test/resources/brut/apktool/testapp/res/values-mcc001-mnc00/strings.xml new file mode 100644 index 00000000..35eaf5ef --- /dev/null +++ b/brut.apktool/apktool-lib/src/test/resources/brut/apktool/testapp/res/values-mcc001-mnc00/strings.xml @@ -0,0 +1,4 @@ + + + test1 + \ No newline at end of file