zhkl0228/unidbg

Allows you to emulate an Android native library, and an experimental iOS emulation

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 2 minutes ago
Added to GitGenius on September 13th, 2026
Created on February 26th, 2019
Open Issues & Pull Requests: 420 (+0)
GitHub issues: Enabled
Number of forks: 1,187
Total Stargazers: 5,207 (+0)
Total Subscribers: 108 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 100
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 822 days
Stale 30+ days: 99
Stale 90+ days: 97

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Unidbg is an emulator that allows you to run Android native libraries and experimentally iOS libraries in a Java environment.

The tool solves the problem of analyzing and testing native code without needing to run it on actual devices or full Android emulators. It works by emulating the ARM instruction set and providing implementations of the JNI Invocation API, syscalls, and runtime environments. The emulator supports both ARM32 and ARM64 architectures and includes multiple execution backends ranging from a simple interpreter to optimized implementations like dynarmic and Apple M1 hypervisor support for maximum performance.

Unidbg suits security researchers, reverse engineers, and developers who need to analyze native Android or iOS libraries in isolation. It is particularly valuable for testing JNI code, understanding native behavior, and performing dynamic analysis without device dependencies. The project is explicitly educational in nature and should be used with awareness of its experimental status, especially for iOS support. The tool distinguishes itself through comprehensive hooking support via Dobby for inline hooks and xHook for Android import hooks, memory leak detection with guest and host stack traces, and integration with Model Context Protocol for AI-assisted debugging through tools like Cursor.

Development activity shows consistent engagement with the codebase through regular updates and refinements to core functionality. The project maintains active support for multiple execution backends and continues to expand debugging capabilities, including recent additions of MCP integration for AI-assisted analysis. The maintainers demonstrate responsiveness to extending the tool's utility across different analysis scenarios and platforms.