mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
[GH-ISSUE #3340] [Bug] Apktool decode refusals report the launcher path instead of the selected APK #1207
Closed
opened 2026-10-15 18:32:01 +00:00 by bsakaguchi
·
2 comments
No Branch/Tag specified
main
codex/procedure-reference-stacked
release-please--branches--main--components--rea-agents
release-please--branches--main--components--rea-agents--release-notes
codex/kuna-independent-retry
codex/byte-search-overlay-coverage
codex/open-failure-target-receipt
codex/kuna-xref-evidence
codex/ghidra-ambiguous-procedure-recovery
codex/function-source-bundle
codex/trace-function-integration-prototype
codex/snapshot-source-closure
codex/recorded-evidence-array-pages
codex/evidence-recovery-redesign
codex/trace-feature-address-scope
codex/call-discovery-scope
codex/ghidra-literal-candidate-evidence
codex/decompile-directory-independent-retry
codex/retry-provenance-base
codex/value-flow-capability-experiment
codex/ghidra-containing-instruction
cursor/readme-discord-button-ef9f
dependabot/github_actions/actions/setup-node-7.1.0
dependabot/github_actions/actions/upload-artifact-7.0.2
dependabot/npm_and_yarn/npm-minor-and-patch-d8d97ce6df
codex/kuna-1989
fix/8559-native-ui-fixture-ownership
fix/8555-go-verifier-mcp-ownership
codex/provider-capability-recovery
fix/8642-rizin-target-stdin
codex/ghidra-memory-effect-scope
codex/ghidra-annotation-entry-selector
codex/ghidra-readonly-recovery
codex/ghidra-regex-verifier-recovery
codex/evidence-discovery-view-guidance
fix/8545-bulk-append-overflow
fix/8428-navigation-refusal-alternatives
codex/address-context-recovery
codex/matching-member-limitations
codex/unknown-scope-contract
codex/evidence-view-guidance
feat/8373-native-trace-views
codex/ghidra-snapshot-verifier-binding
codex/elf-export-visibility
codex/evidence-view-recovery
codex/native-reference-cli-help
codex/provider-candidate-observation-scope
codex/kuna-session-verification
codex/ghidra-switch-lifetime-guidance
codex/pseudocode-paging-discovery
codex/clarify-evidence-view-support
codex/kuna-xrefs-selector-recovery
codex/context-capacity-recovery
codex/evidence-closure-large-links
codex/same-function-evidence-identity
codex/ghidra-verifier-inspected-jdk
codex/audit-guided-workflows
codex/crash-prompt-retained-dossiers
codex/analysis-view-error-recovery
codex/kuna-verifier-target-selection
codex/ghidra-selected-project-call-coverage
codex/docs-native-analysis-scope
codex/ghidra-java-socket-boundary
codex/ghidra-retained-snapshot-verifier
codex/ghidra-search-inventory-facts
fix/8284-zero-argument-parameter-bindings
fix/8198-ui-action-handler-offset
fix/8257-elf-entry-label-identity
fix/8304-deferred-output-schema-projection
fix/8277-call-path-computed-target-uncertainty
fix/pr-8089-conflicts
fix/ci-static-duplicate-export
dependabot/npm_and_yarn/lint-staged-17.6.0
dependabot/github_actions/actions/download-artifact-8.0.2
dependabot/npm_and_yarn/write-file-atomic-8.0.0
dependabot/npm_and_yarn/canonicalize-5.1.0
dependabot/github_actions/actions/cache/restore-6.1.0
dependabot/npm_and_yarn/toon-format/toon-4.4.0
dependabot/github_actions/actions/deploy-pages-5.0.1
codex/review-fixes-pr-2403
codex/review-fixes-pr-2400
codex/process-terminal-width
codex/test-brittleness-cleanup
verify/7167-browser-connect-macos
fix/7167-browser-connect
feat/native-matching-allowance-setting
feat/browser-scenario-dry-run
test/managed-caller-parameters-20261024
codex/parser-fortythird-boundaries
fix/6926-pinvoke-platform-decorations-20261023
fix/6889-har-body-encoding-20261023
fix/6888-sqlite-schema-budget-20261023
fix/dependency-security-gates-6708
cursor/evidence-overwrite-rebase-b4ac
feat/4057-verify-native-exports
fix/windows-acl-observer-overhead-20261022
cursor/erlang-beam-restack-4476
cursor/pe-certificate-review-bf32
fix/6116-javascript-application-fs-errors
fix/6061-unmapped-runtime-script-unknown
feat/browser-scenario-summary
fix/pe-certificates
codex/verify-3407
cursor/rebase-5699
cursor/rebase-5352
cursor/rebase-5600
cursor/fix-cli-schema-omission-10a8
codex/audit-hopper-shutdown-reasons-20261021
fix/demangle-swift-omitted-record
fix/nib-boolean-value-types
cursor/cancellation-partial-observation-a5ac
fix/ib-object-limit-reasons
fix/electron-fuse-limit-advice
fix/kuna-doctor-dangling-cache
fix/fixed-budget-refusal-advice
fix/js-ipc-listener-dedup
fix/js-return-member-provenance
fix/dmg-integrity-retry-advice
fix/ida-doctor-readiness
fix/kuna-version-probe-output-drain
fix/legacy-swift-runtime-name-matching
fix/dylib-lazy-load-commands
fix/browser-scenario-startup-cancel
fix/swift-nested-punycode-classification
fix/compare-unselected-scopes
fix/objc-method-budget-coverage
fix/dmg-mounted-root-observations
audit/ci-tests-20261019-round2
release/6.7.0
fix/wabt-cleanup-retry-resolution
fix/electron-fuse-elf-pe-architecture
fix/native-plist-descriptor-ownership
fix/kuna-caller-cleanup-ownership
experiment/atomic-codemode-20261016
review/first-contributor-3776
fix/call-resolution-full-read-cycles
fix/member-mutation-selection-repeat
experiment/atomic-re-tools-20261015
perf/member-mutation-lazy-origins
perf/static-network-mutation-index
fix/hopper-startup-lifecycle
audit/3050-windows-proof-20261015
feat/windows-window-capture-2183
audit/3049-windows-proof-20261015
audit/3735-macos-fixtures-20261015
fix/batch-decompile-null-pseudocode
fix/kuna-inventory-honors-jobs
experiment/browser-codemode-tool-design-20261015
fix/hopper-clean-runtime-argv
codex/review-2049-27f1b367
review-fixes/pr-2787-routing
fix/3360-scoped-this-emitters
fix/3367-replaced-global-effects
fix/3838-compact-any-value-items
test/hopper-download-probe-20261015
codex/windows-runtime-creation-red-green-20261015
codex/windows-readonly-root-red-green-20261015
codex/windows-root-share-red-green-20261015
codex/exp-1685-win-mcp-startup
codex/bug-sweep-20261015
investigate/2190-windows-package-phases
investigate/3543-macos-cli-deadline
perf/3281-reverse-tools-feedback-quality
fix/3406-hopper-doctor-fixture
fix/3341-wrapper-require-test-context
fix/3301-owned-uninstall-fixtures
fix/3164-compiler-input-ownership
fix/pcap-cleanup-stdout-newline-20261014
perf/interface-builder-summary
codex/review-fixes-pr-1977
fix/ghidra-effective-jvm-platform
fix/docs-turkish-rust-link-20261013
fix/main-maintenance-ci-20261010
fix/recover-binary-session-process-effects
codex/review-fixes-pr-2457
codex/ci-required-cancellation-gate
fix/main-format-baseline-20261013
fix/setup-preserve-entry-fields
cursor/restore-main-checks-1ffc
fix/ghidra-bridge-hashmap-import
codex/shared-ci-jadx-json-default-20261013
codex/shared-ci-ghidra-test-groups-20261013
codex/shared-ci-java-fixture-format-20261013
codex/fix-intrinsic-invocation-boundaries
test/release-preflight-reusable-jobs
test/js-parameter-provenance-expectation
fix/linux-hopper-verification-current
test/2419-ghidra-elf-probe-size
followup/pr-1544-native-ida
codex/fold-pr-2230-contribution
docs/readme-responsible-use
fix/issue-2064
fix/issue-2050
fix/issue-2053
fix/issue-1968
fix/issue-1945
experiment/codemode-bridge-20261011
fix/tool-effects-negative-wording-1904-20261012
fix/1842-electron-interop-provenance
feat/recover-javascript-multi-input
refactor/website-i18n-prep
fix/nativeaot-pe-virtual-extent
fix/browser-verifier-ci-hang
fix/pe-resources-input-selection
docs/beginner-friendly-guides
docs/beginner-setup-guide
fix/javascript-analysis-worker-1563
fix/1649-ghidra-duplicate-names
fix/javascript-export-keys-integration-1369
test/maintenance-boundary-contracts-20261011
review/javascript-export-keys-1369
review/process-live-progress-1483
test/javascript-1495-growth-ratio
fix/ci-escape-timing
docs/normalized-terminal-geometry-1450
release/6.3.0
archive/release-6.3.0-pr1381
release/6.2.0
fix/electron-preload-dynamic-override
fix/javascript-self-referential-bundler-edges
release/6.1.0
cursor/grok-client-cherry-pick-0b56
feat/signature-posture
feat/dyld-shared-cache
feat/artifact-integrity-policy
feat/pkg-inventory
release/6.0.0
chore/sync-release-5.0.0
release/5.0.0
cursor/cloud-agent-node-787e
fix/javascript-xhr-open-endpoints
review/pr-711-realpath-fallback-wording
cleanup/replay-confinement
codex/test-suite-performance
codex/issue-foundations
codex/address-open-issues-2026-07-20
agent/javascript-vite-rollup-esbuild-adapters
agent/process-cleanup
agent/triage-integration
agent/unknown-commands-registry
feat/mcp-identity-metadata
morlvps/issue_cleanup
codex/installer-redesign
morl/roadmap-investigation-core
morl/roadmap-investigation-docs
release-please--branches--main--components--rea
rea-agents-6.8.0
rea-agents-6.7.0
rea-agents-6.6.0
experiment/atomic-codemode-wait-runtime-20261016
rea-agents-6.5.0
rea-agents-6.4.0
rea-agents-6.3.0
rea-agents-6.2.0
rea-agents-6.1.0
rea-agents-6.0.0
rea-agents-5.0.0
rea-agents-4.1.0
rea-agents-4.0.1
rea-agents-4.0.0
rea-agents-3.2.1
rea-agents-3.2.0
rea-agents-3.1.0
rea-agents-3.0.0
rea-agents-2.7.0
rea-agents-2.6.0
rea-agents-2.5.1
rea-agents-2.5.0
rea-agents-2.4.0
rea-agents-2.3.0
rea-agents-2.2.0
rea-agents-2.1.0
rea-agents-2.0.0
rea-agents-1.7.0
rea-agents-1.6.0
rea-agents-1.5.0
rea-agents-1.4.0
rea-agents-1.3.0
rea-agents-1.2.0
rea-agents-1.1.0
rea-agents-1.0.0
rea-agents-0.5.0
rea-agents-0.4.0
rea-agents-0.3.0
rea-0.2.1
rea-0.2.0
Labels
Clear labels
area: bridge
area: bridge
area: build
area: build
area: build
area: cli
area: domain
area: evidence
area: mcp
area: native
area: providers
area: runtime
area: server
area: setup
area: tests
bug
design
documentation
enhancement
enhancement
enhancement
experiment
help wanted
i18n
invalid
P0: critical
P1: high
P2: medium
P2: medium
P2: medium
P3: low
performance
provider-request
pull-request
Mirrored from GitHub Pull Request
question
roadmap
triage
No labels
area: bridge
area: bridge
area: build
area: build
area: build
area: cli
area: domain
area: evidence
area: mcp
area: native
area: providers
area: runtime
area: server
area: setup
area: tests
bug
design
documentation
enhancement
enhancement
enhancement
experiment
help wanted
i18n
invalid
P0: critical
P1: high
P2: medium
P2: medium
P2: medium
P3: low
performance
provider-request
pull-request
question
roadmap
triage
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
morluto/rea#1207
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @coygeek on GitHub (Oct 14, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/3340
Before submitting
Area
Evidence, artifacts, or reconstruction
Observed behavior
When the selected Apktool launcher refuses an APK,
decode-android-resourcesreports the launcher executable as the unsupported target. Both the message anddetails.pathlose the caller-selected APK identity, although the command retains the decode failure reason and captured decode output.The public CLI reproduction exits with code 1 and reports
fake-apktoolas the target basename. The original error message also namesfake-apktoolafterUnsupported target for decode_android_resources at. The APK path is absent from the returned error. The behavior also reproduced in a rerun against a ZIP input.Reproduction
AndroidManifest.xml, then run the CLI. The fixture reports version2.7.0and refuses decoding with a controlled diagnostic. No real Apktool or Java installation is needed.fake-apktoolrather thansample.apk, while preserving the controlled decode diagnostic and captured exit code 1.Expected behavior
The refusal should identify
sample.apkas the selected unsupported target in its message anddetails.path, while preserving the launcher's diagnostic and captured decode output. The launcher is the producing tool, and the APK is the artifact supplied to the operation.AGENTS.md:13, under Product and Authority, requires preserving caller-selected inputs and paths.src/domain/analysisErrorCore.ts:7defines an unsupported target as the supplied artifact.docs/apktool-resource-analysis.md:72, under Resource and lifecycle limits, anddocs/apktool-resource-analysis.md:83specify that Apktool decode refusals preserve the reason asunsupported_target.Impact and scope
Impact level: P2, supported. Decode failure evidence attributes the refusal to the provider executable rather than the selected artifact, so callers cannot recover the target identity from the error. The observed case is bounded to decode refusal output; successful decode results were not implicated.
Workaround status: available. The caller can retain the input path alongside the failed invocation and use that selection when interpreting the preserved diagnostic. This avoids relying on the incorrect target field and preserves the underlying failure reason.
REA version
6.4.0 (main at
8dde6370d0)Runtime and platform
Node.js v26.10.0, macOS 27.0.1 arm64. The observed run used checkout dependencies and a compiled runtime that were already present. The launcher fixture does not require real Apktool or Java.
Target and artifact context
A generated ZIP named
sample.apkcontainingAndroidManifest.xmlwith the literal contentmanifest. The controlled launcher ignores the APK contents and emits a decode refusal. The public CLI behavior also reproduced against a ZIP input; this establishes refusal projection without claiming a real Apktool engine test.Interface
CLI
Earliest failure stage
Transport or result projection
Relevant output or evidence
The original error message names
fake-apktoolafterUnsupported target for decode_android_resources at; it omits the selected APK path. The CLI result is the primary violation evidence, and source inspection explains the path substitution. The failure was reproduced locally through the public CLI with the complete fixture above.Typed outcome or recovery expected
Repeat the command. The error should remain an
unsupported_targetdecode refusal with the same reason and captured exit code 1, but the reported target basename must besample.apk, and its message must identify that APK. Repeat with a differently named APK to ensure the result follows the caller's selection rather than a fixed path.Analysis or suspected cause
Source-derived reasoning:
src/apktool/ApktoolProvider.ts:249constructs the decode refusal usingselection.commandas its target path. Passing the selected launcher instead of the caller-selected APK explains why both the message anddetails.pathidentifyfake-apktool. This reasoning is separate from the observed CLI output.Additional context
binary_session; this report concerns the target path in a decode refusal.@CassieFox23 commented on GitHub (Oct 14, 2026):
TL;DR: The bug also happens on Linux. On main
efbc486b9the error names the launcher, not the APK. A fix is open in #3462.I ran your recipe on Linux with Node 24.18.0. I used main (
efbc486b9) and your fake launcher, so no real Apktool or Java was involved.Results
Each run returned the code
unsupported_target. The reason was "Could not decode resource table". The captured decode exit code was 1. The message named the launcher path. The APK path was missing. The second APK name changed nothing, so the path does not follow the caller's choice.Your suspected cause fits the code. On main,
ApktoolProvider.tshands the launcher command to the refusal as its path. Pull request #3462 passes the input path there instead. I read its diff and did not run it.Not run
Edit: I tested #3462, and the fix works. Still not run: a real Apktool or Java, Node 22 and 26, and macOS.
8dde6370d, because main already shows the bug.Pull request #3462 (read only).Run since, on head08d3d0d3a.Thanks, Coy Geek, for the clear report and the fixture.
Commands
I built from a tree archived from that commit, not a clone. Exit codes: archive 0, npm ci 0, build 0. Each of the three CLI runs exited 1, as in the report. I used a fresh empty HOME for each run. The fake launcher is your script word for word.
Test setup
efbc486b9/8dde6370d(the report's commit; not built)🤖 Generated with Claude Code (Sonnet 5.5, verified by Opus 5.5) 🦊
@morluto commented on GitHub (Oct 17, 2026):
Fixed in
cc038da218cada68c87700477aba3db4739791ffon main, adapting Peter's target-path correction from PR #3462 (08d3d0d3a0e816a2a73fd8224ede86a62e60ed34) with co-author credit.The caller-selected APK now owns
unsupported_targetmessage/path attribution. The producing boundary also distinguishes fully collected ordinary nonzero decode exits from launcher startup, ownership preparation, capture, signal and incomplete-output failures; those remain provider failures. One shared projection preserves command or compiler output in probe/decode errors. Cleanup recovery, physical-failure priority and snapshot provenance remain intact.Validation: 131 focused tests in 12 files; final 50 source checks; build, typecheck/lint, docs and hooks passed. Ten controls fail on clean baseline
4844ae812, covering two named targets, actual launcher disappearance after version admission, and controlled command outcome kinds. Two read-only source reviews found no blockers.24 tiny completed expected-refusal tasks exercised the actual built CLI and stdio MCP with two selected paths (including a space). CLI exit 1 and MCP isError were expected and checked. Only projected
messageanddetails.pathdiffer; every other projected field matches before/after, including captured output, reason and partial snapshot facts.No speedup claim. Two alternating warm-filesystem repeats plus first processes; caches were not flushed. CPU uses wait4; sampled RSS may miss brief/reparented members. cl100k estimates exclude catalog discovery, arguments, retries and agent continuations. Correcting the path adds four reply tokens in these fixtures. The final test fixture was adjusted to match the producer's optional-true field type after measurement; measured runtime sources match the commit.
Authored inert launchers and controlled outcome seams only: actual Apktool/JVM, natural startup/capture failures, native Windows and cold helper compilation remain unverified. Heavy stress/profiling remained stopped. Qualified locale discovery (#4612) is separate work.