# Hail (雹) review: freezing Android apps without root

> Hail is a GPL-3.0 Kotlin app that disables, hides, suspends or uninstalls Android packages through Shizuku, Root, Device Owner or privileged system-app modes. It is a tool for people who want to debloat or cut background RAM use, and it is only as capable as the privilege you can grant it.

**aistra0528/Hail** — Disable / Hide / Suspend / Uninstall Android apps without root.

- Repository: https://github.com/aistra0528/Hail
- Stars: 6,789 · Forks: 253
- Language: Kotlin
- License: GPL-3.0
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/aistra0528-hail

## What Hail actually freezes, and who it is for

Hail is a free-as-in-freedom Android application that freezes other apps. The README defines freeze as the action of blocking, meaning immediately stopping, apps when they are not needed, which the project says cuts RAM usage and saves power. Unfreezing returns the app to its original state. That framing matters because Hail is not an uninstaller with a nicer interface. It is a state manager for packages you want to keep installed but not running.

The audience is narrow and technical. You need either a rooted device, a device running Android 11 or newer with wireless debugging, or a ROM you build yourself. Someone who just wants fewer preinstalled apps on a stock, locked phone has no path here. Someone who has already set up Shizuku for other tools, or who flashes their own builds, is the person this project is written for. Hail is also explicitly a debloating and privacy tool by topic, not a general launcher or battery monitor.

## Disable, hide and suspend are three different states

The README separates freeze into three mechanisms, and the differences are user-visible. A disabled app disappears from the launcher and appears as Disabled in the installed apps list; enabling it reverts the change. A hidden app disappears from both the launcher and the installed apps list, which the README compares to an uninstalled state, except that the application data and the actual package file stay on the device. A suspended app, available from Android 7.0, keeps its icon in the launcher but renders it in grayscale.

Suspension is the most interesting of the three and also the most misunderstood. The README states that a suspended app's notifications are hidden, its started activities are stopped, and it cannot show toasts, dialogs or play audio. If the user taps it, the system shows a dialog explaining that the app cannot be used while suspended. Then the README adds the caveat that decides whether Hail fits your use case: suspend only prevents the user from interacting with the app, it does not prevent the app from running in the background. If your goal is to stop a chat app from waking the radio, suspension alone will not do it. That is a design boundary of the Android platform, not a Hail bug, and the documentation is honest about it.

## Working modes decide which actions you get

Hail does not perform these operations itself. It drives a privileged caller, and the README's privilege table is the most important page in the project. Root supports Force Stop, Disable, Hide, Suspend and Uninstall/Reinstall of system apps, and the README notes root is slower than Shizuku. Shizuku over root or Sui covers the same five actions. Shizuku over adb covers Force Stop, Disable, Suspend and system-app Uninstall/Reinstall, but not Hide. Device Owner, Dhizuku, and Island or Insular support only Hide and Suspend. A privileged system app can Force Stop and Disable but cannot Hide or Suspend.

So the same button in the interface can be unavailable depending on how Hail was granted privilege. The README also states that any app frozen on Hail will need to be unfrozen by the same working mode, which means switching from root to Shizuku mid-way leaves you with packages you cannot restore from the new mode. Plan the mode before you freeze anything, and treat the choice as sticky.

## Installing Hail and freezing your first app

The README points to GitHub Releases and to F-Droid for the package com.aistra.hail. There is no Play Store listing mentioned and no command-line installer for the app itself. Install it from one of those two sources, then pick a working mode.

For the recommended wireless-debugging path on Android 11 or newer, Hail relies on Shizuku. The README does not reproduce Shizuku's setup steps, so follow that project's own instructions to start its service, then grant Hail access when it asks.

If you have root, the alternative is simply to select Root as the working mode inside Hail. The README warns it is slower.

If you want Device Owner mode, the README gives this adb command. Run it with the phone connected and USB debugging authorized:

```shell
adb shell dpm set-device-owner com.aistra.hail/.receiver.DeviceAdminReceiver
```

On success, adb prints a confirmation naming the package and the active admin component, which the README reproduces. If the command fails, the README suggests searching the returned message. Note the constraint printed in bold in the README: you must remove Hail as a device owner before you can uninstall it, and removal is done from Settings under Remove Device Owner.

For a privileged system app, the README requires a privapp-permissions XML listing android.permission.PACKAGE_USAGE_STATS, FORCE_STOP_PACKAGES, CHANGE_COMPONENT_ENABLED_STATE and MANAGE_APP_OPS_MODES, and recommends importing Hail when building your ROM. The README's Android.bp example declares an android_app_import named Hail with privileged: true, dex_preopt disabled, presigned and preprocessed set, and a prebuilt_etc target for the permissions file under the permissions subdirectory.

Once a mode is active, freezing is a per-app action in the Hail interface. The README does not document a bulk-freeze flow, so expect to work app by app.

## Reverting a freeze when Hail is not available

This is the part of the README worth reading before you freeze anything, because it is your recovery path. Hail can be uninstalled, a device can be reset, or a mode can stop working, and the frozen packages remain frozen.

The documented adb route uses pm commands. Replace com.package.name with the target package:

```shell
# Enable app
adb shell pm enable com.package.name
# Unhide app (root required)
adb shell su -c pm unhide com.package.name
# Unsuspend app
adb shell pm unsuspend com.package.name
```

The second route edits device state directly. The README names /data/system/users/0/package-restrictions.xml as the file storing app restrictions, and says you can modify, rename or delete it. To enable an app, change the enabled value from 2 (DISABLED) or 3 (DISABLED_USER) to 1 (ENABLED). To unhide, change hidden from true to false. To unsuspend, change suspended from true to false.

That file sits under /data/system, so it is not reachable without root or a recovery environment. The README's truncated section heading mentions wiping data by recovery, which is the blunt fallback. Treat the adb commands as the practical undo and the XML edit as the last resort.

## Where Hail is the wrong tool

The clearest limitation is the one Hail states about itself: suspension does not stop background execution. If an app's cost comes from background work rather than from you opening it, suspend will hide the icon and the notifications while the process keeps running. Force Stop is the action that actually stops it, and Force Stop is unavailable in Device Owner, Dhizuku and Island or Insular modes according to the privilege table.

The second limitation is mode coupling. Because a frozen app must be unfrozen by the same working mode, a user who loses root, or whose Shizuku service stops starting after an update, is left restoring packages through adb or by editing package-restrictions.xml. Hail does not appear to offer a mode-independent undo.

The third is the install surface. Hail is distributed through GitHub Releases and F-Droid. Search interest around this project leans toward APK downloads, and the README does not describe signature verification or an update channel beyond those two sources, so where you get the APK is your responsibility.

Finally, if you want apps gone rather than dormant, Hail is the wrong category. It keeps the package and its data; the README's own description of the hidden state says the package is unavailable but the data and package file are not removed.

## Hail versus a general-purpose debloat tool

The obvious comparison is with adb-based debloat scripts and GUI wrappers, which typically run pm uninstall --user 0 over a USB connection from a computer. That approach removes the app for the current user and leaves no on-device state manager; you reinstall it from the same computer if you change your mind. Hail inverts that: the tool lives on the phone, the state is reversible from the phone, and the operations are disable, hide and suspend rather than user-level uninstall.

That inversion is the whole point. A debloat script is a one-shot batch operation you run from a desk. Hail is an on-demand toggle you use when an app is not needed, which is why the README describes freeze as an on-demand request. The trade-off is that Hail needs a persistent privileged channel, either Shizuku running, root, or a device-owner or system-app arrangement, while an adb script needs nothing on the device after the cable is unplugged. If you debloat once and never revisit it, the script is simpler. If you want to switch apps off and on through the day, Hail is the form factor that fits.

## Licence and maintenance cost

Hail is licensed GPL-3.0 and the README calls it free-as-in-freedom software. For an end user installing the APK, that is mostly informational. For anyone importing Hail into a ROM build, which the README explicitly recommends for privileged system app mode, the copyleft terms of GPL-3.0 apply to the distributed work, and the README's own Android.bp example is a build-integration recipe rather than a licence grant. This is not legal advice; check the LICENSE file and your distribution obligations if you ship it.

The repository is not archived, and the last push was on 2026-09-17. Release cadence in the recent history is uneven: v1.9.0 in September 2024, v1.10.0 in January 2026, and v1.11.0 in August 2026. Upgrades are APK replacements from GitHub Releases or F-Droid, and the README does not document a migration procedure for frozen state across versions, so the safe assumption is that frozen apps stay frozen and must be reverted by the same mode after an update.

## Conclusion

Adopt Hail if you already run Shizuku over wireless debugging or have root, since those two modes cover Force Stop, Disable, Hide, Suspend and system-app Uninstall/Reinstall. Do not adopt it if you can only give it Device Owner or Island-style privileges and you need to disable packages: the README's privilege table marks Disable and Force Stop as unavailable there. Before relying on it, verify which working mode you will use, because the README states that any app frozen on Hail must be unfrozen by the same working mode, and confirm whether a device owner instance is installed, since it must be removed before Hail can be uninstalled.

## FAQ

### What is the Hail app?

Hail (雹) is a free-as-in-freedom Android application that freezes other apps, meaning it blocks them when they are not in use to cut RAM usage and save power. It can freeze by disabling, hiding or suspending a package, and it works through Shizuku, Root, Device Owner or a privileged system-app install.

### What is an app that can freeze apps on Android?

Hail does this on Android. The README describes freeze as immediately stopping apps when they are not needed, with disable, hide and suspend as the three mechanisms, and unfreezing returns the app to its original state.

### How do I disable apps on my Android phone with Hail?

Select a working mode that supports Disable, which per the README's privilege table means Root, Shizuku over root or Sui, Shizuku over adb, or a privileged system app. Device Owner, Dhizuku and Island or Insular cannot disable apps. Disabled apps disappear from the launcher and show as Disabled in the installed apps list.

## Sources

- [aistra0528/Hail on GitHub](https://github.com/aistra0528/Hail)
- [Issues](https://github.com/aistra0528/Hail/issues)
- [License: GPL-3.0](https://github.com/aistra0528/Hail/blob/main/LICENSE)
- [README](https://github.com/aistra0528/Hail/blob/main/README.md)
- [Releases](https://github.com/aistra0528/Hail/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/aistra0528-hail
