Documentation

Flutter build identification

Identifies a Flutter APK’s Dart snapshot hash, per-ABI library digests and engine build provenance, then inspects one ABI’s AOT snapshot sections, through REA’s pure-parsing CLI and MCP tools. The string-pool output is a bounded byte-pattern projection of package and SDK URIs, not deserialized Dart classes or recovered source.

Requirements and limitations

  • Reviewed on main as rea-agents 6.7.0, which declares Node ^22.19.0, ^24.11.0 or 26+. identify-flutter-build and inspect-dart-aot (MCP identify_flutter_build and inspect_dart_aot) parse a caller-supplied APK’s libapp.so and libflutter.so without an engine, external tool, execution or network lookup. Inputs are copied into an owned read-only snapshot, with documented bounds such as 2 GiB per APK and 256 MiB per library.
  • REA performs no hash-to-SDK lookup; mapping a snapshot hash to a Dart release needs an external dataset such as reFlutter’s. Complete structural coverage currently requires the FullAOT kind of the supported Dart 2.14 snapshot layout, and other kinds are kept with partial coverage. Typed class and function recovery needs an SDK-specific parser, and class-like tokens include incidental matches.
  • The documented verifier runs both tools through the compiled CLI and stdio MCP on the Flutter Gallery 2.9.2 release APK against a pinned expectations file: one agreeing snapshot hash on all three ABIs, engine labels and URI counts. A plain aapt2-built APK checks negative detection. The guide reports the Gallery workflow and 147 focused tests passing on macOS 14.8.9 x86-64 and Windows 11 x64 guests.
  • In merged PR #1582, an independent reviewer reports that hashes, ELF sections and package lists matched readelf/strings checks on three F-Droid apps, PocketDhamma, Flutter McSweepy and cone, on pre-merge heads, with a non-Flutter control not detected; the thread records fixes for gaps found. These checks cover build identity and structure, not app-logic reconstruction. REA declares MIT; analysed APKs keep their own licenses, and this collection did not run REA or any APK.

About this entry

Type
Documentation
Category
Official REA: investigation guides
Relationship
Official REA documentation
Targets
App

Sources reviewed

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

Primary sources

  1. docs/flutter-analysis.md GitHub · morluto/rea · Revision c12d9ed
  2. scripts/verify-flutter.mjs GitHub · morluto/rea · Revision c12d9ed
  3. scripts/fixtures/flutter-gallery-expectations.json GitHub · morluto/rea · Revision c12d9ed
  4. README.md GitHub · morluto/rea · Revision c12d9ed
  5. package.json GitHub · morluto/rea · Revision c12d9ed
  6. LICENSE GitHub · morluto/rea · Revision c12d9ed
  7. https://github.com/morluto/rea/pull/1582