/** * Returns the list of all method references. */ public MethodRef[] getMethodRefs() { MethodRef[] methodRefs = new MethodRef[mMethodIds.length]; for (int i = 0; i < mMethodIds.length; i++) { MethodIdItem methodId = mMethodIds[i]; methodRefs[i] = new MethodRef( classNameFromTypeIndex(methodId.classIdx), argArrayFromProtoIndex(methodId.protoIdx), returnTypeFromProtoIndex(methodId.protoIdx), mStrings[methodId.nameIdx]); } return methodRefs; }
/** * Loads the contents of the DEX file into our data structures. * * @throws IOException if we encounter a problem while reading * @throws DexDataException if the DEX contents look bad */ public void load() throws IOException { parseHeaderItem(); loadStrings(); loadTypeIds(); loadProtoIds(); loadFieldIds(); loadMethodIds(); loadClassDefs(); markInternalClasses(); }
addExternalFieldReferences(sparseRefs); addExternalMethodReferences(sparseRefs);
private static MethodRef[] getMethodRefs(DexData dexData, Filter filter) { MethodRef[] methodRefs = dexData.getMethodRefs(); ClassRef[] externalClassRefs = dexData.getExternalReferences();
/** * Prints the data in a simple human-readable format. */ static void printBrief(DexData dexData, boolean justClasses) { ClassRef[] externClassRefs = dexData.getExternalReferences(); printClassRefs(externClassRefs, justClasses); if (!justClasses) { printFieldRefs(externClassRefs); printMethodRefs(externClassRefs); } }
public FieldRef[] getFieldRefs() { FieldRef[] fieldRefs = new FieldRef[mFieldIds.length]; for (int i = 0; i < mFieldIds.length; i++) { FieldIdItem fieldId = mFieldIds[i]; fieldRefs[i] = new FieldRef( classNameFromTypeIndex(fieldId.classIdx), classNameFromTypeIndex(fieldId.typeIdx), mStrings[fieldId.nameIdx]); } return fieldRefs; }
private static FieldRef[] getFieldRefs(DexData dexData, Filter filter) { FieldRef[] fieldRefs = dexData.getFieldRefs(); // out.println("Read in " + fieldRefs.length + " field IDs from " + dexData.getDexFileName() + "."); if (filter == Filter.ALL) { return fieldRefs; } ClassRef[] externalClassRefs = dexData.getExternalReferences(); //out.println("Read in " + externalClassRefs.length + " external class references."); Set<FieldRef> externalFieldRefs = new HashSet<FieldRef>(); for (ClassRef classRef : externalClassRefs) { Collections.addAll(externalFieldRefs, classRef.getFieldArray()); } //out.println("Read in " + externalFieldRefs.size() + " external field references."); List<FieldRef> filteredFieldRefs = new ArrayList<FieldRef>(); for (FieldRef FieldRef : fieldRefs) { boolean isExternal = externalFieldRefs.contains(FieldRef); if ((filter == Filter.DEFINED_ONLY && !isExternal) || (filter == Filter.REFERENCED_ONLY && isExternal)) { filteredFieldRefs.add(FieldRef); } } //out.println("Filtered to " + filteredFieldRefs.size() + " " + // (filter == Filter.DEFINED_ONLY ? "defined" : "referenced") + " field IDs."); return filteredFieldRefs.toArray(new FieldRef[filteredFieldRefs.size()]); }
addExternalFieldReferences(sparseRefs); addExternalMethodReferences(sparseRefs);
private MethodRef[] getMethodRefs(DexData dexData, Filter filter) { MethodRef[] methodRefs = dexData.getMethodRefs(); log.println("Read in " + methodRefs.length + " method IDs."); if (filter == Filter.ALL) { ClassRef[] externalClassRefs = dexData.getExternalReferences(); log.println("Read in " + externalClassRefs.length + " external class references.");
/** * Prints the data in a simple human-readable format. */ static void printBrief(DexData dexData, boolean justClasses) { ClassRef[] externClassRefs = dexData.getExternalReferences(); printClassRefs(externClassRefs, justClasses); if (!justClasses) { printFieldRefs(externClassRefs); printMethodRefs(externClassRefs); } }
/** * Returns the list of all field references. */ public FieldRef[] getFieldRefs() { FieldRef[] fieldRefs = new FieldRef[mFieldIds.length]; for (int i = 0; i < mFieldIds.length; i++) { FieldIdItem fieldId = mFieldIds[i]; fieldRefs[i] = new FieldRef( classNameFromTypeIndex(fieldId.classIdx), classNameFromTypeIndex(fieldId.typeIdx), mStrings[fieldId.nameIdx]); } return fieldRefs; }
private static FieldInfo getFieldRef(DexData dexData, Filter filter) { final FieldRef[] fieldRefs = dexData.getFieldRefs(); final StringBuilder builder = new StringBuilder(); final ClassRef[] externalClassRefs = dexData.getExternalReferences(); builder.append("Read in ") .append(externalClassRefs.length)
/** * Loads the contents of the DEX file into our data structures. * * @throws IOException if we encounter a problem while reading * @throws DexDataException if the DEX contents look bad */ public void load() throws IOException { parseHeaderItem(); loadStrings(); loadTypeIds(); loadProtoIds(); loadFieldIds(); loadMethodIds(); loadClassDefs(); markInternalClasses(); }
/** * Returns the list of all method references. */ public MethodRef[] getMethodRefs() { MethodRef[] methodRefs = new MethodRef[mMethodIds.length]; for (int i = 0; i < mMethodIds.length; i++) { MethodIdItem methodId = mMethodIds[i]; methodRefs[i] = new MethodRef( classNameFromTypeIndex(methodId.classIdx), argArrayFromProtoIndex(methodId.protoIdx), returnTypeFromProtoIndex(methodId.protoIdx), mStrings[methodId.nameIdx]); } return methodRefs; }
addExternalFieldReferences(sparseRefs); addExternalMethodReferences(sparseRefs);
private static MethodInfo getMethodRefs(DexData dexData, Filter filter) { final MethodRef[] methodRefs = dexData.getMethodRefs(); final StringBuilder builder = new StringBuilder(); final ClassRef[] externalClassRefs = dexData.getExternalReferences(); builder.append("Read in ") .append(externalClassRefs.length)
/** * Prints the data in a simple human-readable format. */ static void printBrief(DexData dexData, boolean justClasses) { ClassRef[] externClassRefs = dexData.getExternalReferences(); printClassRefs(externClassRefs, justClasses); if (!justClasses) { printFieldRefs(externClassRefs); printMethodRefs(externClassRefs); } }
/** * Returns the list of all field references. */ public FieldRef[] getFieldRefs() { FieldRef[] fieldRefs = new FieldRef[mFieldIds.length]; for (int i = 0; i < mFieldIds.length; i++) { FieldIdItem fieldId = mFieldIds[i]; fieldRefs[i] = new FieldRef( classNameFromTypeIndex(fieldId.classIdx), classNameFromTypeIndex(fieldId.typeIdx), mStrings[fieldId.nameIdx]); } return fieldRefs; }
/** * Loads the contents of the DEX file into our data structures. * * @throws IOException if we encounter a problem while reading * @throws DexDataException if the DEX contents look bad */ public void load() throws IOException { parseHeaderItem(); loadStrings(); loadTypeIds(); loadProtoIds(); loadFieldIds(); loadMethodIds(); loadClassDefs(); markInternalClasses(); }
/** * Returns the list of all method references. */ public MethodRef[] getMethodRefs() { MethodRef[] methodRefs = new MethodRef[mMethodIds.length]; for (int i = 0; i < mMethodIds.length; i++) { MethodIdItem methodId = mMethodIds[i]; methodRefs[i] = new MethodRef( classNameFromTypeIndex(methodId.classIdx), argArrayFromProtoIndex(methodId.protoIdx), returnTypeFromProtoIndex(methodId.protoIdx), mStrings[methodId.nameIdx]); } return methodRefs; }