Getting it into your agent
There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.
Wrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/promastergame/tinyapk-lab/manual-build)<a href="https://agentmods.dev/skills/promastergame/tinyapk-lab/manual-build"><img src="https://agentmods.dev/badge/skills/promastergame/tinyapk-lab/manual-build.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00022 | $0.02825 |
| Opus 5 | $0.00011 | $0.01412 |
| Sonnet 5 | $0.00004 | $0.00565 |
| Haiku 4.5 | $0.00002 | $0.00282 |
Grade A, and why
build-android-apk-without-gradle scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 255 lines — stays where its author put it; the contents beside it link to each section on GitHub.
SKILL: Build Android APK Without Gradle
When to use
Use this skill when you need to build an Android APK on a Linux server WITHOUT Android Studio, WITHOUT Gradle, and WITHOUT internet access to Google/Maven servers.
This skill was born from a real session where all standard approaches failed and the APK was built manually tool by tool.
Tools needed
| Tool | Purpose | How to get |
|---|---|---|
aapt2 |
Compile XML resources | git clone github.com/rendiix/termux-aapt → prebuilt x86-64 binary |
android.jar |
Android platform API classes | git clone github.com/Reginer/aosp-android-jar → pick API level |
ecj.jar |
Java compiler (replaces javac!) | Maven Central: org.eclipse.jdt:ecj — user uploads to chat |
d8.jar |
Java .class → DEX format | Android SDK: build-tools/<ver>/lib/d8.jar — user uploads |
apksigner.jar |
Sign the APK | Android SDK: build-tools/<ver>/lib/apksigner.jar — user uploads |
zipalign |
Align APK bytes | apt-get install -y zipalign |
keytool |
Create debug keystore | Bundled with JRE — no install needed |
java (JRE only) |
Run all jar tools | Already on server — verify with java -version |
Why ECJ instead of javac?
javac is part of the JDK which is often unavailable or broken on restricted servers. ECJ (Eclipse Compiler for Java) is a standalone .jar that does the same job using only JRE. Always use --release 8 flag for Android compatibility — using -8 causes LambdaMetafactory cannot be resolved errors.
Why .aar files contain classes.jar?
Android library packages (.aar) are just ZIP archives. The actual compiled classes live inside as classes.jar. Extract with:
unzip mylib.aar classes.jar -d mylib-extracted/
Find .aar files in user's Gradle cache at:
C:\Users\<name>\.gradle\caches\modules-2\files-2.1\androidx.<lib>\<lib>\<version>\<hash>\<lib>.aar
What can be cloned from GitHub (no auth needed)
# android.jar for all API levels (2.2GB total — use sparse clone for one version)
git clone --depth=1 https://github.com/Reginer/aosp-android-jar.git
# then copy: android-jar/android-34/android.jar
# aapt2 prebuilt binary for Linux x86-64
git clone --depth=1 https://github.com/rendiix/termux-aapt.git
# binary at: termux-aapt/prebuilt-binary/x86-64/aapt2
# gradle-wrapper.jar (needed if using gradlew)
git clone --depth=1 --filter=blob:none --sparse https://github.com/gradle/gradle.git
cd gradle && git sparse-checkout set gradle/wrapper
# jar at: gradle/wrapper/gradle-wrapper.jar
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 255 lines · 22 tokens per session scan A a56f9281284d
build-android-apk-without-gradle is a skill published in the GitHub repository Promastergame/tinyapk-lab (24 stars, last pushed 1mo ago), licensed MIT. It adds 22 tokens to every session and 2,825 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
analyzing-android-malware-with-apktool
Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically…
Mobile Application Security
Android and iOS application security testing — static and dynamic analysis, APK/IPA inspection, OWASP MASVS/MASTG verification, secure-storage and transport review, and mobile malware triage for authorized assessments.
analyzing-android-malware-with-apktool
Use when perform static analysis of Android APK malware samples using apktool for decompilation, jadx for Java source recovery, and androguard for permission analysis, manifest inspection, and suspicious API call detection. Use when performing static analysis of android apk malware samples using apktool.
capture-app-flow-media
Use to record or convert ApkAnalyzer app flows into screenshots or GIFs for the README or product docs. Triggered by phrases like "add screenshots", "convert videos to gifs", "record a gif of this flow", "capture app screenshots", "update the README screenshots", "make a demo gif".
navigate-app-adb
Use to drive ApkAnalyzer's UI on a connected device/emulator via adb — dumping the screen, finding a tappable element by its visible text or content description, and tapping it — to inspect or verify a change without a human touching the device. Triggered by phrases like "navigate to X screen", "tap through the app"…
sync-design-changes
Use when translating tweaks made in the "Apk Analyzer Design System" Claude Design project (claude.ai/design) back into actual Kotlin/Compose code in this repo. Triggered by phrases like "sync design changes", "bring in the Claude Design edits", "implement what I changed in Claude Design", "apply the design tweaks"…