Skip to content

feat: Add Cursor project skill and Windows PowerShell script parity#21

Open
rafaelsteil wants to merge 1 commit into
SimoneAvogadro:masterfrom
rafaelsteil:raf/cursor-and-windows
Open

feat: Add Cursor project skill and Windows PowerShell script parity#21
rafaelsteil wants to merge 1 commit into
SimoneAvogadro:masterfrom
rafaelsteil:raf/cursor-and-windows

Conversation

@rafaelsteil

Copy link
Copy Markdown

Add Cursor project skill and complete Windows PowerShell script parity

Summary

This PR makes the skill usable end-to-end on Windows and in Cursor, without changing the existing Claude Code plugin layout.

Cursor IDE support

  • Adds a thin project skill at .cursor/skills/android-reverse-engineering/SKILL.md that points at the shared scripts and references under plugins/android-reverse-engineering/.
  • Documents installation options in the README (open this repo, copy into another project, multi-root workspace, or personal skill path).
  • Adds a Cursor section to setup-guide.md.

Windows PowerShell parity

Upstream already ships check-deps.ps1, install-dep.ps1, decompile.ps1, and find-api-calls.ps1 (#8), but several workflow steps were bash-only. This PR adds the missing scripts:

Script Purpose
fingerprint.ps1 Phase 0 triage (framework, HTTP stack, obfuscation, native libs)
recover-kotlin-names.ps1 R8 → real Kotlin class-name recovery
lookup-name.ps1 Query the recovered name map

It also brings find-api-calls.ps1 in line with the bash version (-Ktor, -Apollo, -Paths, and related output sections).

Shared Python modules

Kotlin name recovery logic previously lived as inline Python inside the bash scripts. It is extracted into:

  • recover_kotlin_names.py
  • lookup_names.py

Both *.sh and *.ps1 wrappers now call these modules, so behavior stays in sync across platforms.

Hardened decompile.ps1

Aligns Windows decompilation with recent bash improvements (#10):

  • XAPK extraction via System.IO.Compression.ZipFile (.xapk is not a valid Expand-Archive input)
  • Partial-success handling when jadx/Fernflower exit non-zero but still produce .java files
  • Fernflower/Vineflower timeout via FERNFLOWER_TIMEOUT_SECONDS (default 900s)
  • Intermediate artifact directory for dex2jar output
  • Vineflower direct-folder output normalization

Docs and housekeeping

  • README reframes PowerShell from "experimental" to cross-platform scripts with Windows usage examples for the full workflow.
  • setup-guide.md gains Windows install/verify sections (winget OpenJDK, PATH notes, Cursor).
  • .gitignore ignores *-decompiled/ output directories.

No changes to the Claude Code plugin manifest or slash commands.

Motivation

Windows users could check deps, install tools, decompile, and scan APIs, but could not run Phase 0 fingerprinting or Kotlin name recovery without WSL/Git Bash. Cursor users had no documented path to load the skill. This closes both gaps while keeping a single source of truth for script logic under plugins/.

Note

A large portion of this PR was drafted with help from Cursor. I have reviewed the changes and tested as much as I could on my side, but I have not exhaustively exercised every script path or platform combination.

Introduce .cursor/skills/android-reverse-engineering for Cursor IDE, document
cross-platform setup in README and setup-guide, and add missing PS1 scripts
(fingerprint, Kotlin name recovery, lookup). Extract shared Python modules
used by bash and PowerShell wrappers; harden decompile.ps1 for XAPK extraction,
partial jadx/Fernflower success, and Fernflower timeouts.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant