public static String[] getStrings(@Nonnull RawDexFile dexFile) { MapItem mapItem = dexFile.getMapItemForSection(ItemType.STRING_ID_ITEM); if (mapItem == null) { return new String[0]; } int stringCount = mapItem.getItemCount(); String[] ret = new String[stringCount]; for (int i=0; i<stringCount; i++) { ret[i] = dexFile.getString(i); } return ret; } }
@Override public void annotateItem(@Nonnull AnnotatedBytes out, int itemIndex, @Nullable String itemIdentity) { int stringDataOffset = dexFile.readSmallUint(out.getCursor()); try { String stringValue = dexFile.getString(itemIndex); out.annotate(4, "string_data_item[0x%x]: \"%s\"", stringDataOffset, StringUtils.escapeString(stringValue)); return; } catch (Exception ex) { System.err.print("Error while resolving string value at index: "); System.err.print(itemIndex); ex.printStackTrace(System.err); } out.annotate(4, "string_id_item[0x%x]", stringDataOffset); } };
public static String[] getStrings(@Nonnull RawDexFile dexFile) { MapItem mapItem = dexFile.getMapItemForSection(ItemType.STRING_ID_ITEM); if (mapItem == null) { return new String[0]; } int stringCount = mapItem.getItemCount(); String[] ret = new String[stringCount]; for (int i=0; i<stringCount; i++) { ret[i] = dexFile.getString(i); } return ret; } }
public static String[] getStrings(@Nonnull RawDexFile dexFile) { MapItem mapItem = dexFile.getMapItemForSection(ItemType.STRING_ID_ITEM); if (mapItem == null) { return new String[0]; } int stringCount = mapItem.getItemCount(); String[] ret = new String[stringCount]; for (int i=0; i<stringCount; i++) { ret[i] = dexFile.getString(i); } return ret; } }
@Override public void annotateItem(@Nonnull AnnotatedBytes out, int itemIndex, @Nullable String itemIdentity) { int stringDataOffset = dexFile.readSmallUint(out.getCursor()); try { String stringValue = dexFile.getString(itemIndex); out.annotate(4, "string_data_item[0x%x]: \"%s\"", stringDataOffset, StringUtils.escapeString(stringValue)); return; } catch (Exception ex) { System.err.print("Error while resolving string value at index: "); System.err.print(itemIndex); ex.printStackTrace(System.err); } out.annotate(4, "string_id_item[0x%x]", stringDataOffset); } };
@Override public void annotateItem(@Nonnull AnnotatedBytes out, int itemIndex, @Nullable String itemIdentity) { int stringDataOffset = dexFile.readSmallUint(out.getCursor()); try { String stringValue = dexFile.getString(itemIndex); out.annotate(4, "string_data_item[0x%x]: \"%s\"", stringDataOffset, StringUtils.escapeString(stringValue)); return; } catch (Exception ex) { System.err.print("Error while resolving string value at index: "); System.err.print(itemIndex); ex.printStackTrace(System.err); } out.annotate(4, "string_id_item[0x%x]", stringDataOffset); } };