How lyravoid/folkpatch works
FolkPatch is an Android root-management application built on KernelPatch. The user-facing workflow is to manage root features and install or control system and kernel modules through the app; the APD command-line runtime provides module, plugin, and policy operations, while a built-in Shizuku service offers a separate privileged-service capability. The README documents major capabilities that are not fully visible in sampled implementation excerpts, so those links are shown as unverified rather than asserted as source-confirmed calls.
Main entry points: MainActivity.kt Android app · module.rs Module lifecycle · cli.rs Command interface · lua.rs Lua execution
Components 24
Android manager
- Android app
app/src/main/java/me/bmax/apatch/ui/MainActivity.kt - Root setup
app/src/main/java/me/bmax/apatch/ui/screen/InstallModeSelect.kt
Module management
- APM modules
app/src/main/java/me/bmax/apatch/ui/screen/APM.kt - Batch install
app/src/main/java/me/bmax/apatch/util/BulkInstallManager.kt - KPM modules
app/src/main/java/me/bmax/apatch/ui/screen/KPM.kt
APD runtime
- APD command runtime
apd/src/main.rs - Command interface
apd/src/cli.rs - Module lifecycle
apd/src/module.rs - System mounts
apd/src/magic_mount.rs - Module configuration
apd/src/module_config.rs - Lua plugins
apd/src/plugin.rs - Lua execution
apd/src/lua.rs - Runtime policies
apd/src/supercall.rs - Property changes
apd/src/resetprop.rs - SELinux policy
apd/src/sepolicy.rs
Privilege services
- Shizuku manager
app/src/main/java/me/bmax/apatch/util/ShizukuServiceManager.kt - Shizuku service
app/src/main/java/rikka/shizuku/server/ShizukuService.java - Binder services
app/src/main/java/rikka/shizuku/server/Service.java - Client permissions
app/src/main/java/rikka/shizuku/server/ClientManager.java - User services
app/src/main/java/rikka/shizuku/server/UserServiceManager.java
Interface customization
- Theme store
app/src/main/java/me/bmax/apatch/ui/screen/ThemeStore.kt - Theme manager
app/src/main/java/me/bmax/apatch/ui/theme/ThemeManager.kt - Settings
app/src/main/java/me/bmax/apatch/ui/screen/Settings.kt
Other components
- Device owner
Connections 24
- Device owner → Android app: manages device
README.md - Android app → Root setup: starts setup
- Android app → APM modules: manages modules
README.md - APM modules → Batch install: batch installs
README.md - Android app → KPM modules: manages modules
README.md - APD command runtime → Command interface: runs
apd/src/main.rs - Command interface → Module lifecycle: dispatches commands
- Module lifecycle → System mounts: manages mounts
- Module lifecycle → Module configuration: uses configuration
apd/src/module.rs - Module lifecycle → SELinux policy: reads policy
apd/src/module.rs - Lua plugins → Lua execution: runs scripts
README.md - Lua execution → Module lifecycle: loads module data
apd/src/lua.rs - Lua execution → Lua plugins: reads plugin config
apd/src/lua.rs - Lua execution → Property changes: exposes properties
apd/src/lua.rs - Command interface → Lua plugins: dispatches plugin commands
- Command interface → Runtime policies: dispatches runtime controls
- Android app → Shizuku manager: manages service
README.md - Shizuku manager → Shizuku service: starts service
app/src/main/java/me/bmax/apatch/util/ShizukuServiceManager.kt - Shizuku service → Binder services: extends service
app/src/main/java/rikka/shizuku/server/ShizukuService.java - Binder services → Client permissions: creates manager
app/src/main/java/rikka/shizuku/server/Service.java - Binder services → User services: routes requests
app/src/main/java/rikka/shizuku/server/Service.java - Android app → Theme store: imports themes
README.md - Theme store → Theme manager: manages themes
- Android app → Settings: configures interface
README.md