message: Add extra Dex file structs
  Summary: Added some more structs to DexDefs.h for help in parsing Dex file Map lists. The format comes from
diff: #define DEX_HEADER_DEXMAGIC_V37 "dex\n037"
  #define ENDIAN_CONSTANT (0x12345678)
  +/* clang-format off */
  #define TYPE_HEADER_ITEM (0x0000)
  #define TYPE_STRING_ID_ITEM (0x0001)
  #define TYPE_TYPE_ID_ITEM (0x0002)
  #define TYPE_FIELD_ID_ITEM (0x0004)
  #define TYPE_METHOD_ID_ITEM (0x0005)
  #define TYPE_CLASS_DEF_ITEM (0x0006)
  +#define TYPE_CALL_SITE_ID_ITEM (0x0007)
  +#define TYPE_METHOD_HANDLE_ITEM (0x0008)
  #define TYPE_MAP_LIST (0x1000)
  #define TYPE_TYPE_LIST (0x1001)
  #define TYPE_ANNOTATION_SET_REF_LIST (0x1002)
  #define TYPE_ENCODED_ARRAY_ITEM (0x2005)
  #define TYPE_ANNOTATIONS_DIR_ITEM (0x2006)
  +#define METHOD_HANDLE_TYPE_STATIC_PUT (0x00)
  +#define METHOD_HANDLE_TYPE_STATIC_GET (0x00)
  +#define METHOD_HANDLE_TYPE_INSTANCE_PUT (0x00)
  +#define METHOD_HANDLE_TYPE_INSTANCE_GET (0x00)
  +#define METHOD_HANDLE_TYPE_INVOKE_STATIC (0x00)
  +#define METHOD_HANDLE_TYPE_INVOKE_INSTANCE (0x00)
  +#define METHOD_HANDLE_TYPE_INVOKE_CONSTRUCTOR (0x00)
  +#define METHOD_HANDLE_TYPE_INVOKE_DIRECT (0x00)
  +#define METHOD_HANDLE_TYPE_INVOKE_INTERFACE (0x00)
  +/* clang-format on */
  +
  #define type_id_item uint32_t
  #define string_id_item uint32_t
  @@ -130,6 +144,36 @@ PACKED(struct dex_proto_id {
  uint32_t param_off;
  });
  +PACKED(struct dex_call_site_id_item { uint32_t call_site_off; });
  +
  +PACKED(struct dex_method_handle_item {
  + uint16_t method_handle_type;
  + uint16_t unused_a;
  + uint16_t field_or_method_id;
  + uint16_t unused_b;
  +});
  +
  +PACKED(struct dex_field_annotation {
  + uint32_t field_idx;
  + uint32_t annotations_off;
  +});
  +
  +PACKED(struct dex_method_annotation {
  + uint32_t method_idx;
  + uint32_t annotations_off;
  +});
  +
  +PACKED(struct dex_parameter_annotation {
  + uint32_t method_idx;
  + uint32_t annotations_off;
  +});
  +
  +PACKED(struct dex_type_item { uint16_t type_idx; });
  +
  +PACKED(struct dex_annotation_set_ref_item { uint32_t annotations_off; });
  +
  +PACKED(struct dex_annotation_off_item { uint32_t annotation_off; });
  +
  PACKED(struct dex_code_item {
  uint16_t registers_size;
  uint16_t ins_size;
  