How frknkrc44/hma-oss works
HMA-OSS is an Android/Zygisk module for concealing selected apps and restricting app-list queries. The user configures scope and filtering in the manager UI; configuration is persisted and consumed by the Zygote-side service, which installs framework hooks to enforce the rules. The README confirms the product purpose, while source excerpts show configuration, preset handling, and hook setup. Several UI-to-runtime links are documented only indirectly by the available index, so those are marked unverified; unsampled hook details are not inferred.
Main entry points: HMAService.kt HMA service · MainActivity.kt Main activity · ServiceClient.kt Service client · ConfigManager.kt Config manager
Components 20
Manager app
- Main activity
app/src/main/java/org/frknkrc44/hma_oss/ui/activity/MainActivity.kt - App and scope UI
app/src/main/java/icu/nullptr/hidemyapplist/ui/fragment - Settings UI
app/src/main/java/icu/nullptr/hidemyapplist/ui/fragment/SettingsFragment.kt - Template UI
app/src/main/java/org/frknkrc44/hma_oss/ui/fragment/SettingsTemplateConfFragment.kt - Logs and stats UI
app/src/main/java/org/frknkrc44/hma_oss/ui/fragment/TabbedLogsFragment.kt - Service client
app/src/main/java/icu/nullptr/hidemyapplist/service/ServiceClient.kt - Service provider
app/src/main/java/icu/nullptr/hidemyapplist/service/ServiceProvider.kt - Package cache
app/src/main/java/icu/nullptr/hidemyapplist/util/PackageHelper.kt
Configuration and presets
- App preferences
app/src/main/java/icu/nullptr/hidemyapplist/service/PrefManager.kt - Config manager
app/src/main/java/icu/nullptr/hidemyapplist/service/ConfigManager.kt - Shared config model
common/src/main/java/icu/nullptr/hidemyapplist/common/JsonConfig.kt - App presets
common/src/main/java/icu/nullptr/hidemyapplist/common/AppPresets.kt - Settings presets
common/src/main/java/icu/nullptr/hidemyapplist/common/SettingsPresets.kt
Zygote runtime
- Zygote entry
zygote/src/main/java/org/frknkrc44/hma_oss/zygote/ZygoteEntry.java - HMA service
zygote/src/main/java/org/frknkrc44/hma_oss/zygote/service/HMAService.kt - Framework hooks
zygote/src/main/java/org/frknkrc44/hma_oss/zygote/hook - Runtime state
zygote/src/main/java/org/frknkrc44/hma_oss/zygote/service/HMAServiceDataHolder.kt
Android platform
- Package manager API
stub/src/main/java/android/content/pm/IPackageManager.java
Other components
- Device owner
- Android framework
Connections 23
- Device owner → Main activity: opens
README.md - Main activity → App and scope UI: navigates to
app/src/main/java/icu/nullptr/hidemyapplist/ui/fragment/SettingsFragment.kt - Main activity → Settings UI: navigates to
app/src/main/java/icu/nullptr/hidemyapplist/ui/fragment/SettingsFragment.kt - Main activity → Template UI: navigates to
- Main activity → Logs and stats UI: navigates to
- Settings UI → Config manager: updates
app/src/main/java/icu/nullptr/hidemyapplist/ui/fragment/SettingsFragment.kt - Settings UI → Service client: calls
app/src/main/java/icu/nullptr/hidemyapplist/ui/fragment/SettingsFragment.kt - App and scope UI → Config manager: edits scope
app/src/main/java/icu/nullptr/hidemyapplist/ui/fragment/SettingsFragment.kt - Template UI → Config manager: edits templates
- Logs and stats UI → Service client: requests logs
- Service client → Service provider: uses provider
app/src/main/java/icu/nullptr/hidemyapplist/service/ServiceClient.kt - Service client → HMA service: invokes service
app/src/main/java/icu/nullptr/hidemyapplist/service/ServiceClient.kt - Config manager → Shared config model: serializes config
app/src/main/java/icu/nullptr/hidemyapplist/service/ConfigManager.kt - HMA service → Shared config model: parses config
zygote/src/main/java/org/frknkrc44/hma_oss/zygote/service/HMAService.kt - HMA service → Framework hooks: registers hooks
zygote/src/main/java/org/frknkrc44/hma_oss/zygote/service/HMAService.kt - HMA service → App presets: reloads presets
zygote/src/main/java/org/frknkrc44/hma_oss/zygote/service/HMAService.kt - HMA service → Runtime state: uses runtime state
zygote/src/main/java/org/frknkrc44/hma_oss/zygote/service/HMAService.kt - App presets → Package manager API: queries packages
common/src/main/java/icu/nullptr/hidemyapplist/common/AppPresets.kt - Framework hooks → Package manager API: filters requests
- Zygote entry → HMA service: starts service
- HMA service → Android framework: hooks runtime
README.md - Package cache → Service client: loads package data
app/src/main/java/icu/nullptr/hidemyapplist/util/PackageHelper.kt - Main activity → App preferences: reads preferences
app/src/main/java/org/frknkrc44/hma_oss/ui/activity/MainActivity.kt