Repository navigation
Conversation
- Add dadguard smali rendering for class metadata, fields, annotations, locals, labels, try/catch and optional debuginfo output. - Normalize field references, method descriptors, invoke register braces and range invoke syntax so output is smali-assemblable. - Fix rebuilt DEX debug_info_off handling and add --debug phase timing. - Add prefix-only raw-deflate inflation for class lookup, with DEX 041, stored-entry and malformed-prefix fallback to full inflation. - Add regression fixtures and tests for disassembly, invoke/field syntax, prefix inflation and CLI behavior. - Measured NativePrefetch lookup improvement: 727ms median to 307ms; total pipeline 769ms to 342ms.
Keep declared parameters visible for abstract and native methods without code items, and add a regression test.
Add --method filtering for exact method descriptors, update CLI documentation and version, and cover API and CLI regression cases.
Restore the cached core descriptor path for decompiler instruction rendering and compact method descriptors only in smali output, preserving valid syntax without the getclass slowdown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This update improves Python ASC's smali disassembly quality, fixes missing method parameters in code-less methods, and reduces class lookup latency through prefix-only DEX inflation.
Python and Rust implementations will continue to be maintained in parallel so users can choose the integration style that fits their workflow.
Key Changes
Smali disassembly
.class,.super,.implements.locals.lineand local-variable debug directives--debuginfoto enable DEX debug metadata output.--method 'run(I)V'to render one exact method by full signature.->field:Type{v0, v1}{v0 .. v3}code_itemexisted.DEX rebuild correctness
code_item.debug_info_offso debug metadata remains addressable after DEX reconstruction.Prefix-only DEX inflation
Class lookup now:
string_ids,type_ids,class_defs, and the target descriptor.Performance
Measured on:
douyinneice.apkcom.bytedance.android.ec.core.hybrid.prefetch.NativePrefetchThe previous
cli_getclassregression was also traced to method descriptor normalization in the decompiler hot path. Descriptor normalization is now performed only by the smali formatter, avoiding repeated string processing during decompilation.Validation
139tests passed.Release
0.1.2-post3dev-0.1.0b9cba55