Commit Graph

17 Commits

Author SHA1 Message Date
Simone Avogadro f8658fd974 Merge master into trackers-and-ads
Integrates upstream contributions from master:
- PowerShell support (#8): check-deps.ps1, install-dep.ps1, decompile.ps1, find-api-calls.ps1
- dex2jar fork migration (#12): pxb1988 -> ThexXTURBOXx
- Decompile partial-success + Fernflower timeout (#10)
- Chinese localization (#4)
- README badges, TOC, Acknowledgments

Conflict resolutions:
- README.md: keep extended description (privacy + neutralization), adopt master's badges/TOC; merge "What it does" into table format with extra rows for tracker/ad detection and SDK neutralization; combine PS1 scripts under android-reverse-engineering/scripts/ and keep neutralizer scripts under sdk-neutralizer/scripts/ (added missing merge-splits.sh and registry-scan.py)
- decompile.sh: combine global --timeout (trackers-and-ads CLI option) with master's status-capture pattern for partial-success (return 2). Keep auto-sized HEAP_SIZE for Fernflower. Drop FERNFLOWER_TIMEOUT_SECONDS env var (superseded by --timeout).
- install-dep.sh: auto-merged (verified: bash -n OK, function boundaries intact, master's URL changes inside install_dex2jar applied, trackers-and-ads' new install_smali/apksigner/zip/neutralize-all preserved)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 12:43:21 +02:00
Simone Avogadro f3fb1e9484 chore(install-dep.ps1): align dex2jar to ThexXTURBOXx fork
Mirrors the bash counterpart updated in #12. Switches the GitHub repo,
the fallback tag (v2.4 -> 2.4.35), and the URL pattern order so that the
canonical ThexXTURBOXx naming (dex-tools-2.4.35.zip, no leading 'v') is
tried first, with the pre-2.4.30 naming as fallback.

Closes drift items 9-11 from post-merge-followup-2026-04. Functional bugs
in decompile.ps1 and PR #10 drift items remain pending.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 10:26:42 +02:00
Phil Nachreiner f8d394a69e
Feature/windows powershell support (#8)
* feat: add Windows/PowerShell support

Add PowerShell equivalents of all bash scripts for Windows users:
- check-deps.ps1: Dependency verification with PATH refresh
- install-dep.ps1: Install via winget/scoop/choco or direct download
- decompile.ps1: APK/XAPK/JAR/AAR decompilation with split APK detection
- find-api-calls.ps1: API endpoint extraction (Retrofit, URLs, auth)

Update SKILL.md with Windows-specific instructions and notes for
each workflow phase.

PowerShell scripts support the same options as their bash counterparts
and automatically refresh PATH after installations.

* fix: check-deps.ps1 jadx fallback path version check, decompile.md lint fixes
2026-04-27 10:14:59 +02:00
Roshan Warrier 5a810d94b3
fix: use maintained dex2jar fork (#12)
Co-authored-by: txhno <198242577+txhno@users.noreply.github.com>
2026-04-27 09:59:14 +02:00
muqiao215 c25dfd78d2
fix(decompile): handle partial-success flows (#10)
Allow jadx-only mode to succeed when jadx exits non-zero after writing usable Java output.

Keep both-mode resilient when jadx partially succeeds, normalize Fernflower APK output handling, and make timeout/no-output failures explicit for Vineflower runs.

Co-authored-by: root <root@dbyqhnca.colocrossing.cloud>
2026-04-27 09:59:05 +02:00
kevinaimonster 5bc7cd53e6
feat: add Chinese localization / 添加中文支持 (#4)
Add Chinese trigger words to SKILL.md description and trigger field
for better discoverability by Chinese-speaking users.
2026-04-27 09:58:56 +02:00
Simone Avogadro 6891a3a8a2 SDK Neutralizer v4: JSON registry with 29 SDKs and registry-scan.py
Replaces hardcoded smali patterns with a data-driven SDK registry: 29 JSON
definitions covering ad networks, mediation, attribution, and analytics SDKs
(123 entry points, 156 ad operations, 30 deep patterns, 64 manifest components).

- Add plugins/.../sdk-neutralizer/registry/ with _schema.json + 29 SDK files
  (Adjust, Braze, CleverTap, Guru Fusion, Mintegral, Mixpanel, MobileFuse,
  Moloco, PubMatic, TradPlus, plus the prior 19)
- Add registry-scan.py to consume the registry and emit targets-file +
  manifest-components-file consumed by neutralize.sh
- Extend neutralize.sh with --no-builtin-targets, --targets-file,
  --manifest-components-file, --package, --cleanup-backups
- Extend find-ads.sh and find-trackers.sh with --summary and --json output
- Mark python3 as INSTALL_OPTIONAL in check-neutralize-deps.sh (fallback
  to builtin hardcoded targets when unavailable)
- Bump plugin and marketplace to 1.3.1
- Add .gitignore for __pycache__/, *.pyc, *.pyo
- Update CLAUDE.md, SKILL.md, neutralize.md to reflect registry-driven flow

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 09:43:39 +02:00
Simone Avogadro 3d68cf392f Add merged single APK support for XAPK and fix plugin version to 1.2.0
New merge-splits.sh script merges XAPK split APK contents (native libs,
resources, manifest cleanup) into the decoded base directory, enabling
single APK output installable via standard adb install. rebuild-apk.sh
gains --single-apk flag with auto-detection via .merged marker. SKILL.md
updated with Phase 5a/5b/5c workflow for XAPK rebuild choice.

Fixed plugin.json version from 1.0.0 to 1.2.0 to match marketplace.json.
Added versioning guidance to CLAUDE.md to prevent future mismatches.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 15:16:51 +01:00
Simone Avogadro e70920cf87 SDK Neutralizer v3: full XAPK round-trip, auto-keystore, neutralize-all installer
- decode-apk.sh preserves XAPK structure (.xapk-origin/) with splits, manifest, and metadata for automatic reassembly
- rebuild-apk.sh detects .xapk-origin/, re-signs all split APKs, and assembles final .xapk output
- Add --auto-keystore flag: prioritizes ~/.android/debug.keystore → previous debug key → generated key
- Add neutralize-all compound target to install-dep.sh (java + apktool + apksigner + zip in one command)
- Add apktool version check (>= 2.9.0) with automatic upgrade from GitHub releases
- Add install_zip() and zip dependency check for XAPK rebuild
- All scripts now prepend ~/.local/bin to PATH for user-local tool installs
- Update SKILL.md Phase 3 with built-in catalog detection workflow and custom SDK discovery using Claude Code tools
- Update neutralize.md, CLAUDE.md, and README.md with XAPK and auto-keystore documentation

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 14:37:06 +01:00
Simone Avogadro 291e785c67 Update metadata, install-dep, and find-trackers for sdk-neutralizer support
- Bump marketplace/plugin version to 1.2.0 with sdk-neutralizer keywords
- Add smali/baksmali and apksigner installers to install-dep.sh
- Add --entrypoints flag to find-trackers.sh for app-code-only SDK call detection

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 09:56:19 +01:00
Simone Avogadro e06f794112 SDK Neutralizer v2: fix duplicate attrs, XAPK support, version check, build fallback, new patterns, replay
Six improvements from real-world testing on Water Sort Puzzle XAPK:

- Fix manifest patching creating duplicate android:enabled attributes when
  the component already has android:enabled="true" (3-way check logic)
- Add decode-apk.sh with XAPK support (auto-extracts base APK, skips splits)
- Add apktool >= 2.9.0 minimum version check in check-neutralize-deps.sh
- Add --no-res fallback in rebuild-apk.sh when apktool build fails on resources
- Add 13 missing manifest components (Vungle new SDK, Meta AN provider,
  AppLovin/BidMachine/IronSource init providers, Amazon APS, Pangle/Mintegral
  activities, Smaato, AppsFlyer internal receiver)
- Add patch persistence via neutralize-manifest.json and --replay flag

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 19:03:40 +01:00
Simone Avogadro f216ec0914 Add tracker-analysis and ad-analysis skills with active vs passive SDK detection
Introduces two new skills for privacy auditing of decompiled Android apps:

- tracker-analysis: 4-phase workflow detecting Firebase, Adjust, AppsFlyer,
  Mixpanel, Amplitude, Segment, Braze, CleverTap, Flurry with init/events/
  consent/data exfiltration analysis
- ad-analysis: 3-phase workflow detecting AdMob, Unity, IronSource, AppLovin,
  Meta AN, Vungle, InMobi, Chartboost, Pangle, Mintegral with ad format
  mapping, mediation analysis, and consent framework detection

Key addition: --entrypoints flag in find-ads.sh distinguishes SDKs actively
called by app code from passive mediation adapter dependencies, enabling
accurate "Ad Architecture" classification (single mediator / multiple direct /
hybrid).

Also improves install-dep.sh sudo detection for non-interactive environments
(Claude Code, CI, pipes) and adds CLAUDE.md project instructions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 15:10:47 +01:00
Simone Avogadro ec0f6700f8 Improve plugin discoverability and metadata completeness
- Add keywords, skills and commands paths to plugin.json
- Add argument-hint to decompile command for better UX
- Add description to SKILL.md frontmatter for skill auto-matching

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 11:30:57 +01:00
Simone Avogadro 3a87948331 Fix GitHub username in all repository URLs and LICENSE
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 21:06:15 +01:00
Simone Avogadro d7fefe54f2 Update README to highlight API extraction, fix author name in metadata
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:19:18 +01:00
Simone Avogadro fc9a722359 FIXED: relative paths 2026-02-02 16:36:48 +01:00
Simone Avogadro 5ec451e352 commit iniziale 2026-02-02 16:18:11 +01:00