{"adoption": {"forks": 324, "observed_at": "2026-08-28T04:04:50.161886+00:00", "stars": 1476}, "canonical_url": "https://ross.abutalabs.com/products/apktoolplus", "card": {"archived": false, "artifact_type": "application", "description": "ApkToolPlus 是一个 apk 逆向分析工具（a apk analysis tools）。", "domain": ["security", "reverse-engineering", "developer-tools", "mobile-development"], "enriched": true, "function": ["reverse-engineering", "security", "developer-tools", "gui"], "health_score": 31, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["CYRUS-STUDIO/ApkToolPlus"], "name": "CYRUS-STUDIO/ApkToolPlus", "platform": ["cross-platform", "jvm"], "pushed_at": "2025-04-26T20:56:14+00:00", "repo": "CYRUS-STUDIO/ApkToolPlus", "stars": 1476, "tags": ["apk-analysis", "apk-decompiler", "apktool", "apk-hardening", "smali", "dex", "android-reverse-engineering", "java-desktop-app", "desktop"], "topics": ["apktool", "apk-signature-protection", "apk-decompiler", "apk-protection"], "urls": [], "use_cases": ["decompile an apk to view its source code", "recompile and sign a modified apk", "inspect androidmanifest.xml and apk signature info", "harden an apk against reverse engineering and repackaging", "convert dex to smali or class to dex", "obfuscate java code with proguard", "generate icon badges for android apps"], "what_it_is": "ApkToolPlus is a visual, cross-platform desktop application for Android APK reverse analysis built in Java. It bundles APK decompilation/recompilation/signing, APK hardening (dex encryption and anti-repackaging), APK info inspection, source code viewing, and bytecode format conversion tools (jar/class/dex/smali) in one GUI.", "when_to_avoid": ["you need production-grade apk hardening for commercial apps (the author warns it is incomplete)", "you prefer command-line automation or CI integration", "you need actively developed cutting-edge apk analysis features", "you work with files on paths containing non-ASCII characters (JAD limitation)"], "when_to_choose": ["you need a single GUI tool for apk decompiling, signing, and analysis on any OS with a JDK", "you want to view apk source including multi-dex support", "you need quick format conversions between dex, smali, class, and jar", "you want to experiment with apk hardening techniques"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/apktoolplus", "repo": "CYRUS-STUDIO/ApkToolPlus", "role": "main", "score": 40}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:34:26.101066+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe2d5c367bf60561571937db2af19dc869e5b9262db35ccfc999984414ec4f48", "fetched_at": "2026-08-28T04:04:50.161886+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CYRUS-STUDIO/ApkToolPlus"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:34:26.101066+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe2d5c367bf60561571937db2af19dc869e5b9262db35ccfc999984414ec4f48", "fetched_at": "2026-08-28T04:04:50.161886+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CYRUS-STUDIO/ApkToolPlus"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:34:26.101066+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe2d5c367bf60561571937db2af19dc869e5b9262db35ccfc999984414ec4f48", "fetched_at": "2026-08-28T04:04:50.161886+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CYRUS-STUDIO/ApkToolPlus"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:34:26.101066+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe2d5c367bf60561571937db2af19dc869e5b9262db35ccfc999984414ec4f48", "fetched_at": "2026-08-28T04:04:50.161886+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CYRUS-STUDIO/ApkToolPlus"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:34:26.101066+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe2d5c367bf60561571937db2af19dc869e5b9262db35ccfc999984414ec4f48", "fetched_at": "2026-08-28T04:04:50.161886+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CYRUS-STUDIO/ApkToolPlus"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:34:26.101066+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe2d5c367bf60561571937db2af19dc869e5b9262db35ccfc999984414ec4f48", "fetched_at": "2026-08-28T04:04:50.161886+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CYRUS-STUDIO/ApkToolPlus"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:50.161886+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:34:26.101066+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe2d5c367bf60561571937db2af19dc869e5b9262db35ccfc999984414ec4f48", "fetched_at": "2026-08-28T04:04:50.161886+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CYRUS-STUDIO/ApkToolPlus"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:34:26.101066+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe2d5c367bf60561571937db2af19dc869e5b9262db35ccfc999984414ec4f48", "fetched_at": "2026-08-28T04:04:50.161886+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CYRUS-STUDIO/ApkToolPlus"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:34:26.101066+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe2d5c367bf60561571937db2af19dc869e5b9262db35ccfc999984414ec4f48", "fetched_at": "2026-08-28T04:04:50.161886+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CYRUS-STUDIO/ApkToolPlus"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:34:26.101066+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fe2d5c367bf60561571937db2af19dc869e5b9262db35ccfc999984414ec4f48", "fetched_at": "2026-08-28T04:04:50.161886+00:00", "kind": "readme", "missing": false, "url": "https://github.com/CYRUS-STUDIO/ApkToolPlus"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 18, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3789, "days_push": 494, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 40, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}