# Building a Pure Ada APK/DEX Reverse Engineering Tool

**URL:** https://forum.ada-lang.io/t/building-a-pure-ada-apk-dex-reverse-engineering-tool/4626
**Category:** General
**Tags:** ada
**Created:** [August 8, 2026, 3:02pm UTC](https://forum.ada-lang.io/t/building-a-pure-ada-apk-dex-reverse-engineering-tool/4626 "2026-08-08T15:02:58Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![ibousv](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/ibousv/32/1052_2.png) [@ibousv](https://forum.ada-lang.io/u/ibousv)
#### Post date: [August 8, 2026, 3:02pm UTC](https://forum.ada-lang.io/t/building-a-pure-ada-apk-dex-reverse-engineering-tool/4626/1 "2026-08-08T15:02:58Z")

</div>

**Hello Ada Community,**

I am a **junior developer** diving into Ada, and I believe the best way to master a language is by building something real and challenging.

To learn Ada, system-level stream parsing, and formal verification, I started building **`apkforge`** : a self-contained CLI tool for parsing, decompiling, patching, repacking, and signing Android APK and DEX files completely in native Ada.

I would love any advice, code reviews, or feedback on writing idiomatic Ada code rather than translating patterns from other languages.

Thanks for welcoming me into the Ada community!

---

<div class="post-metadata">

### Author: ![lojikil](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/lojikil/32/980_2.png) [@lojikil](https://forum.ada-lang.io/u/lojikil)
#### Post date: [August 8, 2026, 5:00pm UTC](https://forum.ada-lang.io/t/building-a-pure-ada-apk-dex-reverse-engineering-tool/4626/2 "2026-08-08T17:00:56Z")

</div>

This is super interesting and definitely a useful project! Are you looking to hoist something like smali & Java or just disassemble? Also, is the source for apkforge available yet?

---

<div class="post-metadata">

### Author: ![OneWingedShark](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/onewingedshark/32/305_2.png) [@OneWingedShark](https://forum.ada-lang.io/u/OneWingedShark)
#### Post date: [August 8, 2026, 5:40pm UTC](https://forum.ada-lang.io/t/building-a-pure-ada-apk-dex-reverse-engineering-tool/4626/3 "2026-08-08T17:40:27Z")

</div>

> [@ibousv](#):
>
> To learn Ada, system-level stream parsing, and formal verification, I started building **`apkforge`** : a self-contained CLI tool for parsing, decompiling, patching, repacking, and signing Android APK and DEX files completely in native Ada.
> 
> I would love any advice, code reviews, or feedback on writing idiomatic Ada code rather than translating patterns from other languages.

Ok, so there’s a few things that can trip you up:

1. Command-line functionality is trash; not the concept, but the second- and third-order effects from the ascendency of C, particularly in OS design and development. (To put a name to it, commandline parameters should be parsed and ideally typed by a system-level library; instead of the mess of ad hoc application-level parsing.)
2. Remember that Ada is very good at allowing you to separate your interface and implementation, many problems can be addressed using this.
3. Remember Ada’s generics can have subprograms, objects, and generic packages as formal parameters; remember that you can have `in out` mode on the formal object parameters.
4. And last, the key to really using Ada effectively: use the type-system to model your problem-space, then use _that_ to solve your problem.
