6
6
*/
7
7
package org .freeinternals .biv .ui .dex ;
8
8
9
+ import java .nio .charset .StandardCharsets ;
9
10
import java .util .Map ;
10
11
import javax .swing .tree .DefaultMutableTreeNode ;
11
12
import org .freeinternals .commonlib .core .FileComponent ;
12
13
import org .freeinternals .commonlib .ui .JTreeNodeFileComponent ;
13
14
import org .freeinternals .format .dex .ClassDefItem ;
14
15
import org .freeinternals .format .dex .DexFile ;
15
- import org .freeinternals .format .dex .Dex_ubyte ;
16
- import org .freeinternals .format .dex .Dex_uint ;
17
- import org .freeinternals .format .dex .Dex_ushort ;
16
+ import org .freeinternals .format .dex .Type_ubyte ;
17
+ import org .freeinternals .format .dex .Type_uint ;
18
+ import org .freeinternals .format .dex .Type_ushort ;
18
19
import org .freeinternals .format .dex .FieldIdItem ;
19
20
import org .freeinternals .format .dex .HeaderItem ;
20
21
import org .freeinternals .format .dex .HeaderItem .Endian ;
@@ -76,13 +77,13 @@ private void generateMagic() {
76
77
magicNode .add (new DefaultMutableTreeNode (new JTreeNodeFileComponent (
77
78
startPos ,
78
79
DexFile .DEX_FILE_MAGIC1 .size (),
79
- "magic 1" )));
80
+ "magic 1: " + new String ( this . dexFile . magic1 , StandardCharsets . UTF_8 ) )));
80
81
startPos += DexFile .DEX_FILE_MAGIC1 .size ();
81
82
82
83
magicNode .add (new DefaultMutableTreeNode (new JTreeNodeFileComponent (
83
84
startPos ,
84
85
DexFile .DEX_FILE_MAGIC2 .size (),
85
- "magic 2" )));
86
+ "magic 2: " + new String ( this . dexFile . magic2 , StandardCharsets . UTF_8 ) )));
86
87
}
87
88
88
89
private void generateHeaderItem () {
@@ -96,76 +97,76 @@ private void generateHeaderItem() {
96
97
"header_item" ));
97
98
this .rootNode .add (headerNode );
98
99
99
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "checksum" , header .checksum );
100
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "checksum" , header .checksum );
100
101
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
101
102
102
103
headerNode .add (new DefaultMutableTreeNode (new JTreeNodeFileComponent (
103
104
startPos ,
104
105
header .signature .length ,
105
- "signature: " + Dex_ubyte .toString (header .signature ))));
106
+ "signature: " + Type_ubyte .toString (header .signature ))));
106
107
startPos += header .signature .length ;
107
108
108
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "file_size" , header .file_size );
109
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "file_size" , header .file_size );
109
110
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
110
111
111
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "header_size" , header .header_size );
112
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "header_size" , header .header_size );
112
113
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
113
114
114
115
headerNode .add (new DefaultMutableTreeNode (new JTreeNodeFileComponent (
115
116
startPos ,
116
- Dex_uint .LENGTH ,
117
+ Type_uint .LENGTH ,
117
118
"endian_tag: " + header .endian_tag .toString () + " / " + Endian .toString (header .endian_tag .intValue ()))));
118
- startPos += Dex_uint .LENGTH ;
119
+ startPos += Type_uint .LENGTH ;
119
120
120
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "link_size" , header .link_size );
121
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "link_size" , header .link_size );
121
122
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
122
123
123
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "link_off" , header .link_off );
124
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "link_off" , header .link_off );
124
125
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
125
126
126
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "map_off" , header .map_off );
127
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "map_off" , header .map_off );
127
128
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
128
129
129
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "string_ids_size" , header .string_ids_size );
130
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "string_ids_size" , header .string_ids_size );
130
131
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
131
132
132
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "string_ids_off" , header .string_ids_off );
133
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "string_ids_off" , header .string_ids_off );
133
134
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
134
135
135
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "type_ids_size" , header .type_ids_size );
136
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "type_ids_size" , header .type_ids_size );
136
137
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
137
138
138
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "type_ids_off" , header .type_ids_off );
139
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "type_ids_off" , header .type_ids_off );
139
140
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
140
141
141
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "proto_ids_size" , header .proto_ids_size );
142
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "proto_ids_size" , header .proto_ids_size );
142
143
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
143
144
144
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "proto_ids_off" , header .proto_ids_off );
145
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "proto_ids_off" , header .proto_ids_off );
145
146
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
146
147
147
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "field_ids_size" , header .field_ids_size );
148
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "field_ids_size" , header .field_ids_size );
148
149
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
149
150
150
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "field_ids_off" , header .field_ids_off );
151
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "field_ids_off" , header .field_ids_off );
151
152
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
152
153
153
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "method_ids_size" , header .method_ids_size );
154
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "method_ids_size" , header .method_ids_size );
154
155
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
155
156
156
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "method_ids_off" , header .method_ids_off );
157
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "method_ids_off" , header .method_ids_off );
157
158
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
158
159
159
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "class_defs_size" , header .class_defs_size );
160
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "class_defs_size" , header .class_defs_size );
160
161
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
161
162
162
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "class_defs_off" , header .class_defs_off );
163
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "class_defs_off" , header .class_defs_off );
163
164
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
164
165
165
- nodeTemp = this .addNode (headerNode , startPos , Dex_uint .LENGTH , "data_size" , header .data_size );
166
+ nodeTemp = this .addNode (headerNode , startPos , Type_uint .LENGTH , "data_size" , header .data_size );
166
167
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
167
168
168
- this .addNode (headerNode , startPos , Dex_uint .LENGTH , "data_off" , header .data_off );
169
+ this .addNode (headerNode , startPos , Type_uint .LENGTH , "data_off" , header .data_off );
169
170
}
170
171
171
172
private void generateStringIds () {
@@ -178,7 +179,7 @@ private void generateStringIds() {
178
179
179
180
DefaultMutableTreeNode node = new DefaultMutableTreeNode (new JTreeNodeFileComponent (
180
181
startPos ,
181
- size * Dex_uint .LENGTH ,
182
+ size * Type_uint .LENGTH ,
182
183
"string_ids" ));
183
184
this .rootNode .add (node );
184
185
@@ -212,7 +213,7 @@ private void generateTypeIds() {
212
213
213
214
DefaultMutableTreeNode node = new DefaultMutableTreeNode (new JTreeNodeFileComponent (
214
215
startPos ,
215
- size * Dex_uint .LENGTH ,
216
+ size * Type_uint .LENGTH ,
216
217
"type_ids" ));
217
218
this .rootNode .add (node );
218
219
@@ -253,11 +254,11 @@ private void generateProtoIds() {
253
254
"proto_id_item[" + String .format ("%,d" , i ) + "]" ));
254
255
node .add (itemNode );
255
256
256
- nodeTemp = this .addNode (itemNode , startPos , Dex_uint .LENGTH , "shorty_idx" , item .shorty_idx );
257
+ nodeTemp = this .addNode (itemNode , startPos , Type_uint .LENGTH , "shorty_idx" , item .shorty_idx );
257
258
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
258
259
this .addNode (nodeTemp , 0 , 0 , "Value" , this .dexFile .getString (item .shorty_idx .intValue ()));
259
260
260
- nodeTemp = this .addNode (itemNode , startPos , Dex_uint .LENGTH , "return_type_idx" , item .return_type_idx );
261
+ nodeTemp = this .addNode (itemNode , startPos , Type_uint .LENGTH , "return_type_idx" , item .return_type_idx );
261
262
this .addNode (nodeTemp , 0 , 0 , "Value" , this .dexFile .getTypeDescriptor (item .return_type_idx .intValue ()));
262
263
}
263
264
}
@@ -285,13 +286,13 @@ private void generateFieldIds() {
285
286
"proto_id_item[" + String .format ("%,d" , i ) + "]" ));
286
287
node .add (itemNode );
287
288
288
- nodeTemp = this .addNode (itemNode , startPos , Dex_ushort .LENGTH , MESSAGE_CLASS_IDX , item .class_idx );
289
+ nodeTemp = this .addNode (itemNode , startPos , Type_ushort .LENGTH , MESSAGE_CLASS_IDX , item .class_idx );
289
290
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
290
291
291
- nodeTemp = this .addNode (itemNode , startPos , Dex_ushort .LENGTH , "type_idx" , item .type_idx );
292
+ nodeTemp = this .addNode (itemNode , startPos , Type_ushort .LENGTH , "type_idx" , item .type_idx );
292
293
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
293
294
294
- this .addNode (itemNode , startPos , Dex_uint .LENGTH , "name_idx" , item .name_idx );
295
+ this .addNode (itemNode , startPos , Type_uint .LENGTH , "name_idx" , item .name_idx );
295
296
}
296
297
}
297
298
@@ -318,13 +319,13 @@ private void generateMethodIds() {
318
319
"method_id_item[" + String .format ("%,d" , i ) + "]" ));
319
320
node .add (itemNode );
320
321
321
- nodeTemp = this .addNode (itemNode , startPos , Dex_ushort .LENGTH , MESSAGE_CLASS_IDX , item .class_idx );
322
+ nodeTemp = this .addNode (itemNode , startPos , Type_ushort .LENGTH , MESSAGE_CLASS_IDX , item .class_idx );
322
323
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
323
324
324
- nodeTemp = this .addNode (itemNode , startPos , Dex_ushort .LENGTH , "proto_idx" , item .proto_idx );
325
+ nodeTemp = this .addNode (itemNode , startPos , Type_ushort .LENGTH , "proto_idx" , item .proto_idx );
325
326
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
326
327
327
- this .addNode (itemNode , startPos , Dex_uint .LENGTH , "name_idx" , item .name_idx );
328
+ this .addNode (itemNode , startPos , Type_uint .LENGTH , "name_idx" , item .name_idx );
328
329
}
329
330
}
330
331
@@ -351,28 +352,28 @@ private void generateClassDefs() {
351
352
"class_def_item[" + String .format ("%,d" , i ) + "]" ));
352
353
node .add (itemNode );
353
354
354
- nodeTemp = this .addNode (itemNode , startPos , Dex_uint .LENGTH , MESSAGE_CLASS_IDX , item .class_idx );
355
+ nodeTemp = this .addNode (itemNode , startPos , Type_uint .LENGTH , MESSAGE_CLASS_IDX , item .class_idx );
355
356
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
356
357
357
- nodeTemp = this .addNode (itemNode , startPos , Dex_uint .LENGTH , "access_flags" , item .access_flags );
358
+ nodeTemp = this .addNode (itemNode , startPos , Type_uint .LENGTH , "access_flags" , item .access_flags );
358
359
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
359
360
360
- nodeTemp = this .addNode (itemNode , startPos , Dex_uint .LENGTH , "superclass_idx" , item .superclass_idx );
361
+ nodeTemp = this .addNode (itemNode , startPos , Type_uint .LENGTH , "superclass_idx" , item .superclass_idx );
361
362
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
362
363
363
- nodeTemp = this .addNode (itemNode , startPos , Dex_uint .LENGTH , "interfaces_off" , item .interfaces_off );
364
+ nodeTemp = this .addNode (itemNode , startPos , Type_uint .LENGTH , "interfaces_off" , item .interfaces_off );
364
365
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
365
366
366
- nodeTemp = this .addNode (itemNode , startPos , Dex_uint .LENGTH , "source_file_idx" , item .source_file_idx );
367
+ nodeTemp = this .addNode (itemNode , startPos , Type_uint .LENGTH , "source_file_idx" , item .source_file_idx );
367
368
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
368
369
369
- nodeTemp = this .addNode (itemNode , startPos , Dex_uint .LENGTH , "annotations_off" , item .annotations_off );
370
+ nodeTemp = this .addNode (itemNode , startPos , Type_uint .LENGTH , "annotations_off" , item .annotations_off );
370
371
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
371
372
372
- nodeTemp = this .addNode (itemNode , startPos , Dex_uint .LENGTH , "class_data_off" , item .class_data_off );
373
+ nodeTemp = this .addNode (itemNode , startPos , Type_uint .LENGTH , "class_data_off" , item .class_data_off );
373
374
startPos = ((JTreeNodeFileComponent )nodeTemp .getUserObject ()).getLastPosPlus1 ();
374
375
375
- this .addNode (itemNode , startPos , Dex_uint .LENGTH , "static_values_off" , item .static_values_off );
376
+ this .addNode (itemNode , startPos , Type_uint .LENGTH , "static_values_off" , item .static_values_off );
376
377
}
377
378
}
378
379
@@ -394,7 +395,7 @@ private void generateData() {
394
395
DefaultMutableTreeNode itemNode = new DefaultMutableTreeNode (new JTreeNodeFileComponent (
395
396
startPos ,
396
397
fc .getLength (),
397
- Dex_uint .toString (startPos ) + " - " + fc .getClass ().getSimpleName ()));
398
+ Type_uint .toString (startPos ) + " - " + fc .getClass ().getSimpleName ()));
398
399
node .add (itemNode );
399
400
400
401
if (fc instanceof StringDataItem ) {
0 commit comments