What is Priv Kit?
Priv Kit lets an Android app start and manage its own privileged process through Root, ADB, a shell command, or an external authorizer. Use it for Binder calls, file operations, commands, and app-defined UserServices.
Use priv-ui for the Compose authorization page, or priv-core to build your own interface.
See Getting started.
Features
Privilege UI
priv-ui handles startup, Wireless Debugging pairing, permission requests, TCP/IP confirmation, and silent startup.
priv-core for custom interfaces
priv-core provides the runtime and transport APIs behind Root, wireless ADB, static TCP, Manual, and app-provided external bridges. A custom interface adds its own permission prompts, pairing input, confirmations, and error presentation. See startup methods for the underlying flows.
Binder access
Resolve system services and forward Binder transactions. Your app supplies the service interfaces and handles errors. See Binder.
Built-in file proxy
The file proxy runs file operations in the server. File contents and directory entries travel through pipes.
Application-defined UserService
Define an AIDL interface and its privileged implementation. Priv Kit starts the UserService, manages its lifecycle, and returns its Binder.
One server per app
Each app owns its server and controls startup, connection, and recovery.
All startup methods use the same connection checks and report server death or connection failure.
Where to start
- Follow Getting started to add
priv-uiand embed the authorization page. - Configure the supplied foreground and silent flows in Privilege UI.
- Read startup methods when building a custom
priv-coreinterface. - Choose the file proxy for basic filesystem access, Binder for raw transactions, or UserService for an application-defined AIDL service.
- Browse the source and report issues on GitHub.