From 3dea579f66da9c76f5f34e842ea1351c42237317 Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Thu, 15 Oct 2015 08:58:19 -0500 Subject: [PATCH] Prevent casting Strings/Styles to Attrs - refs #957, #1060 --- .../main/java/brut/androlib/res/data/value/ResStyleValue.java | 2 +- .../src/main/java/brut/androlib/res/decoder/ResAttrDecoder.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResStyleValue.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResStyleValue.java index a58f2786..ae1d3cdb 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResStyleValue.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResStyleValue.java @@ -59,7 +59,7 @@ public class ResStyleValue extends ResBagValue implements // hacky-fix remove bad ReferenceVars if (resource.contains("ResReferenceValue@")) { continue; - } else if (resource.contains("ResStringValue@")) { + } else if (resource.contains("ResStringValue@") || resource.contains("ResStyleValue@")) { name = "@" + spec.getFullName(res.getResSpec().getPackage(), false); } else { ResAttr attr = (ResAttr) spec.getDefaultResource().getValue(); diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResAttrDecoder.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResAttrDecoder.java index 56abffd9..f42397b9 100644 --- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResAttrDecoder.java +++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/decoder/ResAttrDecoder.java @@ -39,7 +39,7 @@ public class ResAttrDecoder { .getResSpec(attrResId).getDefaultResource().getValue(); decoded = attr.convertToResXmlFormat(resValue); - } catch (UndefinedResObject ex) { + } catch (UndefinedResObject | ClassCastException ex) { // ignored } }