How aistra0528/hail works
Hail is an Android app for managing whether installed apps are stopped, disabled, hidden, or suspended, and for restoring them later. Users find and select apps in Home, then freeze or unfreeze them through the configured working mode; the installed-apps screen also supports filtering and package actions. External intents and Quick Settings provide additional command entry points, while scheduled auto-freezing applies the same management logic subject to skip rules. The README documents privilege modes and API actions; the graph reflects sampled wiring and omits uncertain links for unsampled subsystems.
Main entry points: AppManager.kt Freeze operations · HailData.kt App and mode state · AppsFragment.kt Installed apps · ApiActivity.kt Intent API
Components 20
User interface
- Main navigation
app/src/main/kotlin/com/aistra/hail/ui/main/MainActivity.kt - Home app list
app/src/main/kotlin/com/aistra/hail/ui/home/PagerFragment.kt - Installed apps
app/src/main/kotlin/com/aistra/hail/ui/apps/AppsFragment.kt - Settings
app/src/main/kotlin/com/aistra/hail/ui/settings/SettingsFragment.kt
Commands and automation
- Intent API
app/src/main/kotlin/com/aistra/hail/ui/api/ApiActivity.kt - Quick Settings
app/src/main/kotlin/com/aistra/hail/services/QSTileService.kt - Auto-freeze service
app/src/main/kotlin/com/aistra/hail/services/AutoFreezeService.kt - Auto-freeze worker
app/src/main/kotlin/com/aistra/hail/work/AutoFreezeWorker.kt
App management
- App and mode state
app/src/main/kotlin/com/aistra/hail/app/HailData.kt - Freeze operations
app/src/main/kotlin/com/aistra/hail/app/AppManager.kt - App metadata
app/src/main/kotlin/com/aistra/hail/app/AppInfo.kt
Privilege backends
- Package utilities
app/src/main/kotlin/com/aistra/hail/utils/HPackages.kt - Device-owner mode
app/src/main/kotlin/com/aistra/hail/utils/HPolicy.kt - Root shell mode
app/src/main/kotlin/com/aistra/hail/utils/HShell.kt - Shizuku mode
app/src/main/kotlin/com/aistra/hail/utils/HShizuku.kt - Dhizuku mode
app/src/main/kotlin/com/aistra/hail/utils/HDhizuku.kt - Island mode
app/src/main/kotlin/com/aistra/hail/utils/HIsland.kt
Other components
- User
- External intents
- Android system
Connections 37
- User → Main navigation: opens
- Main navigation → Home app list: navigates
- Main navigation → Installed apps: navigates
- Main navigation → Settings: navigates
- User → Home app list: selects apps
- Home app list → App and mode state: reads and updates
- Home app list → Freeze operations: requests freeze
- User → Installed apps: manages packages
- Installed apps → App and mode state: updates selection
- Installed apps → Package utilities: queries packages
- Installed apps → Freeze operations: requests package actions
- Settings → App and mode state: sets preferences
- External intents → Intent API: sends action
- Intent API → App and mode state: reads selections
- Intent API → Freeze operations: dispatches operation
- Intent API → Android system: launches app
- User → Quick Settings: taps tile
- Quick Settings → App and mode state: reads and updates
- Quick Settings → Intent API: starts action
- Auto-freeze service → App and mode state: checks whitelist
- Auto-freeze service → Android system: registers screen receiver
- Auto-freeze worker → App and mode state: reads rules and list
- Auto-freeze worker → Freeze operations: freezes eligible apps
- Auto-freeze worker → Android system: checks device state
- Freeze operations → App and mode state: selects working mode
- Freeze operations → Package utilities: queries or changes state
- Freeze operations → Device-owner mode: dispatches owner mode
- Freeze operations → Root shell mode: dispatches root mode
- Freeze operations → Shizuku mode: dispatches Shizuku mode
- Freeze operations → Dhizuku mode: dispatches Dhizuku mode
- Freeze operations → Island mode: dispatches Island mode
- Package utilities → Android system: queries package manager
- Device-owner mode → Android system: changes app policy
- Root shell mode → Android system: runs system commands
- Shizuku mode → Android system: runs privileged commands
- Dhizuku mode → Android system: requests app policy
- Island mode → Android system: changes app policy