rea/docs
Quentin Limo fef6f73064
feat(adb): complete ADB device support for Android reverse engineering (#1552)
* feat(adb): acquire installed APK sets from connected Android devices

Add a read-only ADB device-acquisition family over the caller's adb binary:
inspect_adb_client, list_adb_devices, inspect_adb_device, list_adb_packages,
and pull_adb_package, exposed through the CLI and MCP with shared admission,
Evidence provenance (binary, version, serial, transport), and fixed argv
vectors that never reach a shell.

pull_adb_package acquires the complete split set reported by pm path into a
package-named directory that must not exist, digesting every file with
SHA-256 and keeping per-file failure reasons and partial coverage. Device
kind is reported as an inference with its basis; getprop whitelisting keeps
build identity bounded. REA installs nothing and never manages devices or
emulators; the first device query may start the caller's local adb server,
recorded when observed.

Verified against adb 34.0.5 on Linux with an Android 14 (API 34) x86_64
emulator: full 224-package inventory, a real two-APK split set pulled with
byte-exact digests, and a 73.9 MB system-package pull. npm run verify:adb
records the lane; parser goldens come from the same device. READMEs carry
the new row in every supported language.

* feat(adb): complete the adb surface with observation, transfer, and lifecycle tools

Extend the ADB family from five to twenty-four operations, all through
fixed adb argument vectors with no shell exposure:

Observation: read_adb_logcat (bounded dump, count/buffer/pid), inspect_adb_package
(dumpsys package projection), list_adb_processes (ps -A), list_adb_directory
(ls -la with kinds and symlink targets), list_adb_features (hex GL versions),
list_adb_services (AIDL slash-suffixed names), inspect_adb_display (wm size and
density), inspect_adb_window (focus declarations), read_adb_setting (device-side
nulls reported as such), capture_adb_screen (exec-out screencap with PNG
dimensions), collect_adb_bugreport (digested device archive).

Transfer and search: pull_adb_file and push_adb_file (device-side sha256sum
verification, explicit overwrite authority), resolve_adb_packages (substring
package search with exact-match flag — the find step of an easy get).

Lifecycle for dynamic analysis, each declaring mutatesTarget:
install_adb_package and uninstall_adb_package preserving the device's
Success/Failure verdict, start_adb_app (resolve-activity then am start -W),
start_adb_activity (typed extras as --es/--ez/--ei/--el/--ef), and stop_adb_app
(am force-stop).

Verified end-to-end against adb 34.0.5 on Linux with an Android 14 (API 34)
x86_64 emulator: 287 services, 92 features, split-set pulls with byte-exact
digests, verified push/pull roundtrip, sized screen capture, and the full
install → resolve → start → observe-in-ps → force-stop → uninstall lifecycle.
Fixed a v-mode regex incompatibility in the settings key pattern and added
argument descriptions required by the CLI catalog audit.

* fix(adb): quote remote shell operands and protect captured output

* test(adb): cover bugreport destinations containing spaces

---------

Co-authored-by: REA Contributor <contributor@rea.tools>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
2026-10-10 23:01:24 +08:00
..
.vitepress docs: remove retired architecture and migration artifacts 2026-10-10 05:41:45 +08:00
assets docs: keep license sections text-only 2026-10-10 00:09:46 +08:00
adb-device-analysis.md feat(adb): complete ADB device support for Android reverse engineering (#1552) 2026-10-10 23:01:24 +08:00
android-analysis.md fix(mobile): bound framework conventions to path segments (#1506) 2026-10-10 21:42:03 +08:00
apple-application-analysis.md fix(mobile): bound framework conventions to path segments (#1506) 2026-10-10 21:42:03 +08:00
architecture.mermaid refactor: use canonical implementations and types directly 2026-10-09 23:35:19 +08:00
binary-diagnostics.md feat(native): return a retained summary view of binary layouts on request (#1570) 2026-10-10 07:57:42 -07:00
browser-observation.md fix(cli): accept JSON files for web capture and screenshot comparisons (#1397) 2026-10-09 19:29:42 -07:00
browser-scenario-contract.md refactor(captures)!: require canonical producer metadata 2026-10-09 23:35:19 +08:00
cli.md docs(skill): save CLI application Evidence and read a summary view (#1429) 2026-10-09 21:38:52 -07:00
electron-observation.md fix(capture): retain Electron observations and HAR resource failures 2026-10-09 06:49:02 +08:00
error-contract.schema.json feat(evm): inspect offline bytecode interfaces through EVMole (#1051) 2026-10-08 15:32:05 +08:00
evm-bytecode.md fix(build): make catalogs and packaged skills generated outputs (#1086) 2026-10-08 22:43:51 +08:00
firmware-analysis.md fix(firmware): reject malformed UTF-8 producer reports 2026-10-09 05:15:23 +08:00
ghidra-dos.md fix(ghidra): reject address truncation before reads and edits 2026-10-09 03:53:28 +08:00
ghidra-nativeaot.md fix(ghidra): admit the 12.1 line and the install's JDK range (#840) 2026-10-07 12:24:36 +08:00
ghidra-provider.md chore: merge main into Windows DLL support branch 2026-10-10 13:42:54 +08:00
ida-provider.md feat(ida): add read-only GUI and headless MCP providers (#754) 2026-10-07 01:47:05 +08:00
index.md docs: publish VitePress documentation on GitHub Pages 2026-10-07 16:58:04 +08:00
installation.md test(clients): verify native DeepSeek Harness integration (#1524) 2026-10-10 18:29:00 +08:00
javascript-application-graph.md docs(contracts)!: explain canonical URL and skill metadata ownership 2026-10-10 02:49:46 +08:00
javascript-application-workflows.md docs: correct stale logging, Ghidra host, and example path statements (#1420) 2026-10-10 21:29:31 +08:00
javascript-artifact-reconstruction.md feat(javascript): return a retained summary view on request (#1568) 2026-10-10 07:37:37 -07:00
javascript-recovery.md feat(javascript): recover readable modules with Wakaru (#848) 2026-10-07 12:46:13 +08:00
javascript-runtime-observation.md fix(inspector): bound retained metadata and preserve cancellation 2026-10-09 05:15:23 +08:00
javascript-runtime-reconciliation.md fix(tools)!: simplify direct invocation and harden boundary contracts (#555) 2026-10-05 20:16:44 +08:00
managed-code-analysis.md chore: merge main into Windows DLL support branch 2026-10-10 13:42:54 +08:00
mcp-contracts.md feat(native): return a retained summary view of binary layouts on request (#1570) 2026-10-10 07:57:42 -07:00
mcp-prompts.md feat(mcp): select views of retained analysis results (#1180) 2026-10-09 12:45:48 +08:00
migration-6.2.md docs: correct MCP error and capture import guidance 2026-10-10 05:41:52 +08:00
native-investigation.md fix(native): preserve compact reference provenance (#1438) 2026-10-10 21:39:28 +08:00
process-capture.md fix(process): coalesce delayed capture progress 2026-10-10 18:54:57 +08:00
reconstruction-obligation-ledgers.md refactor: return complete analysis results inline 2026-09-29 08:07:24 +08:00
reconstruction-readiness.md fix(tools)!: simplify direct invocation and harden boundary contracts (#555) 2026-10-05 20:16:44 +08:00
recorded-crashes.md feat(native): inspect recorded crashes through pwntools and pwndbg (#1054) 2026-10-08 16:50:31 +08:00
releasing.md docs: explain 6.2 contract and saved-data migration (#1304) 2026-10-09 15:31:11 +00:00
roadmap.md docs: remove retired architecture and migration artifacts 2026-10-10 05:41:45 +08:00
testing.md feat(adb): complete ADB device support for Android reverse engineering (#1552) 2026-10-10 23:01:24 +08:00
tool-design.md docs: prune repeated contributor and tool design instructions 2026-10-10 05:28:13 +08:00
user-visible-errors.csv fix(setup): recognize supported Nobara hosts 2026-10-10 02:49:46 +08:00
web-network-captures.md fix(capture): retain Electron observations and HAR resource failures 2026-10-09 06:49:02 +08:00
web-runtime.md fix(browser): treat module-import initiator positions as script positions 2026-10-08 16:44:25 +00:00
web-source-location.md fix(browser): validate and bound source-map evidence 2026-10-09 06:32:10 +08:00
website-module-trace.md feat(browser): trace captured website module imports (#879) 2026-10-07 14:59:52 +08:00
website-script-export.md fix(files): reject nonregular capture and JSON inputs 2026-10-10 01:49:54 +08:00
windows-ghidra-p0.md feat(ghidra): support native PE DLLs on Windows 2026-10-09 16:11:13 +01:00