Analysis updated 2026-06-24
Apply changes to Android init rc scripts without rebooting the device
Iterate on a custom init service during ROM development
Test a new SELinux or permission policy live on a running phone
| 5ec1cff/injectrc | 2dom/keypad | adiao1973/librobotbagfix | |
|---|---|---|---|
| Stars | 65 | 89 | 31 |
| Language | C++ | C++ | C++ |
| Setup difficulty | hard | hard | hard |
| Complexity | 4/5 | 4/5 | 4/5 |
| Audience | developer | developer | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Requires Android NDK to build, root access on a device running Android 11 or newer, and only works because init is dynamically linked.
InjectRC is a small tool that pushes extra startup commands into the Android init process while the phone is already running. The init process is the very first program that Android starts when it boots, and it reads instructions from files called rc scripts to decide what services to launch and what permissions to set. Normally you would have to change those scripts and reboot the phone for the new commands to take effect. This project lets you feed a fresh rc script into init on a live device. The README notes one important limit: it only works on Android versions 11 and above, because the tool relies on init being a dynamically linked program, which earlier versions did not use. If you have an older Android, this will not run for you. To use it, you run the compiled binary on the phone and point it at the rc script you want injected. The command looks like this: ./injectrc followed by the path to the rc file. Building the tool yourself needs the Android NDK, which is the official toolchain for compiling C and C++ code that runs on Android, and Python 3 for the build script. There are two build commands, one that produces an output binary in a local folder, and another that uses adb to push the result straight onto a connected device under /data/local/tmp.
Tool that injects extra init rc scripts into a running Android 11+ phone without rebooting, by attaching to the dynamically linked init process.
Mainly C++. The stack also includes C++, Android, NDK.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.