From 48e1afd6b14d6da07b8f0b4544e78533ac454866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ryszard=20Wi=C5=9Bniewski?= Date: Fri, 12 Mar 2010 12:47:56 +0100 Subject: [PATCH] Added current version. --- .gitignore | 5 + src/android/content/res/StringBlock.java | 74 ++++ src/android/content/res/XmlBlock.java | 364 ++++++++++++++++++ src/android/util/TypedValue.java | 234 +++++++++++ src/brut/androlib/Androlib.java | 152 ++++++++ src/brut/androlib/AndrolibException.java | 40 ++ src/brut/androlib/AndrolibSmali.java | 50 +++ src/brut/androlib/ApkFile.java | 146 +++++++ src/brut/androlib/res/AndrolibResources.java | 218 +++++++++++ src/brut/androlib/res/ResSmaliUpdater.java | 146 +++++++ src/brut/androlib/res/data/ResConfig.java | 69 ++++ .../androlib/res/data/ResConfigFlags.java | 342 ++++++++++++++++ src/brut/androlib/res/data/ResID.java | 71 ++++ src/brut/androlib/res/data/ResPackage.java | 195 ++++++++++ src/brut/androlib/res/data/ResResSpec.java | 108 ++++++ src/brut/androlib/res/data/ResResource.java | 58 +++ src/brut/androlib/res/data/ResTable.java | 97 +++++ src/brut/androlib/res/data/ResType.java | 294 ++++++++++++++ src/brut/androlib/res/data/ResValuesFile.java | 85 ++++ .../res/data/value/ResArrayValue.java | 65 ++++ src/brut/androlib/res/data/value/ResAttr.java | 100 +++++ .../res/data/value/ResAttrFactory.java | 42 ++ .../androlib/res/data/value/ResBagValue.java | 42 ++ .../androlib/res/data/value/ResBoolValue.java | 39 ++ .../res/data/value/ResColorValue.java | 32 ++ .../androlib/res/data/value/ResEnumAttr.java | 58 +++ .../androlib/res/data/value/ResFileValue.java | 43 +++ .../res/data/value/ResFloatValue.java | 39 ++ .../androlib/res/data/value/ResIdValue.java | 36 ++ .../androlib/res/data/value/ResIntValue.java | 45 +++ .../androlib/res/data/value/ResMapAttr.java | 61 +++ .../res/data/value/ResPluralsValue.java | 75 ++++ .../res/data/value/ResReferenceValue.java | 62 +++ .../res/data/value/ResScalarValue.java | 50 +++ .../androlib/res/data/value/ResSetAttr.java | 67 ++++ .../res/data/value/ResStringValue.java | 45 +++ .../res/data/value/ResStyleValue.java | 62 +++ .../androlib/res/data/value/ResValue.java | 25 ++ .../res/data/value/ResValueFactory.java | 157 ++++++++ .../res/data/value/ResXmlPrintable.java | 27 ++ .../res/data/value/ResXmlSerializable.java | 31 ++ .../res/decoder/JniPackageDecoder.java | 83 ++++ .../androlib/res/decoder/ResFileDecoder.java | 87 +++++ .../res/decoder/ResRawStreamDecoder.java | 38 ++ .../res/decoder/ResStreamDecoder.java | 30 ++ .../decoder/ResStreamDecoderContainer.java | 49 +++ .../res/decoder/ResXmlSerializer.java | 109 ++++++ .../res/decoder/ResXmlStreamDecoder.java | 80 ++++ src/brut/androlib/res/jni/JniBagItem.java | 31 ++ src/brut/androlib/res/jni/JniConfig.java | 66 ++++ src/brut/androlib/res/jni/JniEntry.java | 52 +++ src/brut/androlib/res/jni/JniPackage.java | 33 ++ .../androlib/res/jni/JniPackageGroup.java | 29 ++ src/brut/androlib/res/jni/JniType.java | 33 ++ src/resources.arsc | Bin 0 -> 1768940 bytes 55 files changed, 4671 insertions(+) create mode 100644 .gitignore create mode 100644 src/android/content/res/StringBlock.java create mode 100644 src/android/content/res/XmlBlock.java create mode 100644 src/android/util/TypedValue.java create mode 100644 src/brut/androlib/Androlib.java create mode 100644 src/brut/androlib/AndrolibException.java create mode 100644 src/brut/androlib/AndrolibSmali.java create mode 100644 src/brut/androlib/ApkFile.java create mode 100644 src/brut/androlib/res/AndrolibResources.java create mode 100644 src/brut/androlib/res/ResSmaliUpdater.java create mode 100644 src/brut/androlib/res/data/ResConfig.java create mode 100644 src/brut/androlib/res/data/ResConfigFlags.java create mode 100644 src/brut/androlib/res/data/ResID.java create mode 100644 src/brut/androlib/res/data/ResPackage.java create mode 100644 src/brut/androlib/res/data/ResResSpec.java create mode 100644 src/brut/androlib/res/data/ResResource.java create mode 100644 src/brut/androlib/res/data/ResTable.java create mode 100644 src/brut/androlib/res/data/ResType.java create mode 100644 src/brut/androlib/res/data/ResValuesFile.java create mode 100644 src/brut/androlib/res/data/value/ResArrayValue.java create mode 100644 src/brut/androlib/res/data/value/ResAttr.java create mode 100644 src/brut/androlib/res/data/value/ResAttrFactory.java create mode 100644 src/brut/androlib/res/data/value/ResBagValue.java create mode 100644 src/brut/androlib/res/data/value/ResBoolValue.java create mode 100644 src/brut/androlib/res/data/value/ResColorValue.java create mode 100644 src/brut/androlib/res/data/value/ResEnumAttr.java create mode 100644 src/brut/androlib/res/data/value/ResFileValue.java create mode 100644 src/brut/androlib/res/data/value/ResFloatValue.java create mode 100644 src/brut/androlib/res/data/value/ResIdValue.java create mode 100644 src/brut/androlib/res/data/value/ResIntValue.java create mode 100644 src/brut/androlib/res/data/value/ResMapAttr.java create mode 100644 src/brut/androlib/res/data/value/ResPluralsValue.java create mode 100644 src/brut/androlib/res/data/value/ResReferenceValue.java create mode 100644 src/brut/androlib/res/data/value/ResScalarValue.java create mode 100644 src/brut/androlib/res/data/value/ResSetAttr.java create mode 100644 src/brut/androlib/res/data/value/ResStringValue.java create mode 100644 src/brut/androlib/res/data/value/ResStyleValue.java create mode 100644 src/brut/androlib/res/data/value/ResValue.java create mode 100644 src/brut/androlib/res/data/value/ResValueFactory.java create mode 100644 src/brut/androlib/res/data/value/ResXmlPrintable.java create mode 100644 src/brut/androlib/res/data/value/ResXmlSerializable.java create mode 100644 src/brut/androlib/res/decoder/JniPackageDecoder.java create mode 100644 src/brut/androlib/res/decoder/ResFileDecoder.java create mode 100644 src/brut/androlib/res/decoder/ResRawStreamDecoder.java create mode 100644 src/brut/androlib/res/decoder/ResStreamDecoder.java create mode 100644 src/brut/androlib/res/decoder/ResStreamDecoderContainer.java create mode 100644 src/brut/androlib/res/decoder/ResXmlSerializer.java create mode 100644 src/brut/androlib/res/decoder/ResXmlStreamDecoder.java create mode 100644 src/brut/androlib/res/jni/JniBagItem.java create mode 100644 src/brut/androlib/res/jni/JniConfig.java create mode 100644 src/brut/androlib/res/jni/JniEntry.java create mode 100644 src/brut/androlib/res/jni/JniPackage.java create mode 100644 src/brut/androlib/res/jni/JniPackageGroup.java create mode 100644 src/brut/androlib/res/jni/JniType.java create mode 100644 src/resources.arsc diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..5c33f50f --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/nbproject +/build +/dist +/build.xml + diff --git a/src/android/content/res/StringBlock.java b/src/android/content/res/StringBlock.java new file mode 100644 index 00000000..2a92db75 --- /dev/null +++ b/src/android/content/res/StringBlock.java @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.content.res; + +import brut.util.Jar; + + +/** + * Conveniences for retrieving data out of a compiled string resource. + * + * {@hide} + */ +final class StringBlock { + static { + Jar.load("/libAndroid.so"); + } + + private final int mNative; + private final boolean mOwnsNative; + private CharSequence[] mStrings; + + public CharSequence get(int idx) { + synchronized (this) { + if (mStrings != null) { + CharSequence res = mStrings[idx]; + if (res != null) { + return res; + } + } else { + final int num = nativeGetSize(mNative); + mStrings = new CharSequence[num]; + } + String str = nativeGetString(mNative, idx); + CharSequence res = str; + mStrings[idx] = res; + return res; + } + } + + protected void finalize() throws Throwable { + if (mOwnsNative) { + nativeDestroy(mNative); + } + } + + /** + * Create from an existing string block native object. This is + * -extremely- dangerous -- only use it if you absolutely know what you + * are doing! The given native object must exist for the entire lifetime + * of this newly creating StringBlock. + */ + StringBlock(int obj, boolean useSparse) { + mNative = obj; + mOwnsNative = false; + } + + private static final native int nativeGetSize(int obj); + private static final native String nativeGetString(int obj, int idx); + private static final native void nativeDestroy(int obj); +} diff --git a/src/android/content/res/XmlBlock.java b/src/android/content/res/XmlBlock.java new file mode 100644 index 00000000..9172dfc2 --- /dev/null +++ b/src/android/content/res/XmlBlock.java @@ -0,0 +1,364 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.content.res; + +import android.util.TypedValue; + +import brut.util.Jar; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; + +/** + * Wrapper around a compiled XML file. + * + * {@hide} + */ +final public class XmlBlock { + static { + Jar.load("/libAndroid.so"); + } + + private static final boolean DEBUG=false; + + public XmlBlock(byte[] data) { + mNative = nativeCreate(data, 0, data.length); + mStrings = new StringBlock(nativeGetStringBlock(mNative), false); + } + + public XmlBlock(byte[] data, int offset, int size) { + mNative = nativeCreate(data, offset, size); + mStrings = new StringBlock(nativeGetStringBlock(mNative), false); + } + + public void close() { + synchronized (this) { + if (mOpen) { + mOpen = false; + decOpenCountLocked(); + } + } + } + + private void decOpenCountLocked() { + mOpenCount--; + if (mOpenCount == 0) { + nativeDestroy(mNative); + } + } + + public XmlPullParser newParser() { + synchronized (this) { + if (mNative != 0) { + return new Parser(nativeCreateParseState(mNative), this); + } + return null; + } + } + + /*package*/ final class Parser implements XmlPullParser { + Parser(int parseState, XmlBlock block) { + mParseState = parseState; + mBlock = block; + block.mOpenCount++; + } + + public void setFeature(String name, boolean state) throws XmlPullParserException { + if (FEATURE_PROCESS_NAMESPACES.equals(name) && state) { + return; + } + if (FEATURE_REPORT_NAMESPACE_ATTRIBUTES.equals(name) && state) { + return; + } + throw new XmlPullParserException("Unsupported feature: " + name); + } + public boolean getFeature(String name) { + if (FEATURE_PROCESS_NAMESPACES.equals(name)) { + return true; + } + if (FEATURE_REPORT_NAMESPACE_ATTRIBUTES.equals(name)) { + return true; + } + return false; + } + public void setProperty(String name, Object value) throws XmlPullParserException { + throw new XmlPullParserException("setProperty() not supported"); + } + public Object getProperty(String name) { + return null; + } + public void setInput(Reader in) throws XmlPullParserException { + throw new XmlPullParserException("setInput() not supported"); + } + public void setInput(InputStream inputStream, String inputEncoding) throws XmlPullParserException { + throw new XmlPullParserException("setInput() not supported"); + } + public void defineEntityReplacementText(String entityName, String replacementText) throws XmlPullParserException { + throw new XmlPullParserException("defineEntityReplacementText() not supported"); + } + public String getNamespacePrefix(int pos) throws XmlPullParserException { + throw new XmlPullParserException("getNamespacePrefix() not supported"); + } + public String getInputEncoding() { + return null; + } + public String getNamespace(String prefix) { + throw new RuntimeException("getNamespace() not supported"); + } + public int getNamespaceCount(int depth) throws XmlPullParserException { + throw new XmlPullParserException("getNamespaceCount() not supported"); + } + public String getPositionDescription() { + return "Binary XML file line #" + getLineNumber(); + } + public String getNamespaceUri(int pos) throws XmlPullParserException { + throw new XmlPullParserException("getNamespaceUri() not supported"); + } + public int getColumnNumber() { + return -1; + } + public int getDepth() { + return mDepth; + } + public String getText() { + int id = nativeGetText(mParseState); + return id >= 0 ? mStrings.get(id).toString() : null; + } + public int getLineNumber() { + return nativeGetLineNumber(mParseState); + } + public int getEventType() throws XmlPullParserException { + return mEventType; + } + public boolean isWhitespace() throws XmlPullParserException { + // whitespace was stripped by aapt. + return false; + } + public String getPrefix() { + throw new RuntimeException("getPrefix not supported"); + } + public char[] getTextCharacters(int[] holderForStartAndLength) { + String txt = getText(); + char[] chars = null; + if (txt != null) { + holderForStartAndLength[0] = 0; + holderForStartAndLength[1] = txt.length(); + chars = new char[txt.length()]; + txt.getChars(0, txt.length(), chars, 0); + } + return chars; + } + public String getNamespace() { + int id = nativeGetNamespace(mParseState); + return id >= 0 ? mStrings.get(id).toString() : ""; + } + public String getName() { + int id = nativeGetName(mParseState); + return id >= 0 ? mStrings.get(id).toString() : null; + } + public String getAttributeNamespace(int index) { + int id = nativeGetAttributeNamespace(mParseState, index); + if (DEBUG) System.out.println("getAttributeNamespace of " + index + " = " + id); + if (id >= 0) return mStrings.get(id).toString(); + else if (id == -1) return ""; + throw new IndexOutOfBoundsException(String.valueOf(index)); + } + public String getAttributeName(int index) { + int id = nativeGetAttributeName(mParseState, index); + if (DEBUG) System.out.println("getAttributeName of " + index + " = " + id); + if (id >= 0) return mStrings.get(id).toString(); + throw new IndexOutOfBoundsException(String.valueOf(index)); + } + public String getAttributePrefix(int index) { + throw new RuntimeException("getAttributePrefix not supported"); + } + public boolean isEmptyElementTag() throws XmlPullParserException { + // XXX Need to detect this. + return false; + } + public int getAttributeCount() { + return mEventType == START_TAG ? nativeGetAttributeCount(mParseState) : -1; + } + public String getAttributeValue(int index) { + int id = nativeGetAttributeStringValue(mParseState, index); + if (DEBUG) System.out.println("getAttributeValue of " + index + " = " + id); + if (id >= 0) return mStrings.get(id).toString(); + + // May be some other type... check and try to convert if so. + int t = nativeGetAttributeDataType(mParseState, index); + if (t == TypedValue.TYPE_NULL) { + throw new IndexOutOfBoundsException(String.valueOf(index)); + } + + int v = nativeGetAttributeData(mParseState, index); + return TypedValue.coerceToString(t, v); + } + public String getAttributeType(int index) { + return "CDATA"; + } + public boolean isAttributeDefault(int index) { + return false; + } + public int nextToken() throws XmlPullParserException,IOException { + return next(); + } + public String getAttributeValue(String namespace, String name) { + int idx = nativeGetAttributeIndex(mParseState, namespace, name); + if (idx >= 0) { + if (DEBUG) System.out.println("getAttributeName of " + + namespace + ":" + name + " index = " + idx); + if (DEBUG) System.out.println( + "Namespace=" + getAttributeNamespace(idx) + + "Name=" + getAttributeName(idx) + + ", Value=" + getAttributeValue(idx)); + return getAttributeValue(idx); + } + return null; + } + public int next() throws XmlPullParserException,IOException { + if (!mStarted) { + mStarted = true; + return START_DOCUMENT; + } + if (mParseState == 0) { + return END_DOCUMENT; + } + int ev = nativeNext(mParseState); + if (mDecNextDepth) { + mDepth--; + mDecNextDepth = false; + } + switch (ev) { + case START_TAG: + mDepth++; + break; + case END_TAG: + mDecNextDepth = true; + break; + } + mEventType = ev; + if (ev == END_DOCUMENT) { + // Automatically close the parse when we reach the end of + // a document, since the standard XmlPullParser interface + // doesn't have such an API so most clients will leave us + // dangling. + close(); + } + return ev; + } + public void require(int type, String namespace, String name) throws XmlPullParserException,IOException { + if (type != getEventType() + || (namespace != null && !namespace.equals( getNamespace () ) ) + || (name != null && !name.equals( getName() ) ) ) + throw new XmlPullParserException( "expected "+ TYPES[ type ]+getPositionDescription()); + } + public String nextText() throws XmlPullParserException,IOException { + if(getEventType() != START_TAG) { + throw new XmlPullParserException( + getPositionDescription() + + ": parser must be on START_TAG to read next text", this, null); + } + int eventType = next(); + if(eventType == TEXT) { + String result = getText(); + eventType = next(); + if(eventType != END_TAG) { + throw new XmlPullParserException( + getPositionDescription() + + ": event TEXT it must be immediately followed by END_TAG", this, null); + } + return result; + } else if(eventType == END_TAG) { + return ""; + } else { + throw new XmlPullParserException( + getPositionDescription() + + ": parser must be on START_TAG or TEXT to read text", this, null); + } + } + public int nextTag() throws XmlPullParserException,IOException { + int eventType = next(); + if(eventType == TEXT && isWhitespace()) { // skip whitespace + eventType = next(); + } + if (eventType != START_TAG && eventType != END_TAG) { + throw new XmlPullParserException( + getPositionDescription() + + ": expected start or end tag", this, null); + } + return eventType; + } + public void close() { + synchronized (mBlock) { + if (mParseState != 0) { + nativeDestroyParseState(mParseState); + mParseState = 0; + mBlock.decOpenCountLocked(); + } + } + } + + protected void finalize() throws Throwable { + close(); + } + + /*package*/ final CharSequence getPooledString(int id) { + return mStrings.get(id); + } + + /*package*/ int mParseState; + private final XmlBlock mBlock; + private boolean mStarted = false; + private boolean mDecNextDepth = false; + private int mDepth = 0; + private int mEventType = START_DOCUMENT; + } + + protected void finalize() throws Throwable { + close(); + } + + private final int mNative; + private final StringBlock mStrings; + private boolean mOpen = true; + private int mOpenCount = 1; + + private static final native int nativeCreate(byte[] data, + int offset, + int size); + private static final native int nativeGetStringBlock(int obj); + + private static final native int nativeCreateParseState(int obj); + private static final native int nativeNext(int state); + private static final native int nativeGetNamespace(int state); + private static final native int nativeGetName(int state); + private static final native int nativeGetText(int state); + private static final native int nativeGetLineNumber(int state); + private static final native int nativeGetAttributeCount(int state); + private static final native int nativeGetAttributeNamespace(int state, int idx); + private static final native int nativeGetAttributeName(int state, int idx); + private static final native int nativeGetAttributeDataType(int state, int idx); + private static final native int nativeGetAttributeData(int state, int idx); + private static final native int nativeGetAttributeStringValue(int state, int idx); + private static final native int nativeGetAttributeIndex(int state, String namespace, String name); + private static final native void nativeDestroyParseState(int state); + + private static final native void nativeDestroy(int obj); +} diff --git a/src/android/util/TypedValue.java b/src/android/util/TypedValue.java new file mode 100644 index 00000000..4179f7e5 --- /dev/null +++ b/src/android/util/TypedValue.java @@ -0,0 +1,234 @@ +/* + * Copyright (C) 2007 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.util; + +/** + * Container for a dynamically typed data value. Primarily used with + * {@link android.content.res.Resources} for holding resource values. + */ +public class TypedValue { + /** The value contains no data. */ + public static final int TYPE_NULL = 0x00; + + /** The data field holds a resource identifier. */ + public static final int TYPE_REFERENCE = 0x01; + /** The data field holds an attribute resource + * identifier (referencing an attribute in the current theme + * style, not a resource entry). */ + public static final int TYPE_ATTRIBUTE = 0x02; + /** The string field holds string data. In addition, if + * data is non-zero then it is the string block + * index of the string and assetCookie is the set of + * assets the string came from. */ + public static final int TYPE_STRING = 0x03; + /** The data field holds an IEEE 754 floating point number. */ + public static final int TYPE_FLOAT = 0x04; + /** The data field holds a complex number encoding a + * dimension value. */ + public static final int TYPE_DIMENSION = 0x05; + /** The data field holds a complex number encoding a fraction + * of a container. */ + public static final int TYPE_FRACTION = 0x06; + + /** Identifies the start of plain integer values. Any type value + * from this to {@link #TYPE_LAST_INT} means the + * data field holds a generic integer value. */ + public static final int TYPE_FIRST_INT = 0x10; + + /** The data field holds a number that was + * originally specified in decimal. */ + public static final int TYPE_INT_DEC = 0x10; + /** The data field holds a number that was + * originally specified in hexadecimal (0xn). */ + public static final int TYPE_INT_HEX = 0x11; + /** The data field holds 0 or 1 that was originally + * specified as "false" or "true". */ + public static final int TYPE_INT_BOOLEAN = 0x12; + + /** Identifies the start of integer values that were specified as + * color constants (starting with '#'). */ + public static final int TYPE_FIRST_COLOR_INT = 0x1c; + + /** The data field holds a color that was originally + * specified as #aarrggbb. */ + public static final int TYPE_INT_COLOR_ARGB8 = 0x1c; + /** The data field holds a color that was originally + * specified as #rrggbb. */ + public static final int TYPE_INT_COLOR_RGB8 = 0x1d; + /** The data field holds a color that was originally + * specified as #argb. */ + public static final int TYPE_INT_COLOR_ARGB4 = 0x1e; + /** The data field holds a color that was originally + * specified as #rgb. */ + public static final int TYPE_INT_COLOR_RGB4 = 0x1f; + + /** Identifies the end of integer values that were specified as color + * constants. */ + public static final int TYPE_LAST_COLOR_INT = 0x1f; + + /** Identifies the end of plain integer values. */ + public static final int TYPE_LAST_INT = 0x1f; + + /* ------------------------------------------------------------ */ + + /** Complex data: bit location of unit information. */ + public static final int COMPLEX_UNIT_SHIFT = 0; + /** Complex data: mask to extract unit information (after shifting by + * {@link #COMPLEX_UNIT_SHIFT}). This gives us 16 possible types, as + * defined below. */ + public static final int COMPLEX_UNIT_MASK = 0xf; + + /** {@link #TYPE_DIMENSION} complex unit: Value is raw pixels. */ + public static final int COMPLEX_UNIT_PX = 0; + /** {@link #TYPE_DIMENSION} complex unit: Value is Device Independent + * Pixels. */ + public static final int COMPLEX_UNIT_DIP = 1; + /** {@link #TYPE_DIMENSION} complex unit: Value is a scaled pixel. */ + public static final int COMPLEX_UNIT_SP = 2; + /** {@link #TYPE_DIMENSION} complex unit: Value is in points. */ + public static final int COMPLEX_UNIT_PT = 3; + /** {@link #TYPE_DIMENSION} complex unit: Value is in inches. */ + public static final int COMPLEX_UNIT_IN = 4; + /** {@link #TYPE_DIMENSION} complex unit: Value is in millimeters. */ + public static final int COMPLEX_UNIT_MM = 5; + + /** {@link #TYPE_FRACTION} complex unit: A basic fraction of the overall + * size. */ + public static final int COMPLEX_UNIT_FRACTION = 0; + /** {@link #TYPE_FRACTION} complex unit: A fraction of the parent size. */ + public static final int COMPLEX_UNIT_FRACTION_PARENT = 1; + + /** Complex data: where the radix information is, telling where the decimal + * place appears in the mantissa. */ + public static final int COMPLEX_RADIX_SHIFT = 4; + /** Complex data: mask to extract radix information (after shifting by + * {@link #COMPLEX_RADIX_SHIFT}). This give us 4 possible fixed point + * representations as defined below. */ + public static final int COMPLEX_RADIX_MASK = 0x3; + + /** Complex data: the mantissa is an integral number -- i.e., 0xnnnnnn.0 */ + public static final int COMPLEX_RADIX_23p0 = 0; + /** Complex data: the mantissa magnitude is 16 bits -- i.e, 0xnnnn.nn */ + public static final int COMPLEX_RADIX_16p7 = 1; + /** Complex data: the mantissa magnitude is 8 bits -- i.e, 0xnn.nnnn */ + public static final int COMPLEX_RADIX_8p15 = 2; + /** Complex data: the mantissa magnitude is 0 bits -- i.e, 0x0.nnnnnn */ + public static final int COMPLEX_RADIX_0p23 = 3; + + /** Complex data: bit location of mantissa information. */ + public static final int COMPLEX_MANTISSA_SHIFT = 8; + /** Complex data: mask to extract mantissa information (after shifting by + * {@link #COMPLEX_MANTISSA_SHIFT}). This gives us 23 bits of precision; + * the top bit is the sign. */ + public static final int COMPLEX_MANTISSA_MASK = 0xffffff; + + /* ------------------------------------------------------------ */ + + /** + * If {@link #density} is equal to this value, then the density should be + * treated as the system's default density value: {@link DisplayMetrics#DENSITY_DEFAULT}. + */ + public static final int DENSITY_DEFAULT = 0; + + /** + * If {@link #density} is equal to this value, then there is no density + * associated with the resource and it should not be scaled. + */ + public static final int DENSITY_NONE = 0xffff; + + /* ------------------------------------------------------------ */ + + /** The type held by this value, as defined by the constants here. + * This tells you how to interpret the other fields in the object. */ + public int type; + + private static final float MANTISSA_MULT = + 1.0f / (1<>TypedValue.COMPLEX_RADIX_SHIFT) + & TypedValue.COMPLEX_RADIX_MASK]; + } + + private static final String[] DIMENSION_UNIT_STRS = new String[] { + "px", "dip", "sp", "pt", "in", "mm" + }; + private static final String[] FRACTION_UNIT_STRS = new String[] { + "%", "%p" + }; + + /** + * Perform type conversion as per {@link #coerceToString()} on an + * explicitly supplied type and data. + * + * @param type The data type identifier. + * @param data The data value. + * + * @return String The coerced string value. If the value is + * null or the type is not known, null is returned. + */ + public static final String coerceToString(int type, int data) + { + switch (type) { + case TYPE_NULL: + return null; + case TYPE_REFERENCE: + return "@" + data; + case TYPE_ATTRIBUTE: + return "?" + data; + case TYPE_FLOAT: + return Float.toString(Float.intBitsToFloat(data)); + case TYPE_DIMENSION: + return Float.toString(complexToFloat(data)) + DIMENSION_UNIT_STRS[ + (data>>COMPLEX_UNIT_SHIFT)&COMPLEX_UNIT_MASK]; + case TYPE_FRACTION: + return Float.toString(complexToFloat(data)*100) + FRACTION_UNIT_STRS[ + (data>>COMPLEX_UNIT_SHIFT)&COMPLEX_UNIT_MASK]; + case TYPE_INT_HEX: + return "0x" + Integer.toHexString(data); + case TYPE_INT_BOOLEAN: + return data != 0 ? "true" : "false"; + } + + if (type >= TYPE_FIRST_COLOR_INT && type <= TYPE_LAST_COLOR_INT) { + return "#" + Integer.toHexString(data); + } else if (type >= TYPE_FIRST_INT && type <= TYPE_LAST_INT) { + return Integer.toString(data); + } + + return null; + } + +}; + diff --git a/src/brut/androlib/Androlib.java b/src/brut/androlib/Androlib.java new file mode 100644 index 00000000..191c1779 --- /dev/null +++ b/src/brut/androlib/Androlib.java @@ -0,0 +1,152 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib; + +import brut.androlib.res.AndrolibResources; +import brut.androlib.res.data.ResTable; +import brut.common.BrutException; +import brut.directory.Directory; +import brut.directory.DirectoryException; +import brut.directory.FileDirectory; +import brut.directory.Util; +import brut.directory.ZipRODirectory; +import brut.util.OS; +import java.io.File; +import java.io.IOException; + +/** + * @author Ryszard Wiśniewski + */ +public class Androlib { + private final String mAndroidJar; + private final AndrolibResources mAndRes; + private final AndrolibSmali mSmali; + + public Androlib(String androidJar) { + mAndroidJar = androidJar; + mAndRes = new AndrolibResources(mAndroidJar); + mSmali = new AndrolibSmali(); + } + + public void decode(String apkFileName, String outDirName) + throws AndrolibException { + decode(new File(apkFileName), new File(outDirName)); + } + + public void decode(File apkFile, File outDir) + throws AndrolibException { + try { + OS.rmdir(outDir); + } catch (BrutException ex) { + throw new AndrolibException(ex); + } + outDir.mkdirs(); + + ResTable resTable = mAndRes.getResTable(apkFile); + + mAndRes.decode(resTable, apkFile, outDir); + + File smaliDir = new File(outDir.getPath() + "/smali"); + mSmali.baksmali(apkFile, smaliDir); + mAndRes.tagSmaliResIDs(resTable, smaliDir); + + try { + Directory in = new ZipRODirectory(apkFile); + Directory out = new FileDirectory(outDir); + if (in.containsDir("assets")) { + Util.copyFiles(in.getDir("assets"), out.createDir("assets")); + } + if (in.containsDir("lib")) { + Util.copyFiles(in.getDir("lib"), out.createDir("lib")); + } + } catch (DirectoryException ex) { + throw new AndrolibException("Could not decode apk", ex); + } + } + + public void buildAll() throws AndrolibException { + clean(); + new File("build/apk").mkdirs(); + buildCopyRawFiles(); + buildResources(); + buildClasses(); + buildPackage(); + } + + public void clean() throws AndrolibException { + try { + OS.rmdir("build"); + OS.rmdir("dist"); + } catch (BrutException ex) { + throw new AndrolibException(ex); + } + } + + public void buildCopyRawFiles() throws AndrolibException { + try { + if (new File("assets").exists()) { + OS.cpdir("assets", "build/apk/assets"); + } + if (new File("lib").exists()) { + OS.cpdir("lib", "build/apk/lib"); + } + } catch (BrutException ex) { + throw new AndrolibException(ex); + } + } + + public void buildResources() throws AndrolibException { + File apkFile; + try { + apkFile = File.createTempFile("APKTOOL", null); + } catch (IOException ex) { + throw new AndrolibException(ex); + } + apkFile.delete(); + + mAndRes.aaptPackage( + apkFile, + new File("AndroidManifest.xml"), + new File("res") + ); + mAndRes.updateSmaliResIDs( + mAndRes.getResTable(apkFile), new File("smali")); + + try { + Util.copyFiles(new ZipRODirectory(apkFile), + new FileDirectory("build/apk")); + } catch (DirectoryException ex) { + throw new AndrolibException(ex); + } + + apkFile.delete(); + } + + public void buildClasses() throws AndrolibException { + new AndrolibSmali().smali("smali", "build/apk/classes.dex"); + } + + public void buildPackage() throws AndrolibException { + File distDir = new File("dist"); + if (! distDir.exists()) { + distDir.mkdirs(); + } + mAndRes.aaptPackage(new File("dist/out.apk"), null, null, + new File("build/apk"), false); + } +} diff --git a/src/brut/androlib/AndrolibException.java b/src/brut/androlib/AndrolibException.java new file mode 100644 index 00000000..846457ca --- /dev/null +++ b/src/brut/androlib/AndrolibException.java @@ -0,0 +1,40 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib; + +import brut.common.BrutException; + +/** + * @author Ryszard Wiśniewski + */ +public class AndrolibException extends BrutException { + public AndrolibException() { + } + + public AndrolibException(String message) { + super(message); + } + + public AndrolibException(String message, Throwable cause) { + super(message, cause); + } + + public AndrolibException(Throwable cause) { + super(cause); + } +} diff --git a/src/brut/androlib/AndrolibSmali.java b/src/brut/androlib/AndrolibSmali.java new file mode 100644 index 00000000..736cdf9d --- /dev/null +++ b/src/brut/androlib/AndrolibSmali.java @@ -0,0 +1,50 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib; + +import java.io.File; +import java.io.IOException; +import org.jf.baksmali.baksmali; +import org.jf.dexlib.DexFile; +import org.jf.smali.main; + +/** + * @author Ryszard Wiśniewski + */ +class AndrolibSmali { + public void baksmali(File apkFile, File dir) throws AndrolibException { + baksmali(apkFile.getAbsolutePath(), dir.getAbsolutePath()); + } + + public void baksmali(String apkFile, String dir) throws AndrolibException { + try { + DexFile dexFile = new DexFile(apkFile); + baksmali.disassembleDexFile(dexFile, false, dir, new String[]{}, "", false, true, true, true, false, 0, false); + } catch (IOException ex) { + throw new AndrolibException(ex); + } + } + + public void smali(File dir, File dexFile) throws AndrolibException { + smali(dir.getAbsolutePath(), dexFile.getAbsolutePath()); + } + + public void smali(String dir, String dexFile) throws AndrolibException { + main.main(new String[]{"smali", dir, "-o", dexFile}); + } +} diff --git a/src/brut/androlib/ApkFile.java b/src/brut/androlib/ApkFile.java new file mode 100644 index 00000000..c49bf198 --- /dev/null +++ b/src/brut/androlib/ApkFile.java @@ -0,0 +1,146 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib; + +import brut.androlib.res.AndrolibResources; +import brut.androlib.res.data.ResTable; +import brut.common.BrutException; +import brut.directory.Directory; +import brut.directory.DirectoryException; +import brut.directory.FileDirectory; +import brut.directory.ZipRODirectory; +import brut.util.OS; +import java.io.File; +import java.io.IOException; +import org.apache.commons.io.IOUtils; + +/** + * @author Ryszard Wiśniewski + */ +public class ApkFile { + private final AndrolibResources mAndRes; + private final File mApkFile; + private final AndrolibSmali mSmali; + + private ResTable mResTable; + + public ApkFile(AndrolibResources andRes, String apkFileName) { + this(andRes, new File(apkFileName)); + } + + public ApkFile(AndrolibResources andRes, File apkFile) { + mAndRes = andRes; + mApkFile = apkFile; + mSmali = new AndrolibSmali(); + } + + public void decode(String outDirName) throws AndrolibException { + decode(new File(outDirName)); + } + + public void decode(File outDir) throws AndrolibException { + if (outDir.exists()) { + throw new AndrolibException("Output directory already exists: " + + outDir.getAbsolutePath()); + } + outDir.mkdirs(); + + File smaliDir = new File(outDir.getPath() + "/smali"); + + mAndRes.decode(getResTable(), mApkFile, outDir); + mSmali.baksmali(mApkFile, smaliDir); + mAndRes.tagSmaliResIDs(getResTable(), smaliDir); + + try { + Directory in = new ZipRODirectory(mApkFile); + Directory out = new FileDirectory(outDir); + if (in.containsDir("assets")) { + Directory in2 = in.getDir("assets"); + Directory out2 = out.createDir("assets"); + for (String fileName : in2.getFiles(true)) { + IOUtils.copy(in2.getFileInput(fileName), + out2.getFileOutput(fileName)); + } + } + if (in.containsDir("lib")) { + Directory in2 = in.getDir("lib"); + Directory out2 = out.createDir("lib"); + for (String fileName : in2.getFiles(true)) { + IOUtils.copy(in2.getFileInput(fileName), + out2.getFileOutput(fileName)); + } + } + } catch (DirectoryException ex) { + throw new AndrolibException("Could not decode apk", ex); + } catch (IOException ex) { + throw new AndrolibException("Could not decode apk", ex); + } + } + + public void build(String inDir) throws AndrolibException { + build(new File(inDir)); + } + + public void build(File inDir) throws AndrolibException { + try { + File smaliDir = new File(inDir.getPath() + "/smali"); + + mAndRes.aaptPackage( + mApkFile, + new File(inDir.getPath() + "/AndroidManifest.xml"), + new File(inDir.getPath() + "/res") + ); + mAndRes.updateSmaliResIDs(getResTable(), smaliDir); + + File tmpDir = OS.createTempDirectory(); + try { + mSmali.smali(smaliDir, + new File(tmpDir.getPath() + "/classes.dex")); + if (new File(inDir.getPath() + "/assets").exists()) { + OS.cpdir(inDir.getPath() + "/assets", + tmpDir.getPath() + "/assets"); + } + if (new File(inDir.getPath() + "/lib").exists()) { + OS.cpdir(inDir.getPath() + "/lib", + tmpDir.getPath() + "/lib"); + } + + mAndRes.aaptPackage( + mApkFile, + null, + null, + tmpDir, + true + ); + + } finally { + OS.rmdir(tmpDir); + } + } catch (BrutException ex) { + throw new AndrolibException( + "Could not build apk for dir: " + inDir.getAbsolutePath(), ex); + } + } + + public ResTable getResTable() throws AndrolibException { + if (mResTable == null) { + mResTable = mAndRes.getResTable(mApkFile); + } + return mResTable; + } +} diff --git a/src/brut/androlib/res/AndrolibResources.java b/src/brut/androlib/res/AndrolibResources.java new file mode 100644 index 00000000..39dfd3b2 --- /dev/null +++ b/src/brut/androlib/res/AndrolibResources.java @@ -0,0 +1,218 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res; + +import brut.androlib.*; +import brut.androlib.res.data.*; +import brut.androlib.res.data.value.ResFileValue; +import brut.androlib.res.data.value.ResXmlSerializable; +import brut.androlib.res.decoder.*; +import brut.androlib.res.jni.JniPackage; +import brut.androlib.res.jni.JniPackageGroup; +import brut.common.BrutException; +import brut.directory.Directory; +import brut.directory.DirectoryException; +import brut.directory.FileDirectory; +import brut.directory.ZipRODirectory; +import brut.util.Jar; +import brut.util.OS; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Arrays; + +/** + * @author Ryszard Wiśniewski + */ +final public class AndrolibResources { + static { + Jar.load("/libAndroid.so"); + } + + private final File mAndroidJar; + + public AndrolibResources(String androidJar) { + this(new File(androidJar)); + } + + public AndrolibResources(File androidJar) { + this.mAndroidJar = androidJar; + } + + public ResTable getResTable(File apkFile) throws AndrolibException { + ResTable resTable = new ResTable(); + loadApk(resTable, new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath()), false); + loadApk(resTable, apkFile, true); + return resTable; + } + + public void decode(ResTable resTable, File apkFile, File outDir) + throws AndrolibException { + ResXmlSerializer serial = getResXmlSerializer(resTable); + ResFileDecoder fileDecoder = getResFileDecoder(serial); + serial.setCurrentPackage( + resTable.listMainPackages().iterator().next()); + + Directory in, out; + try { + in = new ZipRODirectory(apkFile); + out = new FileDirectory(outDir); + + fileDecoder.decode( + in, "AndroidManifest.xml", out, "AndroidManifest.xml", "xml"); + + in = in.getDir("res"); + out = out.createDir("res"); + } catch (DirectoryException ex) { + throw new AndrolibException(ex); + } + + for (ResPackage pkg : resTable.listMainPackages()) { + serial.setCurrentPackage(pkg); + for (ResResource res : pkg.listFiles()) { + ResFileValue fileValue = (ResFileValue) res.getValue(); + fileDecoder.decode(in, fileValue.getStrippedPath(), + out, res.getFilePath()); + } + for (ResValuesFile valuesFile : pkg.listValuesFiles()) { + generateValuesFile(valuesFile, out, serial); + } + } + } + + public void aaptPackage(File apkFile, File manifest, File resDir) + throws AndrolibException { + aaptPackage(apkFile, manifest, resDir, null, false); + } + + public void aaptPackage(File apkFile, File manifest, File resDir, + File rawDir, boolean update) throws AndrolibException { + String[] cmd = new String[12]; + int i = 0; + cmd[i++] = "aapt"; + cmd[i++] = "p"; + if (update) { + cmd[i++] = "-u"; + } + cmd[i++] = "-F"; + cmd[i++] = apkFile.getAbsolutePath(); + cmd[i++] = "-I"; + cmd[i++] = mAndroidJar.getAbsolutePath(); + if (manifest != null) { + cmd[i++] = "-M"; + cmd[i++] = manifest.getAbsolutePath(); + } + if (resDir != null) { + cmd[i++] = "-S"; + cmd[i++] = resDir.getAbsolutePath(); + } + if (rawDir != null) { + cmd[i++] = rawDir.getAbsolutePath(); + } + + try { + OS.exec(Arrays.copyOf(cmd, i)); + } catch (BrutException ex) { + throw new AndrolibException(ex); + } + } + + public void tagSmaliResIDs(ResTable resTable, File smaliDir) + throws AndrolibException { + new ResSmaliUpdater().tagResIDs(resTable, smaliDir); + } + + public void updateSmaliResIDs(ResTable resTable, File smaliDir) throws AndrolibException { + new ResSmaliUpdater().updateResIDs(resTable, smaliDir); + } + + public ResFileDecoder getResFileDecoder(ResXmlSerializer serializer) { + ResStreamDecoderContainer decoders = + new ResStreamDecoderContainer(); + decoders.setDecoder("raw", new ResRawStreamDecoder()); + decoders.setDecoder("xml", + new ResXmlStreamDecoder(serializer)); + return new ResFileDecoder(decoders); + } + + public ResXmlSerializer getResXmlSerializer(ResTable resTable) { + ResXmlSerializer serial = new ResXmlSerializer(); + serial.setProperty(serial.PROPERTY_SERIALIZER_INDENTATION, " "); + return serial; + } + + private void generateValuesFile(ResValuesFile valuesFile, Directory out, + ResXmlSerializer serial) throws AndrolibException { + try { + OutputStream outStream = out.getFileOutput(valuesFile.getPath()); + serial.setOutput((outStream), null); + serial.setDecodingEnabled(false); + serial.startDocument(null, null); + serial.startTag(null, "resources"); + + for (ResResource res : valuesFile.listResources()) { + + ((ResXmlSerializable) res.getValue()) + .serializeToXml(serial, res); + } + + serial.endTag(null, "resources"); + serial.endDocument(); + serial.flush(); + outStream.close(); + } catch (IOException ex) { + throw new AndrolibException( + "Could not generate: " + valuesFile.getPath(), ex); + } catch (DirectoryException ex) { + throw new AndrolibException( + "Could not generate: " + valuesFile.getPath(), ex); + } + } + + private void loadApk(ResTable resTable, File apkFile, boolean main) + throws AndrolibException { + JniPackageGroup[] groups = + nativeGetPackageGroups(apkFile.getAbsolutePath()); + if (groups.length != 1) { + throw new AndrolibException( + "Apk's with multiple or zero package groups not supported"); + } + for (int i = 0; i < groups.length; i++) { +// if (groups.length != 1 && i == 0) { +// continue; +// } + for (JniPackage jniPkg : groups[i].packages) { + ResPackage pkg = new JniPackageDecoder().decode(jniPkg, resTable); + resTable.addPackage(pkg, main); + } + } + } + + public static String escapeForResXml(String value) { + value = value.replace("'", "\\'"); + value = value.replace("\n", "\\n\n"); + char c = value.charAt(0); + if (c == '@' || c == '#' || c == '?') { + return '\\' + value; + } + return value; + } + + private static final native JniPackageGroup[] nativeGetPackageGroups( + String apkFileName); +} diff --git a/src/brut/androlib/res/ResSmaliUpdater.java b/src/brut/androlib/res/ResSmaliUpdater.java new file mode 100644 index 00000000..2fe2ba09 --- /dev/null +++ b/src/brut/androlib/res/ResSmaliUpdater.java @@ -0,0 +1,146 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResResSpec; +import brut.androlib.res.data.ResTable; +import brut.directory.Directory; +import brut.directory.DirectoryException; +import brut.directory.FileDirectory; +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Iterator; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.apache.commons.io.IOUtils; + +/** + * @author Ryszard Wiśniewski + */ +public class ResSmaliUpdater { + public void tagResIDs(ResTable resTable, File smaliDir) + throws AndrolibException { + Directory dir = null; + try { + dir = new FileDirectory(smaliDir); + } catch (DirectoryException ex) { + throw new AndrolibException( + "Could not tag res IDs", ex); + } + for (String fileName : dir.getFiles(true)) { + try { + Iterator it = + IOUtils.readLines(dir.getFileInput(fileName)).iterator(); + PrintWriter out = new PrintWriter(dir.getFileOutput(fileName)); + while (it.hasNext()) { + String line = it.next(); + if (RES_NAME_PATTERN.matcher(line).matches()) { + out.println(line); + out.println(it.next()); + continue; + } + Matcher m = RES_ID_PATTERN.matcher(line); + if (m.matches()) { + int resID = parseResID(m.group(3)); + if (resID != -1) { + ResResSpec spec = resTable.getResSpec(resID); + out.println(String.format( + RES_NAME_FORMAT, spec.getFullName())); + } + } + out.println(line); + } + out.close(); + } catch (IOException ex) { + throw new AndrolibException( + "Could not tag resIDs for file: " + fileName, ex); + } catch (DirectoryException ex) { + throw new AndrolibException( + "Could not tag resIDs for file: " + fileName, ex); + } catch (AndrolibException ex) { + throw new AndrolibException( + "Could not tag resIDs for file: " + fileName, ex); + } + } + } + + public void updateResIDs(ResTable resTable, File smaliDir) + throws AndrolibException { + try { + Directory dir = new FileDirectory(smaliDir); + for (String fileName : dir.getFiles(true)) { + Iterator it = + IOUtils.readLines(dir.getFileInput(fileName)).iterator(); + PrintWriter out = new PrintWriter(dir.getFileOutput(fileName)); + while (it.hasNext()) { + String line = it.next(); + out.println(line); + Matcher m1 = RES_NAME_PATTERN.matcher(line); + if (! m1.matches()) { + continue; + } + Matcher m2 = RES_ID_PATTERN.matcher(it.next()); + if (! m2.matches()) { + throw new AndrolibException(); + } + int resID = resTable.getPackage(m1.group(1)) + .getType(m1.group(2)).getResSpec(m1.group(3)) + .getId().id; + if (m2.group(1) != null) { + out.println(String.format( + RES_ID_FORMAT_FIELD, m2.group(1), resID)); + } else { + out.println(String.format( + RES_ID_FORMAT_CONST, m2.group(2), resID)); + } + } + out.close(); + } + } catch (IOException ex) { + throw new AndrolibException( + "Could not tag res IDs for: " + smaliDir.getAbsolutePath(), ex); + } catch (DirectoryException ex) { + throw new AndrolibException( + "Could not tag res IDs for: " + smaliDir.getAbsolutePath(), ex); + } + } + + private int parseResID(String resIDHex) { + if (resIDHex.endsWith("ff")) { + return -1; + } + int resID = Integer.valueOf(resIDHex, 16); + if (resIDHex.length() == 4) { + resID = resID << 16; + } + return resID; + } + + private final static String RES_ID_FORMAT_FIELD = + ".field %s:I = 0x%08x"; + private final static String RES_ID_FORMAT_CONST = + " const %s, 0x%08x"; + private final static Pattern RES_ID_PATTERN = Pattern.compile( + "^(?:\\.field (.+?):I =| const(?:|/(?:|high)16) ([pv]\\d+?),) 0x(7[a-f]0[1-9a-f](?:|[0-9a-f]{4}))$"); + private final static String RES_NAME_FORMAT = + "# APKTOOL/RES_NAME: %s"; + private final static Pattern RES_NAME_PATTERN = Pattern.compile( + "^# APKTOOL/RES_NAME: ([a-zA-Z0-9.]+):([a-z]+)/([a-zA-Z0-9._]+)$"); +} diff --git a/src/brut/androlib/res/data/ResConfig.java b/src/brut/androlib/res/data/ResConfig.java new file mode 100644 index 00000000..e0d9d5a7 --- /dev/null +++ b/src/brut/androlib/res/data/ResConfig.java @@ -0,0 +1,69 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data; + +import brut.androlib.AndrolibException; +import java.util.*; + +/** + * @author Ryszard Wiśniewski + */ +public class ResConfig { + private final ResConfigFlags mFlags; + private final Map mResources = + new LinkedHashMap(); + + public ResConfig(ResConfigFlags flags) { + this.mFlags = flags; + } + + public Set listResources() { + return new LinkedHashSet(mResources.values()); + } + + public ResResource getResource(ResResSpec spec) throws AndrolibException { + ResResource res = mResources.get(spec); + if (res == null) { + throw new AndrolibException(String.format( + "Undefined resource: spec=%s, config=%s", spec, this)); + } + return res; + } + + public Set listResSpecs() { + return mResources.keySet(); + } + + public ResConfigFlags getFlags() { + return mFlags; + } + + public void addResource(ResResource res) + throws AndrolibException { + ResResSpec spec = res.getResSpec(); + if (mResources.put(spec, res) != null) { + throw new AndrolibException(String.format( + "Multiple resources: spec=%s, config=%s", spec, this)); + } + } + + @Override + public String toString() { + return mFlags.toString(); + } +} diff --git a/src/brut/androlib/res/data/ResConfigFlags.java b/src/brut/androlib/res/data/ResConfigFlags.java new file mode 100644 index 00000000..caab76b8 --- /dev/null +++ b/src/brut/androlib/res/data/ResConfigFlags.java @@ -0,0 +1,342 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data; + +import brut.androlib.AndrolibException; +import brut.androlib.res.jni.JniConfig; + +/** + * @author Ryszard Wiśniewski + */ +public class ResConfigFlags { + public final int mcc; + public final int mnc; + + public final char[] language; + public final char[] country; + +// public final Orientation orientation; +// public final Touchscreen touchscreen; + public final int orientation; + public final int touchscreen; + public final int density; + +// public final Keyboard keyboard; +// public final Navigation navigation; +// public final Keys keys; +// public final Nav nav; + public final int keyboard; + public final int navigation; + public final int inputFlags; + + public final int screenWidth; + public final int screenHeight; +// public final ScreenSize screenSize; +// public final ScreenLong screenLong; + public final int screenLayout; + + public final int sdkVersion; + + private final String mQualifiers; + + public ResConfigFlags() { + mcc = 0; + mnc = 0; + language = new char[]{'\00', '\00'}; + country = new char[]{'\00', '\00'}; + orientation = ORIENTATION_ANY; + touchscreen = TOUCHSCREEN_ANY; + density = DENSITY_DEFAULT; + keyboard = KEYBOARD_ANY; + navigation = NAVIGATION_ANY; + inputFlags = KEYSHIDDEN_ANY | NAVHIDDEN_ANY; + screenWidth = 0; + screenHeight = 0; + screenLayout = SCREENLONG_ANY | SCREENSIZE_ANY; + sdkVersion = 0; + mQualifiers = ""; + } + + public ResConfigFlags(JniConfig cfg) throws AndrolibException { +// if (cfg.mcc == 0 && mnc != 0) { +// throw new AndrolibException(String.format( +// "Invalid IMSI: mcc=%3d, mnc=%3d", mcc, mnc)); +// } + mcc = cfg.mcc; + mnc = cfg.mnc; + +// if (cfg.language.length == 0 && cfg.country.length != 0) { +// throw new AndrolibException(String.format( +// "Invalid local: language=%s, country=%s", +// cfg.language, cfg.country)); +// } + language = cfg.language; + country = cfg.country; +// +// switch (cfg.orientation) { +// case ORIENTATION_ANY: +// orientation = Orientation.ANY; +// break; +// case ORIENTATION_LAND: +// orientation = Orientation.LAND; +// break; +// case ORIENTATION_PORT: +// orientation = Orientation.PORT; +// break; +// case ORIENTATION_SQUARE: +// orientation = Orientation.SQUARE; +// break; +// default: +// throw new AndrolibException(String.format( +// "Invalid orientation: %d", cfg.orientation)); +// } + + orientation = cfg.orientation; + touchscreen = cfg.touchscreen; + density = cfg.density; + keyboard = cfg.keyboard; + navigation = cfg.navigation; + inputFlags = cfg.inputFlags; + screenWidth = cfg.screenWidth; + screenHeight = cfg.screenHeight; + screenLayout = cfg.screenLayout; + sdkVersion = cfg.sdkVersion; + + mQualifiers = generateQualifiers(); + } + + public String getQualifiers() { + return mQualifiers; + } + + private String generateQualifiers() { + StringBuilder ret = new StringBuilder(); + if (mcc != 0) { + ret.append("-mcc").append(mcc); + if (mnc != 0) { + ret.append("-mnc").append(mnc); + } + } + if (language[0] != '\00') { + ret.append('-').append(language); + if (country[0] != '\00') { + ret.append("-r").append(country); + } + } + switch (screenLayout & MASK_SCREENSIZE) { + case SCREENSIZE_SMALL: + ret.append("-small"); + break; + case SCREENSIZE_NORMAL: + ret.append("-normal"); + break; + case SCREENSIZE_LARGE: + ret.append("-large"); + break; + } + switch (screenLayout & MASK_SCREENLONG) { + case SCREENLONG_YES: + ret.append("-long"); + break; + case SCREENLONG_NO: + ret.append("-notlong"); + break; + } + switch (orientation) { + case ORIENTATION_PORT: + ret.append("-port"); + break; + case ORIENTATION_LAND: + ret.append("-land"); + break; + case ORIENTATION_SQUARE: + ret.append("-square"); + break; + } + switch (density) { + case DENSITY_DEFAULT: + break; + case DENSITY_LOW: + ret.append("-ldpi"); + break; + case DENSITY_MEDIUM: + ret.append("-mdpi"); + break; + case DENSITY_HIGH: + ret.append("-hdpi"); + break; + case DENSITY_NONE: + ret.append("-nodpi"); + break; + default: + ret.append('-').append(density).append("dpi"); + } + switch (touchscreen) { + case TOUCHSCREEN_NOTOUCH: + ret.append("-notouch"); + break; + case TOUCHSCREEN_STYLUS: + ret.append("-stylus"); + break; + case TOUCHSCREEN_FINGER: + ret.append("-finger"); + break; + } + switch (inputFlags & MASK_KEYSHIDDEN) { + case KEYSHIDDEN_NO: + ret.append("-keysexposed"); + break; + case KEYSHIDDEN_YES: + ret.append("-keyshidden"); + break; + case KEYSHIDDEN_SOFT: + ret.append("-keyssoft"); + break; + } + switch (keyboard) { + case KEYBOARD_NOKEYS: + ret.append("-nokeys"); + break; + case KEYBOARD_QWERTY: + ret.append("-qwerty"); + break; + case KEYBOARD_12KEY: + ret.append("-12key"); + break; + } + switch (inputFlags & MASK_NAVHIDDEN) { + case NAVHIDDEN_NO: + ret.append("-navexposed"); + break; + case NAVHIDDEN_YES: + ret.append("-navhidden"); + break; + } + switch (navigation) { + case NAVIGATION_NONAV: + ret.append("-nonav"); + break; + case NAVIGATION_DPAD: + ret.append("-dpad"); + break; + case NAVIGATION_TRACKBALL: + ret.append("-trackball"); + break; + case NAVIGATION_WHEEL: + ret.append("-wheel"); + break; + } + if (screenWidth != 0 && screenHeight != 0) { + if (screenWidth > screenHeight) { + ret.append(String.format("-%dx%d", screenWidth, screenHeight)); + } else { + ret.append(String.format("-%dx%d", screenHeight, screenWidth)); + } + } + if (sdkVersion != 0) { + ret.append("-v").append(sdkVersion); + } + + return ret.toString(); + } + + @Override + public String toString() { + return ! getQualifiers().equals("") ? getQualifiers() : "[DEFAULT]"; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final ResConfigFlags other = (ResConfigFlags) obj; + if ((this.mQualifiers == null) ? (other.mQualifiers != null) : !this.mQualifiers.equals(other.mQualifiers)) { + return false; + } + return true; + } + + @Override + public int hashCode() { + int hash = 3; + hash = 97 * hash + (this.mQualifiers != null ? this.mQualifiers.hashCode() : 0); + return hash; + } + +// public enum Orientation {ANY, PORT, LAND, SQUARE} +// public enum Touchscreen {ANY, NOTOUCH, STYLUS, FINGER} +// public enum Keyboard {ANY, NOKEYS, QWERTY, KEY12} +// public enum Navigation {ANY, NONAV, DPAD, TRACKBALL, WHEEL} +// public enum Keys {ANY, EXPOSED, HIDDEN, SOFT} +// public enum Nav {ANY, EXPOSED, HIDDEN} +// public enum ScreenSize {ANY, SMALL, NORMAL, LARGE} +// public enum ScreenLong {ANY, LONG, NOTLONG} + + public final static int ORIENTATION_ANY = 0x0000; + public final static int ORIENTATION_PORT = 0x0001; + public final static int ORIENTATION_LAND = 0x0002; + public final static int ORIENTATION_SQUARE = 0x0003; + + public final static int TOUCHSCREEN_ANY = 0x0000; + public final static int TOUCHSCREEN_NOTOUCH = 0x0001; + public final static int TOUCHSCREEN_STYLUS = 0x0002; + public final static int TOUCHSCREEN_FINGER = 0x0003; + + public final static int DENSITY_DEFAULT = 0; + public final static int DENSITY_LOW = 120; + public final static int DENSITY_MEDIUM = 160; + public final static int DENSITY_HIGH = 240; + public final static int DENSITY_NONE = 0xffff; + + public final static int KEYBOARD_ANY = 0x0000; + public final static int KEYBOARD_NOKEYS = 0x0001; + public final static int KEYBOARD_QWERTY = 0x0002; + public final static int KEYBOARD_12KEY = 0x0003; + + public final static int NAVIGATION_ANY = 0x0000; + public final static int NAVIGATION_NONAV = 0x0001; + public final static int NAVIGATION_DPAD = 0x0002; + public final static int NAVIGATION_TRACKBALL = 0x0003; + public final static int NAVIGATION_WHEEL = 0x0004; + + public final static int MASK_KEYSHIDDEN = 0x0003; + public final static int KEYSHIDDEN_ANY = 0x0000; + public final static int KEYSHIDDEN_NO = 0x0001; + public final static int KEYSHIDDEN_YES = 0x0002; + public final static int KEYSHIDDEN_SOFT = 0x0003; + + public final static int MASK_NAVHIDDEN = 0x000c; + public final static int NAVHIDDEN_ANY = 0x0000; + public final static int NAVHIDDEN_NO = 0x0004; + public final static int NAVHIDDEN_YES = 0x0008; + + public final static int MASK_SCREENSIZE = 0x0f; + public final static int SCREENSIZE_ANY = 0x00; + public final static int SCREENSIZE_SMALL = 0x01; + public final static int SCREENSIZE_NORMAL = 0x02; + public final static int SCREENSIZE_LARGE = 0x03; + + public final static int MASK_SCREENLONG = 0x30; + public final static int SCREENLONG_ANY = 0x00; + public final static int SCREENLONG_NO = 0x10; + public final static int SCREENLONG_YES = 0x20; +} diff --git a/src/brut/androlib/res/data/ResID.java b/src/brut/androlib/res/data/ResID.java new file mode 100644 index 00000000..abb3d465 --- /dev/null +++ b/src/brut/androlib/res/data/ResID.java @@ -0,0 +1,71 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data; + +/** + * @author Ryszard Wiśniewski + */ +public class ResID { + public final int package_; + public final int type; + public final int entry; + + public final int id; + + public ResID(int package_, int type, int entry) { + this(package_, type, entry, (package_ << 24) + (type << 16) + entry); + } + + public ResID(int id) { + this(id >> 24, (id >> 16) & 0x000000ff, id & 0x0000ffff, id); + } + + public ResID(int package_, int type, int entry, int id) { + this.package_ = package_; + this.type = type; + this.entry = entry; + this.id = id; + } + + @Override + public String toString() { + return String.format("0x%08x", id); + } + + @Override + public int hashCode() { + int hash = 7; + hash = 59 * hash + this.id; + return hash; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final ResID other = (ResID) obj; + if (this.id != other.id) { + return false; + } + return true; + } +} diff --git a/src/brut/androlib/res/data/ResPackage.java b/src/brut/androlib/res/data/ResPackage.java new file mode 100644 index 00000000..a555c97a --- /dev/null +++ b/src/brut/androlib/res/data/ResPackage.java @@ -0,0 +1,195 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.value.ResFileValue; +import brut.androlib.res.data.value.ResValue; +import brut.androlib.res.data.value.ResValueFactory; +import brut.androlib.res.data.value.ResXmlSerializable; +import brut.util.Duo; +import java.util.*; + +/** + * @author Ryszard Wiśniewski + */ +public class ResPackage { + private final ResTable mResTable; + private final int mId; + private final String mName; + private final Map mResSpecs = + new LinkedHashMap(); + private final Map mConfigs = + new LinkedHashMap(); + private final Map mTypes = + new LinkedHashMap(); + private final Set mFiles = new LinkedHashSet(); + private final Map, ResValuesFile> mValuesFiles = + new LinkedHashMap, ResValuesFile>(); + + private ResValueFactory mValueFactory; + + public ResPackage(ResTable resTable, int id, String name) { + this.mResTable = resTable; + this.mId = id; + this.mName = name; + } + + public List listResSpecs() { + return new ArrayList(mResSpecs.values()); + } + + public boolean hasResSpec(ResID resID) { + return mResSpecs.containsKey(resID); + } + + public ResResSpec getResSpec(ResID resID) throws AndrolibException { + ResResSpec spec = mResSpecs.get(resID); + if (spec == null) { + throw new AndrolibException("Undefined resource spec: " + resID); + } + return spec; + } + + public List getConfigs() { + return new ArrayList(mConfigs.values()); + } + + public boolean hasConfig(ResConfigFlags flags) { + return mConfigs.containsKey(flags); + } + + public ResConfig getConfig(ResConfigFlags flags) throws AndrolibException { + ResConfig config = mConfigs.get(flags); + if (config == null) { + throw new AndrolibException("Undefined config: " + flags); + } + return config; + } + + public List listTypes() { + return new ArrayList(mTypes.values()); + } + + public boolean hasType(String typeName) { + return mTypes.containsKey(typeName); + } + + public ResType getType(String typeName) throws AndrolibException { + ResType type = mTypes.get(typeName); + if (type == null) { + throw new AndrolibException("Undefined type: " + typeName); + } + return type; + } + + public Set listFiles() { + return mFiles; + } + + public Collection listValuesFiles() { + return mValuesFiles.values(); + } + + public ResTable getResTable() { + return mResTable; + } + + public int getId() { + return mId; + } + + public String getName() { + return mName; + } + + public void addResSpec(ResResSpec spec) throws AndrolibException { + if (mResSpecs.put(spec.getId(), spec) != null) { + throw new AndrolibException("Multiple resource specs: " + spec); + } + } + + public void addConfig(ResConfig config) throws AndrolibException { + if (mConfigs.put(config.getFlags(), config) != null) { + throw new AndrolibException("Multiple configs: " + config); + } + } + + public void addType(ResType type) throws AndrolibException { + if (mTypes.put(type.getName(), type) != null) { + throw new AndrolibException("Multiple types: " + type); + } + } + + public void addResource(ResResource res) { + ResValue value = res.getValue(); + if (value instanceof ResFileValue) { + mFiles.add(res); + } + if (value instanceof ResXmlSerializable) { + ResType type = res.getResSpec().getType(); + ResConfig config = res.getConfig(); + Duo key = + new Duo(type, config); + ResValuesFile values = mValuesFiles.get(key); + if (values == null) { + values = new ResValuesFile(type, config); + mValuesFiles.put(key, values); + } + values.addResource(res); + } + } + + @Override + public String toString() { + return mName; + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final ResPackage other = (ResPackage) obj; + if (this.mResTable != other.mResTable && (this.mResTable == null || !this.mResTable.equals(other.mResTable))) { + return false; + } + if (this.mId != other.mId) { + return false; + } + return true; + } + + @Override + public int hashCode() { + int hash = 7; + hash = 37 * hash + (this.mResTable != null ? this.mResTable.hashCode() : 0); + hash = 37 * hash + this.mId; + return hash; + } + + public ResValueFactory getValueFactory() { + if (mValueFactory == null) { + mValueFactory = new ResValueFactory(this); + } + return mValueFactory; + } +} diff --git a/src/brut/androlib/res/data/ResResSpec.java b/src/brut/androlib/res/data/ResResSpec.java new file mode 100644 index 00000000..ade038d9 --- /dev/null +++ b/src/brut/androlib/res/data/ResResSpec.java @@ -0,0 +1,108 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data; + +import brut.androlib.AndrolibException; +import java.util.*; + +/** + * @author Ryszard Wiśniewski + */ +public class ResResSpec { + private final ResID mId; + private final String mName; + private final ResPackage mPackage; + private final ResType mType; + private final Map mResources = + new LinkedHashMap(); + + public ResResSpec(ResID id, String name, ResPackage pkg, ResType type) { + this.mId = id; + this.mName = name; + this.mPackage = pkg; + this.mType = type; + } + + public Set listResources() { + return new LinkedHashSet(mResources.values()); + } + + public ResResource getResource(ResConfig config) throws AndrolibException { + return getResource(config.getFlags()); + } + + public ResResource getResource(ResConfigFlags config) + throws AndrolibException { + ResResource res = mResources.get(config); + if (res == null) { + throw new AndrolibException(String.format( + "Undefined resource: spec=%s, config=%s", this, config)); + } + return res; + } + + public ResResource getDefaultResource() throws AndrolibException { + return getResource(new ResConfigFlags()); + } + + public String getFullName() { + return getFullName(false, false); + } + + public String getFullName(ResPackage relativeToPackage, + boolean excludeType) { + return getFullName( + getPackage().equals(relativeToPackage), excludeType); + } + + public String getFullName(boolean excludePackage, boolean excludeType) { + return + (excludePackage ? "" : getPackage().getName() + ":") + + (excludeType ? "" : getType().getName() + "/") + getName(); + } + + public ResID getId() { + return mId; + } + + public String getName() { + return mName; + } + + public ResPackage getPackage() { + return mPackage; + } + + public ResType getType() { + return mType; + } + + public void addResource(ResResource res) + throws AndrolibException { + ResConfigFlags flags = res.getConfig().getFlags(); + if (mResources.put(flags, res) != null) { + throw new AndrolibException(String.format( + "Multiple resources: spec=%s, config=%s", this, flags)); + } + } + + @Override + public String toString() { + return mId.toString() + " " + mType.toString() + "/" + mName; + } +} diff --git a/src/brut/androlib/res/data/ResResource.java b/src/brut/androlib/res/data/ResResource.java new file mode 100644 index 00000000..d7a155f4 --- /dev/null +++ b/src/brut/androlib/res/data/ResResource.java @@ -0,0 +1,58 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data; + +import brut.androlib.res.data.value.ResValue; + +/** + * @author Ryszard Wiśniewski + */ +public class ResResource { + private final ResConfig mConfig; + private final ResResSpec mResSpec; + private final ResValue mValue; + + public ResResource(ResConfig config, ResResSpec spec, + ResValue value) { + this.mConfig = config; + this.mResSpec = spec; + this.mValue = value; + } + + public String getFilePath() { + return mResSpec.getType().getName() + + mConfig.getFlags().getQualifiers() + "/" + mResSpec.getName(); + } + + public ResConfig getConfig() { + return mConfig; + } + + public ResResSpec getResSpec() { + return mResSpec; + } + + public ResValue getValue() { + return mValue; + } + + @Override + public String toString() { + return getFilePath(); + } +} diff --git a/src/brut/androlib/res/data/ResTable.java b/src/brut/androlib/res/data/ResTable.java new file mode 100644 index 00000000..68ab4b0d --- /dev/null +++ b/src/brut/androlib/res/data/ResTable.java @@ -0,0 +1,97 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.value.ResAttr; +import brut.androlib.res.data.value.ResValue; +import brut.androlib.res.data.value.ResValueFactory; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * @author Ryszard Wiśniewski + */ +public class ResTable { + private final Map mPackagesById = + new HashMap(); + private final Map mPackagesByName = + new HashMap(); + private final Set mMainPackages = + new LinkedHashSet(); + + public ResTable() { + } + + public ResResSpec getResSpec(int resID) throws AndrolibException { + return getResSpec(new ResID(resID)); + } + + public ResResSpec getResSpec(ResID resID) throws AndrolibException { + return getPackage(resID.package_).getResSpec(resID); + } + + public Set listMainPackages() { + return mMainPackages; + } + + public ResPackage getPackage(int id) throws AndrolibException { + ResPackage pkg = mPackagesById.get(id); + if (pkg == null) { + throw new AndrolibException(String.format( + "Undefined package: id=%d", id)); + } + return pkg; + } + + public ResPackage getPackage(String name) throws AndrolibException { + ResPackage pkg = mPackagesByName.get(name); + if (pkg == null) { + throw new AndrolibException("Undefined package: name=" + name); + } + return pkg; + } + + public ResValue getValue(String package_, String type, String name) + throws AndrolibException { + return getPackage(package_).getType(type).getResSpec(name) + .getDefaultResource().getValue(); + } + + public void addPackage(ResPackage pkg, boolean main) + throws AndrolibException { + Integer id = pkg.getId(); + if (mPackagesById.containsKey(id)) { + throw new AndrolibException( + "Multiple packages: id=" + id.toString()); + } + String name = pkg.getName(); + if (mPackagesByName.containsKey(name)) { + throw new AndrolibException("Multiple packages: name=" + name); + } + + mPackagesById.put(id, pkg); + mPackagesByName.put(name, pkg); + if (main) { + mMainPackages.add(pkg); + } + } +} diff --git a/src/brut/androlib/res/data/ResType.java b/src/brut/androlib/res/data/ResType.java new file mode 100644 index 00000000..b71f5281 --- /dev/null +++ b/src/brut/androlib/res/data/ResType.java @@ -0,0 +1,294 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data; + +import brut.androlib.AndrolibException; +import brut.androlib.res.AndrolibResources; +import brut.androlib.res.decoder.ResFileDecoder; +import brut.androlib.res.decoder.ResXmlSerializer; +import brut.directory.Directory; +import brut.directory.DirectoryException; +import java.io.IOException; +import java.util.*; +import java.util.Map.Entry; + +/** + * @author Ryszard Wiśniewski + */ +public final class ResType { + private final String mName; +// private final TypeConfig mConfig; + private final Map mResSpecs = + new LinkedHashMap(); + + private final ResTable mResTable; + private final ResPackage mPackage; + + public ResType(String name, ResTable resTable, + ResPackage package_) { + this.mName = name; + this.mResTable = resTable; + this.mPackage = package_; + } + + public String getName() { + return mName; + } + + public Set listResSpecs() { + return new LinkedHashSet(mResSpecs.values()); + } + + public ResResSpec getResSpec(String name) throws AndrolibException { + ResResSpec spec = mResSpecs.get(name); + if (spec == null) { + throw new AndrolibException(String.format( + "Undefined resource spec: %s/%s", getName(), name)); + } + return spec; + } +// +// public void decode(AndrolibResources andRes, ResXmlSerializer serial, +// Directory in, Directory out) throws AndrolibException { +// decodeFiles(andRes, serial, in, out); +// decodeValues(andRes, serial, out); +// } +// +// public void decodeFiles(AndrolibResources andRes, ResXmlSerializer serial, +// Directory in, Directory out) throws AndrolibException { +// if (! mConfig.isFile) { +// return; +// } +// +// ResFileDecoder decoder = andRes.getResFileDecoder(serial); +// +// for (ResResSpec res : listResources()) { +// for (ResResource value : res.listResources()) { +// if (! value.isStrVal()) { +// continue; +// } +// String fileName = value.getStrVal(); +// if (! fileName.startsWith("res/")) { +// throw new AndrolibException( +// "Invalid res file location: " + fileName); +// } +// decoder.decode(in, fileName.substring(4), out, +// value.getFilePath()); +// } +// } +// } +// +// public void decodeValues(AndrolibResources andRes, ResXmlSerializer serial, +// Directory out) throws AndrolibException { +// if (! mConfig.isValues) { +// return; +// } +// +// boolean oldEscapeRefs = serial.setEscapeRefs(false); +// +// for (Entry> entry : +// groupValuesByConfig().entrySet()) { +// ResConfigFlags config = entry.getKey(); +// String filePath = "values" + config.getQualifiers() + "/" +// + mConfig.valuesFileName + ".xml"; +// +// try { +// serial.setOutput(out.getFileOutput(filePath), null); +// serial.startDocument(null, null); +// serial.startTag(null, "resources"); +// +// for (ResResource value : entry.getValue()) { +// if (mName.equals("array")) { +// decodeArrayValue(serial, value); +// } else { +// serial.startTag(null, mConfig.valuesTagName); +// serial.attribute( +// null, "name", value.getResSpec().getName()); +// +// if (mName.equals("style")) { +// decodeStyleValue(serial, value); +// } else if (mName.equals("attr")) { +// decodeAttrValue(serial, value); +// } else { +// decodeSimpleValue(serial, value); +// } +// +// serial.endTag(null, mConfig.valuesTagName); +// } +// } +// +// serial.endTag(null, "resources"); +// serial.endDocument(); +// } catch (IOException ex) { +// throw new AndrolibException( +// "Could not decode values for:" + filePath, ex); +// } catch (DirectoryException ex) { +// throw new AndrolibException( +// "Could not decode values for:" + filePath, ex); +// } +// } +// +// serial.setEscapeRefs(oldEscapeRefs); +// } +// +// private void decodeSimpleValue(ResXmlSerializer serial, ResResource value) +// throws IOException, AndrolibException { +// serial.text(value.toResXMlText()); +// } +// +// private void decodeArrayValue(ResXmlSerializer serial, ResResource value) +// throws IOException, AndrolibException { +// String arrType = value.getBag().getType(); +// String tagName = (arrType != null ? arrType + "-" : "") + "array"; +// serial.startTag(null, tagName); +// serial.attribute( +// null, "name", value.getResSpec().getName()); +// for (ResResource item : value.getBag().getItems().values()) { +// serial.startTag(null, "item"); +// serial.text(item.getStrVal()); +// serial.endTag(null, "item"); +// } +// serial.endTag(null, tagName); +// } +// +// private void decodeAttrValue(ResXmlSerializer serial, ResResource value) +// throws IOException, AndrolibException { +// +// } +// +// private void decodeStyleValue(ResXmlSerializer serial, ResResource value) +// throws IOException, AndrolibException { +// ResBag bag = value.getBag(); +// if (bag.getParent().id != 0) { +// serial.attribute(null, "parent", bag.getParentRes() +// .getResReference(false, mPackage.getName())); +// +// for (Entry entry : bag.getItems().entrySet()) { +// serial.startTag(null, "item"); +// +// ResResSpec attr = mResTable.getResSpec(entry.getKey()); +// serial.attribute(null, "name", attr.getResReference(false, mPackage.getName(), true).substring(1)); +// serial.text(attr.getDefaultResource().decodeAttrValue(entry.getValue().getAsString(), false, mPackage.getName())); +// serial.endTag(null, "item"); +// } +// } +// } + + public void addResSpec(ResResSpec spec) + throws AndrolibException { + if (mResSpecs.put(spec.getName(), spec) != null) { + throw new AndrolibException(String.format( + "Multiple res specs: %s/%s", getName(), spec.getName())); + } + } + + @Override + public String toString() { + return mName; + } +// +// private Map> groupValuesByConfig() { +// Map> grouped = +// new LinkedHashMap>(); +// +// for (ResResSpec res : listResSpecs()) { +// for (ResResource value : res.listResources()) { +// ResConfigFlags config = value.getConfig().getFlags(); +// Set values = grouped.get(config); +// if (values == null) { +// values = new LinkedHashSet(); +// grouped.put(config, values); +// } +// values.add(value); +// } +// } +// +// return grouped; +// } +// +// +// public static ResType factory(String name, ResTable resTable, +// ResPackage package_) throws AndrolibException { +// if (typesConfig == null) { +// loadTypesConfig(); +// } +// TypeConfig config = typesConfig.get(name); +// if (config == null) { +// throw new AndrolibException("Invalid type name: " + name); +// } +// return new ResType(name, config, resTable, package_); +// } +// +// private static void loadTypesConfig() { +// typesConfig = new HashMap(); +// typesConfig.put("anim", new FileTypeConfig()); +// typesConfig.put("drawable", new FileTypeConfig()); +// typesConfig.put("layout", new FileTypeConfig()); +// typesConfig.put("menu", new FileTypeConfig()); +// typesConfig.put("raw", new FileTypeConfig()); +// typesConfig.put("xml", new FileTypeConfig()); +// +// typesConfig.put("attr", new ValuesTypeConfig("attrs", "attr")); +// typesConfig.put("dimen", new ValuesTypeConfig("dimens", "dimen")); +// typesConfig.put("string", new ValuesTypeConfig("strings", "string")); +// typesConfig.put("integer", new ValuesTypeConfig("integers", "integer")); +// typesConfig.put("array", new ValuesTypeConfig("arrays", "array")); +// typesConfig.put("style", new ValuesTypeConfig("styles", "style")); +// +// typesConfig.put("color", new TypeConfig(true, true, "colors", "color")); +// +// typesConfig.put("bool", new TypeConfig()); +// typesConfig.put("id", new TypeConfig()); +//// typesConfig.put("integer", new TypeConfig()); +// typesConfig.put("plurals", new TypeConfig()); +// } +// +// private static Map typesConfig; +// +// +// public static class TypeConfig { +// public final boolean isFile; +// public final boolean isValues; +// public final String valuesFileName; +// public final String valuesTagName; +// +// public TypeConfig() { +// this(false, false, null, null); +// } +// +// public TypeConfig(boolean isFile, boolean isValues, +// String valuesFileName, String valuesTagName) { +// this.isFile = isFile; +// this.isValues = isValues; +// this.valuesFileName = valuesFileName; +// this.valuesTagName = valuesTagName; +// } +// } +// +// public static class FileTypeConfig extends TypeConfig { +// public FileTypeConfig() { +// super(true, false, null, null); +// } +// } +// +// public static class ValuesTypeConfig extends TypeConfig { +// public ValuesTypeConfig(String fileName, String tagName) { +// super(false, true, fileName, tagName); +// } +// } +} diff --git a/src/brut/androlib/res/data/ResValuesFile.java b/src/brut/androlib/res/data/ResValuesFile.java new file mode 100644 index 00000000..85c5699c --- /dev/null +++ b/src/brut/androlib/res/data/ResValuesFile.java @@ -0,0 +1,85 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data; + +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * @author Ryszard Wiśniewski + */ +public class ResValuesFile { + private final ResType mType; + private final ResConfig mConfig; + private final Set mResources = + new LinkedHashSet(); + + public ResValuesFile(ResType type, ResConfig config) { + this.mType = type; + this.mConfig = config; + } + + public String getPath() { + return "values" + mConfig.getFlags().getQualifiers() + + "/" + mType.getName() + + (mType.getName().endsWith("s") ? "" : "s") + + ".xml"; + } + + public Set listResources() { + return mResources; + } + + public ResType getType() { + return mType; + } + + public ResConfig getConfig() { + return mConfig; + } + + public void addResource(ResResource res) { + mResources.add(res); + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final ResValuesFile other = (ResValuesFile) obj; + if (this.mType != other.mType && (this.mType == null || !this.mType.equals(other.mType))) { + return false; + } + if (this.mConfig != other.mConfig && (this.mConfig == null || !this.mConfig.equals(other.mConfig))) { + return false; + } + return true; + } + + @Override + public int hashCode() { + int hash = 5; + hash = 37 * hash + (this.mType != null ? this.mType.hashCode() : 0); + hash = 37 * hash + (this.mConfig != null ? this.mConfig.hashCode() : 0); + return hash; + } +} diff --git a/src/brut/androlib/res/data/value/ResArrayValue.java b/src/brut/androlib/res/data/value/ResArrayValue.java new file mode 100644 index 00000000..4fbf2aa7 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResArrayValue.java @@ -0,0 +1,65 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResResource; +import java.io.IOException; +import java.util.Iterator; +import java.util.Map; +import org.xmlpull.v1.XmlSerializer; + +/** + * @author Ryszard Wiśniewski + */ +public class ResArrayValue extends ResBagValue implements ResXmlSerializable { + public ResArrayValue(ResReferenceValue parent, + Map items) { + super(parent, items); + } + + public void serializeToXml(XmlSerializer serializer, ResResource res) + throws IOException, AndrolibException { + String type = getType(); + type = (type == null ? "" : type + "-") + "array"; + + serializer.startTag(null, type); + serializer.attribute(null, "name", res.getResSpec().getName()); + for (ResScalarValue item : mItems.values()) { + serializer.startTag(null, "item"); + serializer.text(item.toResXmlFormat()); + serializer.endTag(null, "item"); + } + serializer.endTag(null, type); + } + + public String getType() { + if (mItems.size() == 0) { + return null; + } + Iterator it = mItems.values().iterator(); + String type = it.next().getType(); + while (it.hasNext()) { + String itemType = it.next().getType(); + if (! type.equals(itemType)) { + return null; + } + } + return type; + } +} diff --git a/src/brut/androlib/res/data/value/ResAttr.java b/src/brut/androlib/res/data/value/ResAttr.java new file mode 100644 index 00000000..de97134c --- /dev/null +++ b/src/brut/androlib/res/data/value/ResAttr.java @@ -0,0 +1,100 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResResource; +import java.io.IOException; +import java.util.Map; +import org.xmlpull.v1.XmlSerializer; + +/** + * @author Ryszard Wiśniewski + */ +public class ResAttr extends ResBagValue implements ResXmlSerializable { + private final int mType; + + public ResAttr(ResReferenceValue parent, + Map items, int type) { + super(parent, items); + mType = type; + } + + public String convertToResXmlFormat(ResScalarValue value) + throws AndrolibException { + return value.toResXmlFormat(); + } + + public void serializeToXml(XmlSerializer serializer, ResResource res) + throws IOException, AndrolibException { + String type = getTypeAsString(); + + serializer.startTag(null, "attr"); + serializer.attribute(null, "name", res.getResSpec().getName()); + if (type != null) { + serializer.attribute(null, "format", type); + } + serializeBody(serializer, res); + serializer.endTag(null, "attr"); + } + + protected void serializeBody(XmlSerializer serializer, ResResource res) + throws AndrolibException, IOException {} + + protected String getTypeAsString() { + String s = ""; + if ((mType & TYPE_REFERENCE) != 0) { + s += "|reference"; + } + if ((mType & TYPE_STRING) != 0) { + s += "|string"; + } + if ((mType & TYPE_INT) != 0) { + s += "|integer"; + } + if ((mType & TYPE_BOOL) != 0) { + s += "|boolean"; + } + if ((mType & TYPE_COLOR) != 0) { + s += "|color"; + } + if ((mType & TYPE_FLOAT) != 0) { + s += "|float"; + } + if ((mType & TYPE_DIMEN) != 0) { + s += "|dimension"; + } + if ((mType & TYPE_FRACTION) != 0) { + s += "|fraction"; + } + if (s.isEmpty()) { + return null; + } + return s.substring(1); + } + + private final static int TYPE_REFERENCE = 0x01; + private final static int TYPE_STRING = 0x02; + private final static int TYPE_INT = 0x04; + private final static int TYPE_BOOL = 0x08; + private final static int TYPE_COLOR = 0x10; + private final static int TYPE_FLOAT = 0x20; + private final static int TYPE_DIMEN = 0x40; + private final static int TYPE_FRACTION = 0x80; + private final static int TYPE_ANY_STRING = 0xee; +} diff --git a/src/brut/androlib/res/data/value/ResAttrFactory.java b/src/brut/androlib/res/data/value/ResAttrFactory.java new file mode 100644 index 00000000..7373c68d --- /dev/null +++ b/src/brut/androlib/res/data/value/ResAttrFactory.java @@ -0,0 +1,42 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import java.util.Map; + +/** + * @author Ryszard Wiśniewski + */ +public class ResAttrFactory { + static ResValue factory(ResReferenceValue parent, + Map items) { + int type = ((ResIntValue) items.values().iterator().next()).getValue(); + + int attrType = type & 0x0000ffff; + switch (type & 0x00ff0000) { + case TYPE_ENUM: + return new ResEnumAttr(parent, items, attrType); + case TYPE_SET: + return new ResSetAttr(parent, items, attrType); + } + return new ResAttr(parent, items, attrType); + } + + private final static int TYPE_ENUM = 0x00010000; + private final static int TYPE_SET = 0x00020000; +} diff --git a/src/brut/androlib/res/data/value/ResBagValue.java b/src/brut/androlib/res/data/value/ResBagValue.java new file mode 100644 index 00000000..e468969c --- /dev/null +++ b/src/brut/androlib/res/data/value/ResBagValue.java @@ -0,0 +1,42 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import java.util.Map; + +/** + * @author Ryszard Wiśniewski + */ +public class ResBagValue extends ResValue { + protected final ResReferenceValue mParent; + protected final Map mItems; + + public ResBagValue(ResReferenceValue parent, + Map items) { + this.mParent = parent; + this.mItems = items; + } + + public ResReferenceValue getParent() { + return mParent; + } + + public Map getItems() { + return mItems; + } +} diff --git a/src/brut/androlib/res/data/value/ResBoolValue.java b/src/brut/androlib/res/data/value/ResBoolValue.java new file mode 100644 index 00000000..6a84a713 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResBoolValue.java @@ -0,0 +1,39 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +/** + * @author Ryszard Wiśniewski + */ +public class ResBoolValue extends ResScalarValue implements ResXmlSerializable { + private final boolean mValue; + + public ResBoolValue(boolean value) { + super("bool"); + this.mValue = value; + } + + public boolean getValue() { + return mValue; + } + + @Override + public String toResXmlFormat() { + return mValue ? "true" : "false"; + } +} diff --git a/src/brut/androlib/res/data/value/ResColorValue.java b/src/brut/androlib/res/data/value/ResColorValue.java new file mode 100644 index 00000000..91046b9e --- /dev/null +++ b/src/brut/androlib/res/data/value/ResColorValue.java @@ -0,0 +1,32 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +/** + * @author Ryszard Wiśniewski + */ +public class ResColorValue extends ResIntValue { + public ResColorValue(int value) { + super(value, "color"); + } + + @Override + public String toResXmlFormat() { + return String.format("#%08x", mValue); + } +} diff --git a/src/brut/androlib/res/data/value/ResEnumAttr.java b/src/brut/androlib/res/data/value/ResEnumAttr.java new file mode 100644 index 00000000..64af2e86 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResEnumAttr.java @@ -0,0 +1,58 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResResource; +import java.io.IOException; +import java.util.Map; +import java.util.Map.Entry; +import org.xmlpull.v1.XmlSerializer; + +/** + * @author Ryszard Wiśniewski + */ +public class ResEnumAttr extends ResMapAttr { + public ResEnumAttr(ResReferenceValue parent, + Map items, int type) { + super(parent, items, type); + } + + @Override + public String convertToResXmlFormat(ResScalarValue value) + throws AndrolibException { + if (value instanceof ResIntValue) { + String ret = getItemsMap().get(((ResIntValue) value).getValue()); + if (ret != null) { + return ret; + } + } + return super.convertToResXmlFormat(value); + } + + @Override + protected void serializeBody(XmlSerializer serializer, ResResource res) + throws AndrolibException, IOException { + for (Entry entry : getItemsMap().entrySet()) { + serializer.startTag(null, "enum"); + serializer.attribute(null, "name", entry.getValue()); + serializer.attribute(null, "value", String.valueOf(entry.getKey())); + serializer.endTag(null, "enum"); + } + } +} diff --git a/src/brut/androlib/res/data/value/ResFileValue.java b/src/brut/androlib/res/data/value/ResFileValue.java new file mode 100644 index 00000000..c322611e --- /dev/null +++ b/src/brut/androlib/res/data/value/ResFileValue.java @@ -0,0 +1,43 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; + +/** + * @author Ryszard Wiśniewski + */ +public class ResFileValue extends ResValue { + private final String mPath; + + public ResFileValue(String path) { + this.mPath = path; + } + + public String getPath() { + return mPath; + } + + public String getStrippedPath() throws AndrolibException { + if (! mPath.startsWith("res/")) { + throw new AndrolibException( + "File path does not start with \"res/\": " + mPath); + } + return mPath.substring(4); + } +} diff --git a/src/brut/androlib/res/data/value/ResFloatValue.java b/src/brut/androlib/res/data/value/ResFloatValue.java new file mode 100644 index 00000000..4538f208 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResFloatValue.java @@ -0,0 +1,39 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +/** + * @author Ryszard Wiśniewski + */ +public class ResFloatValue extends ResScalarValue { + private final float mValue; + + public ResFloatValue(float value) { + super("float"); + this.mValue = value; + } + + public float getValue() { + return mValue; + } + + @Override + public String toResXmlFormat() { + return String.valueOf(mValue); + } +} diff --git a/src/brut/androlib/res/data/value/ResIdValue.java b/src/brut/androlib/res/data/value/ResIdValue.java new file mode 100644 index 00000000..d3d177a7 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResIdValue.java @@ -0,0 +1,36 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResResource; +import java.io.IOException; +import org.xmlpull.v1.XmlSerializer; + +/** + * @author Ryszard Wiśniewski + */ +public class ResIdValue extends ResValue { + public void serializeToXml(XmlSerializer serializer, ResResource res) + throws IOException, AndrolibException { + serializer.startTag(null, "item"); + serializer.attribute(null, "type", "id"); + serializer.attribute(null, "name", res.getResSpec().getName()); + serializer.endTag(null, "item"); + } +} diff --git a/src/brut/androlib/res/data/value/ResIntValue.java b/src/brut/androlib/res/data/value/ResIntValue.java new file mode 100644 index 00000000..2ecc40e3 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResIntValue.java @@ -0,0 +1,45 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; + +/** + * @author Ryszard Wiśniewski + */ +public class ResIntValue extends ResScalarValue implements ResXmlSerializable { + protected final int mValue; + + public ResIntValue(int value) { + this(value, "integer"); + } + + public ResIntValue(int value, String type) { + super(type); + this.mValue = value; + } + + public int getValue() { + return mValue; + } + + @Override + public String toResXmlFormat() throws AndrolibException { + return String.valueOf(mValue); + } +} diff --git a/src/brut/androlib/res/data/value/ResMapAttr.java b/src/brut/androlib/res/data/value/ResMapAttr.java new file mode 100644 index 00000000..cc962eb9 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResMapAttr.java @@ -0,0 +1,61 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Map.Entry; + +/** + * @author Ryszard Wiśniewski + */ +public abstract class ResMapAttr extends ResAttr { + private Map mMap; + + public ResMapAttr(ResReferenceValue parent, + Map items, int type) { + super(parent, items, type); + } + + protected Map getItemsMap() throws AndrolibException { + if (mMap == null) { + loadItemsMap(); + } + return mMap; + } + + private void loadItemsMap() throws AndrolibException { + mMap = new LinkedHashMap(); + Iterator> it = + mItems.entrySet().iterator(); + it.next(); + + while (it.hasNext()) { + Entry entry = it.next(); + // TODO + if (entry.getKey().getValue() < 0x01010000) { + continue; + } + mMap.put( + ((ResIntValue) entry.getValue()).getValue(), + entry.getKey().getReferent().getName()); + } + } +} diff --git a/src/brut/androlib/res/data/value/ResPluralsValue.java b/src/brut/androlib/res/data/value/ResPluralsValue.java new file mode 100644 index 00000000..04e7a2cb --- /dev/null +++ b/src/brut/androlib/res/data/value/ResPluralsValue.java @@ -0,0 +1,75 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import brut.androlib.res.AndrolibResources; +import brut.androlib.res.data.ResResource; +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Map.Entry; +import org.xmlpull.v1.XmlSerializer; + +/** + * @author Ryszard Wiśniewski + */ +public class ResPluralsValue extends ResBagValue implements ResXmlSerializable { + public ResPluralsValue(ResReferenceValue parent, + Map items) { + super(parent, items); + } + + public void serializeToXml(XmlSerializer serializer, ResResource res) + throws IOException, AndrolibException { + serializer.startTag(null, "plurals"); + serializer.attribute(null, "name", res.getResSpec().getName()); + for (Entry entry : getPluralsMap().entrySet()) { + serializer.startTag(null, "item"); + serializer.attribute(null, "quantity", entry.getKey()); + serializer.text(entry.getValue()); + serializer.endTag(null, "item"); + } + serializer.endTag(null, "plurals"); + } + + private Map getPluralsMap() { + Map plurals = new LinkedHashMap(); + for (Entry entry + : mItems.entrySet()) { + String quantity = getQuantityMap()[ + (entry.getKey().getValue() & 0xffff) - 4]; + if (quantity != null) { + String value = ((ResStringValue) entry.getValue()).getValue(); + plurals.put(quantity, AndrolibResources.escapeForResXml(value)); + + } + } + return plurals; + } + + private static String[] getQuantityMap() { + if (quantityMap == null) { + quantityMap = new String[] + {"other", "zero", "one", "two", "few", "many"}; + } + return quantityMap; + } + + private static String[] quantityMap; +} diff --git a/src/brut/androlib/res/data/value/ResReferenceValue.java b/src/brut/androlib/res/data/value/ResReferenceValue.java new file mode 100644 index 00000000..0fc34338 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResReferenceValue.java @@ -0,0 +1,62 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResPackage; +import brut.androlib.res.data.ResResSpec; + +/** + * @author Ryszard Wiśniewski + */ +public class ResReferenceValue extends ResIntValue { + private final ResPackage mPackage; + private final boolean mTheme; + + public ResReferenceValue(ResPackage package_, int value) { + this(package_, value, false); + } + + public ResReferenceValue(ResPackage package_, int value, boolean theme) { + super(value); + mPackage = package_; + mTheme = theme; + } + + @Override + public String toResXmlFormat() throws AndrolibException { + if (isNull()) { + return "@null"; + } +// try { + return + (mTheme ? '?' : '@') + + getReferent().getFullName(mPackage, mTheme); +// } catch (AndrolibException ex) { +// return "@" + String.valueOf(mValue); +// } + } + + public ResResSpec getReferent() throws AndrolibException { + return mPackage.getResTable().getResSpec(getValue()); + } + + public boolean isNull() { + return mValue == 0; + } +} diff --git a/src/brut/androlib/res/data/value/ResScalarValue.java b/src/brut/androlib/res/data/value/ResScalarValue.java new file mode 100644 index 00000000..00d61cb4 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResScalarValue.java @@ -0,0 +1,50 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResResource; +import java.io.IOException; +import org.xmlpull.v1.XmlSerializer; + +/** + * @author Ryszard Wiśniewski + */ +public abstract class ResScalarValue extends ResValue + implements ResXmlPrintable, ResXmlSerializable { + protected final String mType; + + protected ResScalarValue(String type) { + mType = type; + } + + public abstract String toResXmlFormat() throws AndrolibException; + + public void serializeToXml(XmlSerializer serializer, ResResource res) + throws IOException, AndrolibException { + String tagName = res.getResSpec().getType().getName(); + serializer.startTag(null, tagName); + serializer.attribute(null, "name", res.getResSpec().getName()); + serializer.text(toResXmlFormat()); + serializer.endTag(null, tagName); + } + + public String getType() { + return mType; + } +} diff --git a/src/brut/androlib/res/data/value/ResSetAttr.java b/src/brut/androlib/res/data/value/ResSetAttr.java new file mode 100644 index 00000000..dcf0bec6 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResSetAttr.java @@ -0,0 +1,67 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResResource; +import java.io.IOException; +import java.util.Map; +import java.util.Map.Entry; +import org.xmlpull.v1.XmlSerializer; + +/** + * @author Ryszard Wiśniewski + */ +public class ResSetAttr extends ResMapAttr { + public ResSetAttr(ResReferenceValue parent, + Map items, int type) { + super(parent, items, type); + } + + @Override + public String convertToResXmlFormat(ResScalarValue value) + throws AndrolibException { + if (! (value instanceof ResIntValue)) { + return super.convertToResXmlFormat(value); + } + int intVal = ((ResIntValue) value).getValue(); + String strVal = ""; + for (Entry entry : getItemsMap().entrySet()) { + int flag = entry.getKey(); + if ((intVal & flag) == flag) { + strVal += "|" + entry.getValue(); + } + } + if (strVal.isEmpty()) { + return ""; + } + return strVal.substring(1); + } + + @Override + protected void serializeBody(XmlSerializer serializer, ResResource res) + throws AndrolibException, IOException { + for (Entry entry : getItemsMap().entrySet()) { + serializer.startTag(null, "flag"); + serializer.attribute(null, "name", entry.getValue()); + serializer.attribute(null, "value", + String.format("0x%08x", entry.getKey())); + serializer.endTag(null, "flag"); + } + } +} diff --git a/src/brut/androlib/res/data/value/ResStringValue.java b/src/brut/androlib/res/data/value/ResStringValue.java new file mode 100644 index 00000000..068c7f17 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResStringValue.java @@ -0,0 +1,45 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.res.AndrolibResources; + +/** + * @author Ryszard Wiśniewski + */ +public class ResStringValue extends ResScalarValue + implements ResXmlSerializable { + private final String mValue; + + public ResStringValue(String value) { + super("string"); + this.mValue = value; + } + + public String getValue() { + return mValue; + } + + @Override + public String toResXmlFormat() { + if (mValue.isEmpty()) { + return ""; + } + return AndrolibResources.escapeForResXml(mValue); + } +} diff --git a/src/brut/androlib/res/data/value/ResStyleValue.java b/src/brut/androlib/res/data/value/ResStyleValue.java new file mode 100644 index 00000000..da1da193 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResStyleValue.java @@ -0,0 +1,62 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResResSpec; +import brut.androlib.res.data.ResResource; +import java.io.IOException; +import java.util.Map; +import java.util.Map.Entry; +import org.xmlpull.v1.XmlSerializer; + +/** + * @author Ryszard Wiśniewski + */ +public class ResStyleValue extends ResBagValue implements ResXmlSerializable { + public ResStyleValue(ResReferenceValue parent, + Map items) { + super(parent, items); + } + + public void serializeToXml(XmlSerializer serializer, ResResource res) + throws IOException, AndrolibException { + serializer.startTag(null, "style"); + serializer.attribute(null, "name", res.getResSpec().getName()); + if (! mParent.isNull()) { + serializer.attribute(null, "parent", mParent.toResXmlFormat()); + } + for (Entry entry + : mItems.entrySet()) { + ResResSpec spec = entry.getKey().getReferent(); + ResAttr attr = (ResAttr) spec.getDefaultResource().getValue(); + String value = attr.convertToResXmlFormat(entry.getValue()); + + if (value == null) { + continue; + } + + serializer.startTag(null, "item"); + serializer.attribute(null, "name", + spec.getFullName(res.getResSpec().getPackage(), true)); + serializer.text(value); + serializer.endTag(null, "item"); + } + serializer.endTag(null, "style"); + } +} diff --git a/src/brut/androlib/res/data/value/ResValue.java b/src/brut/androlib/res/data/value/ResValue.java new file mode 100644 index 00000000..589c3f14 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResValue.java @@ -0,0 +1,25 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +/** + * @author Ryszard Wiśniewski + */ +public class ResValue { + +} diff --git a/src/brut/androlib/res/data/value/ResValueFactory.java b/src/brut/androlib/res/data/value/ResValueFactory.java new file mode 100644 index 00000000..5b0ffcdd --- /dev/null +++ b/src/brut/androlib/res/data/value/ResValueFactory.java @@ -0,0 +1,157 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResPackage; +import brut.androlib.res.data.ResTable; +import brut.androlib.res.data.ResType; +import brut.androlib.res.jni.JniBagItem; +import brut.androlib.res.jni.JniEntry; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author Ryszard Wiśniewski + */ +public class ResValueFactory { + private final ResPackage mPackage; + + public ResValueFactory(ResPackage pakage_) { + this.mPackage = pakage_; + } + + public ResScalarValue factory(String string) { + if (string.isEmpty()) { + return new ResStringValue(string); + } + char c = string.charAt(0); + if (c == '@' || c == '?') { + return newReference( + Integer.parseInt(string.substring(1)), c == '?'); + } + if (c == '#') { + return new ResColorValue( + (int) Long.parseLong(string.substring(1), 16)); + } + try { + if (string.startsWith("0x")) { + return new ResIntValue( + (int) Long.parseLong(string.substring(2), 16)); + } + return new ResIntValue(Integer.parseInt(string)); + } catch (NumberFormatException ex) {} + return new ResStringValue(string); + } + + public ResValue factory(JniEntry entry) + throws AndrolibException { + if ("id".equals(entry.type)) { + return new ResIdValue(); + } + switch (entry.valueType) { + case TYPE_BAG: + return bagFactory(entry); + case TYPE_REFERENCE: + return newReference(entry.intVal); + case TYPE_ATTRIBUTE: + return newReference(entry.intVal, true); + case TYPE_INT_BOOLEAN: + return new ResBoolValue(entry.boolVal); + case TYPE_INT_DEC: + case TYPE_INT_HEX: + return new ResIntValue(entry.intVal); + case TYPE_FLOAT: + return new ResFloatValue(entry.floatVal); + case TYPE_INT_COLOR_ARGB4: + case TYPE_INT_COLOR_ARGB8: + case TYPE_INT_COLOR_RGB4: + case TYPE_INT_COLOR_RGB8: + return new ResColorValue(entry.intVal); + case TYPE_STRING: + if (entry.strVal.startsWith("res/")) { + return new ResFileValue(entry.strVal); + } + case TYPE_DIMENSION: + case TYPE_FRACTION: + return new ResStringValue(entry.strVal); + } + throw new AndrolibException(String.format( + "Unknown value type for %s/%s: ", + entry.type, entry.name, String.valueOf(entry.valueType))); + } + + private ResValue bagFactory(JniEntry entry) + throws AndrolibException { + ResReferenceValue parent = newReference(entry.bagParent); + Map items = + convertItems(entry.bagItems); + String type = entry.type; + + if ("array".equals(type)) { + return new ResArrayValue(parent, items); + } + if ("style".equals(type)) { + return new ResStyleValue(parent, items); + } + if ("plurals".equals(type)) { + return new ResPluralsValue(parent, items); + } + if ("attr".equals(type)) { + return ResAttrFactory.factory(parent, items); + } + return new ResBagValue(parent, items); + } + + private ResReferenceValue newReference(int resID) { + return newReference(resID, false); + } + + private ResReferenceValue newReference(int resID, boolean theme) { + return new ResReferenceValue(mPackage, resID, theme); + } + + private Map convertItems( + JniBagItem[] jniItems) throws AndrolibException { + Map items = + new LinkedHashMap(); + for (int i = 0; i < jniItems.length; i++) { + JniBagItem jniItem = jniItems[i]; + items.put(newReference(jniItem.resID), + (ResScalarValue) factory(jniItem.entry)); + } + return items; + } + + private final static int TYPE_NULL = 0x00; + private final static int TYPE_REFERENCE = 0x01; + private final static int TYPE_ATTRIBUTE = 0x02; + private final static int TYPE_STRING = 0x03; + private final static int TYPE_FLOAT = 0x04; + private final static int TYPE_DIMENSION = 0x05; + private final static int TYPE_FRACTION = 0x06; + private final static int TYPE_INT_DEC = 0x10; + private final static int TYPE_INT_HEX = 0x11; + private final static int TYPE_INT_BOOLEAN = 0x12; + private final static int TYPE_INT_COLOR_ARGB8 = 0x1c; + private final static int TYPE_INT_COLOR_RGB8 = 0x1d; + private final static int TYPE_INT_COLOR_ARGB4 = 0x1e; + private final static int TYPE_INT_COLOR_RGB4 = 0x1f; + + private final static int TYPE_BAG = -0x01; +} diff --git a/src/brut/androlib/res/data/value/ResXmlPrintable.java b/src/brut/androlib/res/data/value/ResXmlPrintable.java new file mode 100644 index 00000000..e784f524 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResXmlPrintable.java @@ -0,0 +1,27 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; + +/** + * @author Ryszard Wiśniewski + */ +public interface ResXmlPrintable { + public String toResXmlFormat() throws AndrolibException; +} diff --git a/src/brut/androlib/res/data/value/ResXmlSerializable.java b/src/brut/androlib/res/data/value/ResXmlSerializable.java new file mode 100644 index 00000000..e5100315 --- /dev/null +++ b/src/brut/androlib/res/data/value/ResXmlSerializable.java @@ -0,0 +1,31 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.data.value; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.ResResource; +import java.io.IOException; +import org.xmlpull.v1.XmlSerializer; + +/** + * @author Ryszard Wiśniewski + */ +public interface ResXmlSerializable { + public void serializeToXml(XmlSerializer serializer, ResResource res) + throws IOException, AndrolibException; +} diff --git a/src/brut/androlib/res/decoder/JniPackageDecoder.java b/src/brut/androlib/res/decoder/JniPackageDecoder.java new file mode 100644 index 00000000..8bdef5b5 --- /dev/null +++ b/src/brut/androlib/res/decoder/JniPackageDecoder.java @@ -0,0 +1,83 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.decoder; + +import brut.androlib.AndrolibException; +import brut.androlib.res.data.*; +import brut.androlib.res.data.value.ResValue; +import brut.androlib.res.data.value.ResValueFactory; +import brut.androlib.res.jni.*; + +/** + * @author Ryszard Wiśniewski + */ +public class JniPackageDecoder { + public ResPackage decode(JniPackage jniPkg, ResTable resTable) + throws AndrolibException { + ResPackage pkg = new ResPackage(resTable, jniPkg.id, jniPkg.name); + ResValueFactory valueFactory = pkg.getValueFactory(); + + JniConfig[] jniConfigs = jniPkg.configs; + for (int i = 0; i < jniConfigs.length; i++) { + JniConfig jniConfig = jniConfigs[i]; + + ResConfigFlags flags = new ResConfigFlags(jniConfig); + ResConfig config; + if (pkg.hasConfig(flags)) { + config = pkg.getConfig(flags); + } else { + config = new ResConfig(flags); + pkg.addConfig(config); + } + + JniEntry[] jniEntries = jniConfig.entries; + for (int j = 0; j < jniEntries.length; j++) { + JniEntry jniEntry = jniEntries[j]; + + ResType type; + String typeName = jniEntry.type; + if (pkg.hasType(typeName)) { + type = pkg.getType(typeName); + } else { + type = new ResType(typeName, resTable, pkg); + pkg.addType(type); + } + + ResID resID = new ResID(jniEntry.resID); + ResResSpec spec; + if (pkg.hasResSpec(resID)) { + spec = pkg.getResSpec(resID); + } else { + spec = new ResResSpec(resID, jniEntry.name, pkg, type); + pkg.addResSpec(spec); + type.addResSpec(spec); + } + + ResValue value = valueFactory.factory(jniEntry); + ResResource res = + new ResResource(config, spec, value); + + config.addResource(res); + spec.addResource(res); + pkg.addResource(res); + } + } + + return pkg; + } +} diff --git a/src/brut/androlib/res/decoder/ResFileDecoder.java b/src/brut/androlib/res/decoder/ResFileDecoder.java new file mode 100644 index 00000000..c0f58877 --- /dev/null +++ b/src/brut/androlib/res/decoder/ResFileDecoder.java @@ -0,0 +1,87 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.decoder; + +import brut.androlib.AndrolibException; +import brut.directory.Directory; +import brut.directory.DirectoryException; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * @author Ryszard Wiśniewski + */ +public class ResFileDecoder { + private final ResStreamDecoderContainer mDecoders; + + public ResFileDecoder(ResStreamDecoderContainer decoders) { + this.mDecoders = decoders; + } + + public void decode(Directory inDir, String inFileName, Directory outDir, + String outResName) throws AndrolibException { + String ext = ""; + int extPos = inFileName.lastIndexOf("."); + if (extPos != -1) { + ext = inFileName.substring(extPos); + } + + if (inFileName.startsWith("raw/")) { + decode(inDir, inFileName, outDir, outResName + ext, "raw"); + return; + } + if (inFileName.endsWith(".9.png")) { + decode(inDir, inFileName, outDir, outResName + ".png", "raw"); + return; + } + if (inFileName.endsWith(".xml")) { + decode(inDir, inFileName, outDir, outResName + ".xml", "xml"); + return; + } + if (inFileName.endsWith(".html")) { + decode(inDir, inFileName, outDir, outResName + ".html", "xml"); + return; + } + + decode(inDir, inFileName, outDir, outResName + ext, "raw"); + } + + public void decode(Directory inDir, String inFileName, Directory outDir, + String outFileName, String decoder) throws AndrolibException { + try { + InputStream in = inDir.getFileInput(inFileName); + OutputStream out = outDir.getFileOutput(outFileName); + mDecoders.decode(in, out, decoder); + in.close(); + out.close(); + } catch (AndrolibException ex) { + throw new AndrolibException(String.format( + "Could not decode file \"%s\" to \"%s\"", + inFileName, outFileName), ex); + } catch (IOException ex) { + throw new AndrolibException(String.format( + "Could not decode file \"%s\" to \"%s\"", + inFileName, outFileName), ex); + } catch (DirectoryException ex) { + throw new AndrolibException(String.format( + "Could not decode file \"%s\" to \"%s\"", + inFileName, outFileName), ex); + } + } +} diff --git a/src/brut/androlib/res/decoder/ResRawStreamDecoder.java b/src/brut/androlib/res/decoder/ResRawStreamDecoder.java new file mode 100644 index 00000000..be38c823 --- /dev/null +++ b/src/brut/androlib/res/decoder/ResRawStreamDecoder.java @@ -0,0 +1,38 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.decoder; + +import brut.androlib.AndrolibException; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import org.apache.commons.io.IOUtils; + +/** + * @author Ryszard Wiśniewski + */ +public class ResRawStreamDecoder implements ResStreamDecoder { + public void decode(InputStream in, OutputStream out) + throws AndrolibException { + try { + IOUtils.copy(in, out); + } catch (IOException ex) { + throw new AndrolibException("Could not decode raw stream", ex); + } + } +} diff --git a/src/brut/androlib/res/decoder/ResStreamDecoder.java b/src/brut/androlib/res/decoder/ResStreamDecoder.java new file mode 100644 index 00000000..73bd7975 --- /dev/null +++ b/src/brut/androlib/res/decoder/ResStreamDecoder.java @@ -0,0 +1,30 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.decoder; + +import brut.androlib.AndrolibException; +import java.io.InputStream; +import java.io.OutputStream; + +/** + * @author Ryszard Wiśniewski + */ +public interface ResStreamDecoder { + public void decode(InputStream in, OutputStream out) + throws AndrolibException; +} diff --git a/src/brut/androlib/res/decoder/ResStreamDecoderContainer.java b/src/brut/androlib/res/decoder/ResStreamDecoderContainer.java new file mode 100644 index 00000000..71c8a6fe --- /dev/null +++ b/src/brut/androlib/res/decoder/ResStreamDecoderContainer.java @@ -0,0 +1,49 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.decoder; + +import brut.androlib.AndrolibException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.HashMap; +import java.util.Map; + +/** + * @author Ryszard Wiśniewski + */ +public class ResStreamDecoderContainer { + private final Map mDecoders = + new HashMap(); + + public void decode(InputStream in, OutputStream out, String decoderName) + throws AndrolibException { + getDecoder(decoderName).decode(in, out); + } + + public ResStreamDecoder getDecoder(String name) throws AndrolibException { + ResStreamDecoder decoder = mDecoders.get(name); + if (decoder== null) { + throw new AndrolibException("Undefined decoder: " + name); + } + return decoder; + } + + public void setDecoder(String name, ResStreamDecoder decoder) { + mDecoders.put(name, decoder); + } +} diff --git a/src/brut/androlib/res/decoder/ResXmlSerializer.java b/src/brut/androlib/res/decoder/ResXmlSerializer.java new file mode 100644 index 00000000..5c4f943d --- /dev/null +++ b/src/brut/androlib/res/decoder/ResXmlSerializer.java @@ -0,0 +1,109 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.decoder; + +import brut.androlib.*; +import brut.androlib.res.AndrolibResources; +import brut.androlib.res.data.ResPackage; +import brut.androlib.res.data.value.ResAttr; +import java.io.IOException; +import org.xmlpull.mxp1_serializer.MXSerializer; +import org.xmlpull.v1.XmlSerializer; + +/** + * @author Ryszard Wiśniewski + */ +public class ResXmlSerializer extends MXSerializer { + private final static String RES_NAMESPACE = + "http://schemas.android.com/apk/res/android"; + + private ResPackage mCurrentPackage; + private boolean mDecodingEnabled = true; + + @Override + public XmlSerializer attribute(String namespace, String name, String value) + throws IOException, IllegalArgumentException, IllegalStateException + { + if (! mDecodingEnabled) { + return super.attribute(namespace, name, value); + } + if (namespace == null || namespace.isEmpty()) { + return super.attribute(namespace, name, +// AndrolibResources.escapeForResXml(value) + value + ); + } + String pkgName = RES_NAMESPACE.equals(namespace) ? + "android" : mCurrentPackage.getName(); + + try { + ResAttr attr = (ResAttr) mCurrentPackage.getResTable() + .getValue(pkgName, "attr", name); + value = attr.convertToResXmlFormat( + mCurrentPackage.getValueFactory().factory(value)); + } catch (AndrolibException ex) { + throw new IllegalArgumentException(String.format( + "could not decode attribute: ns=%s, name=%s, value=%s", + getPrefix(namespace, false), name, value), ex); + } + + if (value == null) { + return this; + } + +// if ("id".equals(name) && value.startsWith("@id")) { + if (value.startsWith("@id")) { + value = "@+id" + value.substring(3); + } + return super.attribute(namespace, name, value); + } + + @Override + public XmlSerializer text(String text) throws IOException { + if (mDecodingEnabled) { + text = AndrolibResources.escapeForResXml(text); + } + return super.text(text); + } + + @Override + public XmlSerializer text(char[] buf, int start, int len) throws IOException { + if (mDecodingEnabled) { + return this.text(new String(buf, start, len)); + } + return super.text(buf, start, len); + } + + @Override + public void startDocument(String encoding, Boolean standalone) throws + IOException, IllegalArgumentException, IllegalStateException { + super.startDocument(encoding != null ? encoding : "UTF-8", standalone); + super.out.write("\n"); + super.setPrefix("android", RES_NAMESPACE); + } + + public void setCurrentPackage(ResPackage package_) { + mCurrentPackage = package_; + } + + public boolean setDecodingEnabled(boolean escapeRefs) { + boolean oldVal = mDecodingEnabled; + this.mDecodingEnabled = escapeRefs; + return oldVal; + } +} diff --git a/src/brut/androlib/res/decoder/ResXmlStreamDecoder.java b/src/brut/androlib/res/decoder/ResXmlStreamDecoder.java new file mode 100644 index 00000000..83863c1b --- /dev/null +++ b/src/brut/androlib/res/decoder/ResXmlStreamDecoder.java @@ -0,0 +1,80 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.decoder; + +import android.content.res.XmlBlock; +import brut.androlib.AndrolibException; +import java.io.*; +import org.apache.commons.io.IOUtils; +import org.xmlpull.v1.*; +import org.xmlpull.v1.wrapper.*; + +/** + * @author Ryszard Wiśniewski + */ +public class ResXmlStreamDecoder implements ResStreamDecoder { + private final ResXmlSerializer mSerializer; + + public ResXmlStreamDecoder(ResXmlSerializer serializer) { + this.mSerializer = serializer; + } + + public void decode(InputStream in, OutputStream out) + throws AndrolibException { + try { + XmlPullParserWrapper par = + getResXmlParserWrapper(in); + XmlSerializerWrapper ser = + getXmlWrapperFactory().newSerializerWrapper(mSerializer); + ser.setOutput(out, null); + mSerializer.setDecodingEnabled(true); + + while (par.nextToken() != XmlPullParser.END_DOCUMENT) { + ser.event(par); + } + ser.flush(); + } catch (IOException ex) { + throw new AndrolibException("could not decode XML stream", ex); + } catch (IllegalArgumentException ex) { + throw new AndrolibException("could not decode XML stream", ex); + } catch (IllegalStateException ex) { + throw new AndrolibException("could not decode XML stream", ex); + } catch (XmlPullParserException ex) { + throw new AndrolibException("could not decode XML stream", ex); + } + } + + private XmlPullParserWrapper getResXmlParserWrapper(InputStream in) + throws IOException, XmlPullParserException { + XmlBlock xml = new XmlBlock(copyStreamToByteArray(in)); + XmlPullParser parser = xml.newParser(); + return getXmlWrapperFactory().newPullParserWrapper(parser); + } + + private XmlPullWrapperFactory getXmlWrapperFactory() + throws XmlPullParserException { + return XmlPullWrapperFactory.newInstance(); + } + + private byte[] copyStreamToByteArray(InputStream in) throws IOException { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + IOUtils.copy(in, out); + return out.toByteArray(); + } + +} diff --git a/src/brut/androlib/res/jni/JniBagItem.java b/src/brut/androlib/res/jni/JniBagItem.java new file mode 100644 index 00000000..84296c5a --- /dev/null +++ b/src/brut/androlib/res/jni/JniBagItem.java @@ -0,0 +1,31 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.jni; + +/** + * @author Ryszard Wiśniewski + */ +public class JniBagItem { + public final int resID; + public final JniEntry entry; + + public JniBagItem(int resID, JniEntry entry) { + this.resID = resID; + this.entry = entry; + } +} diff --git a/src/brut/androlib/res/jni/JniConfig.java b/src/brut/androlib/res/jni/JniConfig.java new file mode 100644 index 00000000..4f2aa2df --- /dev/null +++ b/src/brut/androlib/res/jni/JniConfig.java @@ -0,0 +1,66 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.jni; + +/** + * @author Ryszard Wiśniewski + */ +public class JniConfig { + public final int mcc; + public final int mnc; + + public final char[] language; + public final char[] country; + + public final int orientation; + public final int touchscreen; + public final int density; + + public final int keyboard; + public final int navigation; + public final int inputFlags; + + public final int screenWidth; + public final int screenHeight; + public final int screenLayout; + + public final int sdkVersion; + + public final JniEntry[] entries; + + public JniConfig(int mcc, int mnc, char[] language, char[] country, + int orientation, int touchscreen, int density, int keyboard, + int navigation, int inputFlags, int screenWidth, int screenHeight, + int screenLayout, int sdkVersion, JniEntry[] entries) { + this.mcc = mcc; + this.mnc = mnc; + this.language = language; + this.country = country; + this.orientation = orientation; + this.touchscreen = touchscreen; + this.density = density; + this.keyboard = keyboard; + this.navigation = navigation; + this.inputFlags = inputFlags; + this.screenWidth = screenWidth; + this.screenHeight = screenHeight; + this.screenLayout = screenLayout; + this.sdkVersion = sdkVersion; + this.entries = entries; + } +} diff --git a/src/brut/androlib/res/jni/JniEntry.java b/src/brut/androlib/res/jni/JniEntry.java new file mode 100644 index 00000000..15c8acd6 --- /dev/null +++ b/src/brut/androlib/res/jni/JniEntry.java @@ -0,0 +1,52 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.jni; + +/** + * @author Ryszard Wiśniewski + */ +public class JniEntry { + public final int resID; + public final String name; + public final String type; + + public final int valueType; + + public final boolean boolVal; + public final int intVal; + public final float floatVal; + public final String strVal; + + public final int bagParent; + public final JniBagItem[] bagItems; + + public JniEntry(int resID, String name, String type, int valueType, + boolean boolVal, int intVal, float floatVal, String strVal, + int bagParent, JniBagItem[] bagItems) { + this.resID = resID; + this.name = name; + this.type = type; + this.valueType = valueType; + this.boolVal = boolVal; + this.intVal = intVal; + this.floatVal = floatVal; + this.strVal = strVal; + this.bagParent = bagParent; + this.bagItems = bagItems; + } +} diff --git a/src/brut/androlib/res/jni/JniPackage.java b/src/brut/androlib/res/jni/JniPackage.java new file mode 100644 index 00000000..5a61242b --- /dev/null +++ b/src/brut/androlib/res/jni/JniPackage.java @@ -0,0 +1,33 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.jni; + +/** + * @author Ryszard Wiśniewski + */ +public class JniPackage { + public final int id; + public final String name; + public final JniConfig[] configs; + + public JniPackage(int id, String name, JniConfig[] configs) { + this.id = id; + this.name = name; + this.configs = configs; + } +} diff --git a/src/brut/androlib/res/jni/JniPackageGroup.java b/src/brut/androlib/res/jni/JniPackageGroup.java new file mode 100644 index 00000000..a9704a7b --- /dev/null +++ b/src/brut/androlib/res/jni/JniPackageGroup.java @@ -0,0 +1,29 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.jni; + +/** + * @author Ryszard Wiśniewski + */ +public class JniPackageGroup { + public final JniPackage[] packages; + + public JniPackageGroup(JniPackage[] packages) { + this.packages = packages; + } +} diff --git a/src/brut/androlib/res/jni/JniType.java b/src/brut/androlib/res/jni/JniType.java new file mode 100644 index 00000000..e875fea3 --- /dev/null +++ b/src/brut/androlib/res/jni/JniType.java @@ -0,0 +1,33 @@ +/* + * Copyright 2010 Ryszard Wiśniewski . + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ + +package brut.androlib.res.jni; + +/** + * @author Ryszard Wiśniewski + */ +public class JniType { + public final int entryCount; + public final int typeSpecFlags; + public final JniConfig[] configs; + + public JniType(int entryCount, int typeSpecFlags, JniConfig[] configs) { + this.entryCount = entryCount; + this.typeSpecFlags = typeSpecFlags; + this.configs = configs; + } +} diff --git a/src/resources.arsc b/src/resources.arsc new file mode 100644 index 0000000000000000000000000000000000000000..ffb436871550397b6b9f2f3a90a87112628886e7 GIT binary patch literal 1768940 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

6@CfL)M*c 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

d#MW?Pwzkj$Ytgtr#JYx>r0{{;%0ijLinHF( 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

-^qrkt)ur$n(3-ui$n)-MOhTdHoY-3}}30u*>y* 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Ð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 Y^^$A+T)h;uZr7~m)=Q17I

L} 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