diff --git a/brut.apktool/apktool-lib/src/main/java/android/util/TypedValue.java b/brut.apktool/apktool-lib/src/main/java/android/util/TypedValue.java
index 3496aa40..2498e486 100644
--- a/brut.apktool/apktool-lib/src/main/java/android/util/TypedValue.java
+++ b/brut.apktool/apktool-lib/src/main/java/android/util/TypedValue.java
@@ -51,7 +51,11 @@ public class TypedValue {
* container.
*/
public static final int TYPE_FRACTION = 0x06;
-
+ /**
+ * The data holds a dynamic res table reference, which needs to be
+ * resolved before it can be used like TYPE_REFERENCE
+ */
+ public static final int TYPE_DYNAMIC_REFERENCE = 0x07;
/**
* Identifies the start of plain integer values. Any type value from this to
* {@link #TYPE_LAST_INT} means the data field holds a generic
diff --git a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResValueFactory.java b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResValueFactory.java
index 0a1c4f82..fd877636 100644
--- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResValueFactory.java
+++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/res/data/value/ResValueFactory.java
@@ -48,6 +48,8 @@ public class ResValueFactory {
return new ResFractionValue(value, rawValue);
case TypedValue.TYPE_INT_BOOLEAN:
return new ResBoolValue(value != 0, rawValue);
+ case TypedValue.TYPE_DYNAMIC_REFERENCE:
+ return newReference(value, rawValue);
}
if (type >= TypedValue.TYPE_FIRST_COLOR_INT