Tool

AOTopsy

Statically inspect Flutter/Dart AOT libapp.so files to recover available metadata, class structures, call edges and pseudocode without embedding a Dart VM or compiling a matching SDK. Supports ARM64 and x86_64 analysis paths.

Requirements and limitations

  • Source builds require Go 1.25.4 according to go.mod (README says 1.25+). Supply a supported libapp.so AOT snapshot; the reviewed README models Dart 2.10–3.13. JIT snapshots are outside scope.
  • Ghidra/IDA integration is ARM64-only. Most instance-field names and local/captured variable names are removed from release builds; polymorphic dispatch and virtual-call reachability remain limited. Reconstructed Dart output is not guaranteed original or behaviorally equivalent source.
  • Unbounded --all decompilation can need about 64 GB RAM; use targeted or capped analysis. Accuracy and syntax measurements are author-reported, and the nonredistributable ground-truth corpus tests do not run in public CI.
  • BSD-3-Clause. AOTopsy credits the original unflutter project and its authors; Dart SDK-derived tables retain their own notices.

About this entry

Type
Tool
Category
Android tools
Relationship
Foundation tool
Targets
App · Binary

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Primary sources

  1. https://github.com/BroNils/aotopsy/blob/01011df108eaf5a0c1757cf5842115f9fb8b6303/README.md
  2. https://github.com/BroNils/aotopsy/blob/01011df108eaf5a0c1757cf5842115f9fb8b6303/go.mod
  3. https://github.com/BroNils/aotopsy/blob/01011df108eaf5a0c1757cf5842115f9fb8b6303/LICENSE
  4. https://github.com/BroNils/aotopsy/blob/01011df108eaf5a0c1757cf5842115f9fb8b6303/SECURITY.md