You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+27-11Lines changed: 27 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,31 @@ Call Android system services from pure Go. Provides ~12000 type-safe Go methods
10
10
11
11
Includes a complete AIDL compiler that parses Android Interface Definition Language files and generates the Go proxies, a version-aware runtime that adapts transaction codes across Android API levels, and a CLI tool (`bindercli`) for interactive service discovery and invocation.
<summary>ndk, jni, binder (click to expand)</summary>
14
38
15
39
This project is part of a family of three Go libraries that cover the major Android interface surfaces. Each wraps a different layer of the Android platform:
16
40
@@ -69,6 +93,8 @@ All three libraries talk to the same Android system services, but through differ
69
93
- The **Java SDK** uses binder IPC internally for system service access (BluetoothManager, LocationManager, etc.), routing calls through the Android Runtime (ART/Dalvik). The `jni` library calls into these Java APIs via the JNI C interface and cgo.
70
94
- The **AIDL binder protocol** is the underlying IPC mechanism that system-facing NDK and Java SDK APIs use. The `binder` library implements this protocol directly in pure Go, bypassing both C and Java layers entirely.
71
95
96
+
</details>
97
+
72
98
## Usage Examples
73
99
74
100
### List Binder Services
@@ -1750,16 +1776,6 @@ Each binder method has a numeric transaction code that can differ between Androi
1750
1776
1751
1777
Methods 2 and 3 exist only for extra reliability in edge cases (e.g. no read access to `/system/framework/`). The `genversions` tool builds the version tables by checking out AOSP revision tags and recording method→code mappings.
1752
1778
1753
-
The resolved table can be cached to disk for fast subsequent startups by passing `OptionCachePath`:
0 commit comments