Pocket it. Disconnect. Unlock. Reconnect.
Pocket Flight: Auto Airplane is an automatic airplane mode app for Android that turns airplane mode on when your phone is locked and detects that it is in your pocket, then turns it off when you unlock or after 2 minutes of detected out-of-pocket time. The pocket-exit delay is configurable. Hybrid battery saver uses occasional checks before starting that countdown, so initial detection of removal can be delayed. Choose Wi-Fi networks and Bluetooth devices that keep your phone connected, so your home network, headphones or watch can prevent the pocket trigger while connected.
Fewer trips to Quick Settings. A simple routine built around putting your phone away and picking it up again. Runs on your phone with no ads, no account and no analytics. Works without root using Shizuku, which requires setup first.
Download the Android APK · Setup guide · FAQ · Report an issue
Main screen and settings in version 1.5. These screenshots are rendered from the Android UI using Robolectric, with automation paused and Shizuku not connected in the test environment.
More time in motion. Less cellular radio activity in your pocket.
Heading out for a morning walk, a run or a weekend hike? Lock your phone, slip it into your pocket and let Pocket Flight switch on airplane mode once pocket detection confirms it. Unlock when you need your phone, and Pocket Flight turns airplane mode back off so it can reconnect. One less setting to remember before you head out.
If you prefer to reduce your phone's radio-frequency electromagnetic field (EMF) emissions while carrying it close to your body, Pocket Flight makes the airplane-mode habit automatic. Airplane mode disables cellular connectivity, stopping normal cellular transmissions while it is on. Your selected Wi-Fi and Bluetooth exceptions still apply, so a connected device you have chosen can keep the phone online.
Wi-Fi and Bluetooth can remain active according to Android's remembered airplane-mode settings. Pocket Flight does not measure EMF exposure or promise health benefits, and airplane mode does not eliminate all EMF. Cellular calls and mobile data are unavailable while it is on.
- Automates airplane mode: lock your phone, put it in your pocket and let sustained pocket detection trigger the switch. Unlock to restore immediately, or keep it out of your pocket for the configured delay after removal is detected, even while locked.
- Rests between exit checks: Hybrid battery saver pauses pocket sensors while offline, briefly checking for removal before switching to continuous confirmation. Turn it off for continuous exit sensing.
- Rests while connected: any selected Wi-Fi network or Bluetooth device puts pocket sensing on standby and releases its CPU wake locks. Disconnect from all selected connections to resume automatically. A saved network or paired device alone does not count.
- Adapts to your pocket: proximity detection plus optional Pocket assist, which combines darkness and tilt when proximity alone misses your pocket. Adjust the confirmation delay from 2–15 seconds.
- Keeps you in control: pause and restore connectivity from the persistent notification. Airplane mode you enabled manually stays under your control.
- Keeps settings on your phone: no Internet permission, cloud account or GPS coordinate collection. Connection choices and diagnostics stay in app-private storage.
- Helps troubleshoot your phone: a live sensor test and saved pocket report show what the detector sees.
Requires Android 11 or newer, a working Shizuku setup, suitable sensors and permission to run in the background. Download the APK and sideload it directly; no Play Store installation is needed. On an unrooted phone, start Shizuku again after each reboot.
Version 1.1 has been reported working on a Galaxy Z Fold8 running Android 17, including folded pocket use after the detection update. Other phones and firmware need their own testing. Pocket sensing is a heuristic; optional Pocket assist can also trigger on a tilted phone in darkness.
While airplane mode is on, cellular calls and mobile data are interrupted. Wi-Fi and Bluetooth follow Android's airplane mode preferences. Sensor monitoring can use extra battery; this app does not promise battery savings.
- Download
PocketFlight-1.5.apkfrom Releases to your phone and open it from Files. Allow that app to install unknown apps when Android asks. If Samsung Auto Blocker prevents installation, review its sideloading setting in Security and privacy. - Install Shizuku and follow its wireless debugging setup. Start it, open Pocket Flight, then tap the settings gear → Shizuku → Connect / grant Shizuku access. Approve the request in Shizuku. No rooting is needed.
- In Settings → Permissions & battery, tap Allow location, Bluetooth & notifications. For Wi-Fi exceptions, select precise location, then use App settings → Permissions → Location → Allow all the time. Keep Android's Location switch enabled. Bluetooth selection requires Nearby devices access. Notifications provide the persistent pause control.
- In Settings → Connection exceptions, select your exact Wi-Fi network name(s) and paired Bluetooth device(s). You can add the currently connected Wi-Fi network or type its name. Either kind of matching connection prevents airplane mode. The app remembers the choices locally.
- On Samsung, set Battery to Unrestricted for Pocket Flight and Shizuku. Unrestricted apps may not appear in the Never sleeping apps picker; if Pocket Flight is already unrestricted, leave it that way. Check that neither app is in Sleeping apps or Deep sleeping apps. In Secure lock settings, enable Lock instantly with Side button. Labels can vary with One UI.
- In Settings → Diagnostics, run Test proximity sensor on both the cover and inner screens, then Read-only connection check. Return to the main screen, tap Start monitoring, and follow the physical test checklist below.
After a phone restart, start Shizuku again. Pocket Flight attempts to resume monitoring automatically; opening it will also resume it. Android/Samsung can still stop background apps.
Hybrid battery saver is on by default, including after updating. Find its switch under Settings → Pocket detection → After leaving your pocket. It only applies while the app owns airplane mode and pocket-exit restoration is enabled; normal pocket-entry sensing is unchanged.
While the phone remains pocketed, the app checks fresh sensor readings for up to 5 seconds, then unregisters all pocket sensors and releases their CPU wake locks. It requests another check after 1 minute. A check that detects positive outside evidence switches immediately to continuous sensing for your full restore delay (2 minutes by default, configurable from 1–30). Time spent between checks never counts toward that delay. Re-pocketing or losing required evidence cancels confirmation and returns to occasional checks. Changes to detection settings and service restarts discard the old confirmation interval too.
One minute is a requested interval, not a delivery guarantee. Checks use an inexact Android wake-up alarm with a non-waking fallback while the CPU is already running. Android may delay a check by several minutes or longer, particularly during Doze. No exact-alarm access is requested. The extra wait before removal is detected is the battery-saving tradeoff; switch Hybrid off for continuous exit sensing. See Android alarm timing and Doze restrictions.
The home screen shows Battery saver between checks, Checking pocket during a check, and Out of pocket during continuous confirmation. Unlocking, stopping monitoring and a selected connection returning still request restoration immediately. A known connection puts all sensing on standby and cancels the hybrid alarm. Manually enabled airplane mode remains unchanged. If the system rejects scheduling, the app falls back to continuous exit sensing and records the reason.
To update, Stop monitoring and confirm airplane mode is off, then install the 1.5 APK over the existing app. Do not uninstall first. Open the app and start monitoring again. Your existing detection settings and connection exceptions are retained; the new Hybrid switch defaults to on. Savings and alarm delivery still need measurement on your phone.
Connected to your selected home Wi-Fi, headphones or watch? Pocket Flight now shows Standby, unregisters all pocket sensors (including Pocket assist), and releases their CPU wake locks. It checks connections before starting the sensors, including Bluetooth devices already connected when monitoring starts. The main button still says Stop monitoring, because automation is enabled and will resume on its own.
Disconnect from all selected connections and sensing resumes with fresh readings and a new confirmation delay. Wi-Fi network callbacks and Bluetooth connection broadcasts handle changes; a one-minute fallback recheck runs only when Android lets the CPU run. Connection standby uses no Bluetooth scanning or wake-up alarm. The foreground notification remains available, so you can still stop automation. Battery savings have not been measured on a phone.
If a selected connection returns while airplane mode enabled by Pocket Flight is on, the app restores connectivity before entering standby. This requires Wi-Fi or Bluetooth to have remained on in airplane mode; the app does not turn radios on to search for home. If both are off, the existing 2-minute out-of-pocket restore (configurable) and immediate unlock restoration still apply. Manually enabled airplane mode stays unchanged.
If an exception cannot be checked, pocket entry stays paused with an explanation. If Pocket Flight already owns airplane mode, it keeps watching for pocket exit until it can restore, so an unavailable connection check cannot strand it offline.
To update, Stop monitoring and confirm airplane mode is off, then install the 1.4 APK over the existing app. Do not uninstall first; settings are retained. Open the app and start monitoring again. No new setting is needed for connection standby.
Leave your phone out of your pocket for 2 continuous minutes, and Pocket Flight turns off airplane mode it enabled, even if you never unlock. This works without enabling Wi-Fi or Bluetooth to look for home. Unlocking or stopping monitoring still restores immediately.
In Settings → Pocket detection → After leaving your pocket, change the delay from 1–30 minutes, or turn off Restore after leaving pocket to return to unlock-only restoration. The feature is on by default, including after updating.
The countdown starts only with positive outside evidence: clear proximity and, if Pocket assist is enabled, enough light or a fresh flat orientation reading. Missing required readings, returning to the pocket, changing detection settings, sensor re-registration and long gaps in monitoring reset the interval. A service restart also starts fresh. A face-down phone covering its proximity sensor can still look pocketed; place it face up for the home test.
The notification shows the countdown, and Recent activity records an out-of-pocket restoration. Manually enabled airplane mode is left alone. If the phone goes back into your pocket after restoration, normal pocket entry and connection-exception checks apply again. Shizuku must remain available to switch airplane mode off.
To update, use Stop monitoring in version 1.2 or 1.2.1, or Pause & restore connectivity in 1.0 or 1.1, then install the 1.3 APK over the existing app. Do not uninstall first; your settings and signing identity are retained. Open the app after updating. Watching for pocket exit extends screen-off sensor monitoring into airplane mode and can use more battery; see limitations.
The app is now named Pocket Flight: Auto Airplane in Android's app list, on the main screen and in its monitoring notification. The package, signing key, settings and pocket automation are unchanged. This update also adds the screenshots above to the project page.
The main screen shows your current status, a flight animation, a Start monitoring / Stop monitoring button and a settings gear. While monitoring, the dot circles continuously and the normal subtext reads “Waiting for your phone to be locked and pocketed”. Starting lifts the plane; stopping settles it back. Setup problems and restoration warnings remain visible when they need attention.
The gear opens settings for Shizuku, permissions and battery, connection exceptions, pocket detection, diagnostics and recent activity. The back arrow and Android Back return through settings to the main screen. Animation runs only on the visible main screen and respects Android's system animation setting. The orbit indicates that monitoring is enabled; it does not mean airplane mode is already on.
Stop monitoring performs the same pause-and-restore action as in earlier versions; the notification still provides Pause & restore.
Version 1.0 could miss a folded phone in a pocket even when hand coverage worked. Version 1.1 adds an optional second detection path and diagnostics, and was reported working on a Galaxy Z Fold8. Proximity coverage is not a reliable proxy for every fabric, distance or fold/display state; test pocket behavior on your own phone.
- Under Settings → Pocket detection, enable Pocket assist (darkness + tilt). It is off by default, including after an upgrade if you have not enabled it before.
- Leave its light limit at 10 lux and the confirmation delay at 5 seconds for the first test.
- Start monitoring. With no selected connection active, lock the folded phone and place it in your pocket for 15 seconds, then unlock.
- Open Settings → Diagnostics → Last pocket report. It records proximity distance, light level, tilt, lock/screen state, selected sensors and blocking conditions. Use Copy report when reporting a failed test in an issue. Wi-Fi names are omitted from this diagnostic.
- If the report shows light above the chosen limit while actually pocketed, the limit can be adjusted from 1–50 lux. Higher limits can produce more false triggers. A report stuck on “waiting” identifies missing sensor readings instead of assuming darkness.
Pocket assist accepts low light and a phone tilted at least about 35° away from flat, even when proximity says clear. It requires fresh post-screen-off readings and recent orientation data. A flat phone in darkness does not satisfy this fallback, but a tilted phone in a dark room can. Proximity remains an independent trigger, so covering it on a flat surface can still activate airplane mode. This is a heuristic, not guaranteed pocket recognition.
The confirmation timer now tolerates clear gaps up to 800 ms without discarding all progress, but those gaps do not count toward the delay and activation never happens while the detector is clear. Sensors are reselected and re-registered when the screen turns off or the device configuration changes, rather than reusing readings from the previous display session.
- Requires screen off, device actually locked, and sustained pocket evidence for the chosen delay (5 seconds by default, adjustable from 2–15). Evidence is proximity coverage or, when explicitly enabled, the Pocket assist fallback described above.
- Checks Wi-Fi and Bluetooth immediately before enabling airplane mode. Wi-Fi matching is exact and case-sensitive; Bluetooth matching uses the selected paired device's address and checks the current connection, including connections that existed before monitoring started.
- A connected selected network or device suspends pocket sensors and their CPU wake locks. Monitoring resumes when all selected connections disconnect. Pairing/saving alone does not prevent entry. If a configured exception cannot be checked, entry is blocked without running pocket sensors; existing app-owned pocket-exit restoration remains available.
- Wi-Fi without internet still counts, including when mobile data or a VPN is the default network.
- Once enabled by Pocket Flight, airplane mode stays on until unlock, a selected connection returns, or the configured continuous out-of-pocket interval after removal is detected (2 minutes by default). Hybrid mode can delay initial detection while waiting for a sensor check. Waking the lock screen alone does not restore it. Disabling pocket-exit restoration still allows unlock, connection and manual pause restoration.
- Stop monitoring in the app, or Pause & restore in the notification, stops automation and turns off airplane mode enabled by this app.
- Manually enabled airplane mode is left unchanged. Manually switching airplane mode off while locked suppresses re-entry for that lock session.
- Active Android call/communication audio modes block entry. This is a best-effort extra check, not a guarantee against every OEM or app-specific call implementation.
- Changes are serialized and checked again after Bluetooth lookup. A durable ownership marker helps recover after a process restart. An unlock during an in-flight enable is followed by a restore.
- No account, analytics, GPS coordinate collection, advertising or Internet permission. Network names, device addresses, the last 30 activity messages and one bounded pocket diagnostic stay in app-private storage; Android backup is disabled.
Yes, with Pocket Flight and Shizuku on a supported phone. Android does not let ordinary apps toggle airplane mode directly, so Pocket Flight uses Shizuku's elevated access to run the system command. Wireless debugging setup and a Shizuku permission grant are required; restart Shizuku after reboot. See the installation steps.
Yes. Select your Wi-Fi network names and paired Bluetooth devices in the app. If any selected connection is active, Pocket Flight pauses pocket sensing and will not enable airplane mode. It resumes automatically after all selected connections disconnect. You can use this for home Wi-Fi, headphones, a smartwatch or another connected Bluetooth device. If the app cannot verify a configured exception, it blocks entry into airplane mode.
Pocket Flight can automate airplane mode during those pocketed stretches, reducing radio-frequency emissions from normal cellular transmissions while airplane mode is active. The app does not measure the reduction or control emissions from other devices. Wi-Fi and Bluetooth may stay on according to your phone's settings; check their switches if you want them off too. Pocket detection and connection exceptions determine whether airplane mode activates.
If you select your headphones or watch as a connection exception, their active connection prevents Pocket Flight from enabling airplane mode. To allow airplane mode while using them, leave that device out of your exception list and use Android's option to keep Bluetooth on in airplane mode. Bluetooth will continue transmitting. Download any music or podcasts before heading out if you plan to listen without mobile data.
Version 1.1 has one successful user report on a Galaxy Z Fold8 running Android 17. Optional Pocket assist was added after proximity detection worked under a hand but missed the folded phone in a pocket. Results depend on sensors, clothing, firmware and background settings; follow the phone test checklist for your device.
Battery savings have not been measured. Connection standby stops pocket sensors and releases their CPU wake locks while any selected Wi-Fi or Bluetooth connection is active. Version 1.5 also defaults to Hybrid battery saver while watching for pocket exit: sensors stop between brief checks, then monitor continuously after removal is detected. A lightweight service remains active. Sensor use, CPU wake locks and waking for checks still consume power. Compare battery use on your own phone; a lower sensor duty cycle is not a measured improvement in whole-phone battery life.
Android restricts access to Wi-Fi network names using location permissions and the system Location switch. Pocket Flight needs that access to match your selected networks while locked. It does not collect GPS coordinates or send your network names to a server.
Yes. It restores after 2 continuous minutes of detected out-of-pocket time by default, even while locked. With Hybrid battery saver on, initial removal detection waits for a brief sensor check; Android can delay that check by several minutes or longer. The full restore countdown starts only after removal is detected. Change the delay, switch Hybrid off for continuous sensing, or disable pocket-exit restoration in Settings → Pocket detection. Returning to your pocket during confirmation resets the countdown. Unlocking, Stop monitoring, and the notification's Pause & restore still restore immediately. If Shizuku stops while airplane mode is on, turn airplane mode off manually in Quick Settings.
A proximity sensor detects coverage, not a pocket. A hand, bag, case or face-down phone can also satisfy it. Sensor behavior can vary between displays and firmware. Version 1.1 has one successful user report on a Galaxy Z Fold8 / Android 17, 36 passing unit tests and zero Android lint errors; this does not establish compatibility with all phones or cover every checklist scenario.
The service prefers wake-up sensors. If proximity, or a sensor required by Pocket assist, cannot wake the CPU, Pocket Flight holds a partial CPU wake lock while actively monitoring with the screen off. Hybrid mode releases these locks and unregisters sensors between exit checks; it holds a bounded lock during each brief check and keeps continuous sensing during the exit countdown. With Hybrid off, exit sensing can keep non-wake sensors and the CPU running for the entire offline period. Even with wake-up sensors, a CPU wake lock is held during the exit countdown so the timer can run with the screen off. These locks are released when no longer needed or the service stops. This uses additional battery, especially with Pocket assist enabled. The pocket report identifies sensor types. Some virtual sensors may still stop producing useful readings with the screen off; missing required evidence prevents the relevant trigger. Android power management can delay checks, monitoring and restoration; the configured delay is not a guarantee of exact timing on every phone.
Android does not allow normal apps to toggle airplane mode. Pocket Flight calls the system connectivity command through a Shizuku UserService. OEM or Android updates can restrict this capability or Bluetooth's privileged connection query. Bluetooth query failures block entry rather than guessing.
If Shizuku is killed, loses permission or cannot execute a command while airplane mode is on, unlock alone cannot restore connectivity. Turn airplane mode off in Quick Settings and restart Shizuku. Force-stopping Pocket Flight also prevents automatic restoration until it is opened again. Pause and restore before uninstalling.
Android controls which radios airplane mode disables and can remember that Wi-Fi or Bluetooth should remain enabled. Pocket Flight changes airplane mode; it does not override those system radio preferences. Cellular calls and mobile data are interrupted while airplane mode is on.
| Test | Expected result |
|---|---|
| Folded and unfolded, cover/uncover sensor in its live test | Clear and Covered change reliably |
| No selected connection; lock and pocket for more than the delay | Airplane mode turns on; unlock turns it off |
| Lock on a table with sensor clear | Airplane mode stays off |
| Cover briefly, then uncover before delay | Airplane mode stays off |
| Cover while unlocked, or while lock screen is lit | Airplane mode stays off |
| Unlock during the confirmation delay | Airplane mode stays off |
| With Hybrid on, leave the phone pocketed after app-enabled airplane mode | Battery saver between brief checks; sensors and their CPU wake locks stop between checks |
| After app-enabled airplane mode, remove phone and leave it face up without unlocking | Next check detects removal; countdown then runs continuously for 2 minutes by default; Android may delay the initial check |
| Return phone to pocket before the exit countdown finishes | Countdown resets; airplane mode stays on; Hybrid returns to occasional checks |
| Turn Hybrid off while resting | Exit sensors resume continuously; no hybrid alarm remains |
| Unlock, pause, or reconnect a selected exception during Hybrid rest | Restoration is requested immediately without waiting for the next sensor check |
| Leave the phone idle for a long time, then remove it without unlocking | A delayed check still requires fresh evidence and the entire restore delay |
| Change exit delay to 1 minute, then repeat the locked pocket-exit test | Restoration uses the new full interval |
| Disable Restore after leaving pocket and repeat | Airplane mode stays on until unlock or pause |
| Manually enable airplane mode and leave phone out of pocket | Manual airplane mode remains on |
| Connected to selected Wi-Fi before starting monitor | Standby; pocket sensors paused; airplane mode stays off |
| Connected to selected Bluetooth before starting monitor | Standby after connection check; pocket sensors paused |
| Selected Wi-Fi unavailable, selected Bluetooth connected | Standby continues; airplane mode stays off |
| Disconnect one exception while another remains connected | Standby continues |
| Disconnect every selected connection while still locked | Pocket sensing resumes; a fresh full confirmation delay is required |
| Lock or fold the phone while a selected connection is active | Standby continues; pocket sensors remain paused |
| Selected Wi-Fi or Bluetooth reconnects while app-owned airplane mode is on | Connectivity restores, then standby; requires that radio to have remained on |
| Paired Bluetooth disconnected; no selected Wi-Fi connected | Normal pocket trigger works |
| Revoke location / disable Location with selected Wi-Fi connected | Entry is blocked with an explanatory status |
| Pause while app-owned airplane mode is on | Airplane mode turns off |
| Manually enable airplane mode, then unlock | Your manual setting is preserved |
| Stop/restart Shizuku; restart phone | Monitor reports missing access and resumes after Shizuku is restarted |
| Leave locked for several minutes, then pocket | Sensor still detects pocket in normal screen-off operation |
| Enable Pocket assist; lock and pocket the folded phone for 15 seconds | Dark + tilted readings can trigger even with proximity clear |
| Pocket assist enabled, proximity clear, phone flat in a dark room | Fallback does not trigger |
| Return after a failed pocket test | Last pocket report contains readings and blocking conditions |
Use Quick Settings to inspect the airplane icon without unlocking. Wait a few seconds after unlock for the system command and radio reconnection. Test restoration before relying on unattended operation.
Requires JDK 17, Android SDK platform 35 and build-tools 35.0.0. The app has minSdk 30 (Android 11), targets API 35, and uses APIs available on newer Android versions through compatibility behavior. It contains no native binaries. Targeting API 35 does not by itself certify Samsung Android 17 compatibility.
Set JAVA_HOME and ANDROID_HOME, or create a local local.properties with sdk.dir=/path/to/android-sdk. Then:
.\gradlew.bat :app:assembleRelease :app:testDebugUnitTest :app:lintDebugOn macOS/Linux use sh ./gradlew instead. The Gradle wrapper downloads Gradle 8.11.1 if needed. First build downloads dependencies from Google/Maven Central.
The published personal-use APK is non-debuggable and signed with the original development key. That key is not included in this repository. Building from source uses your own Android development keystore (~/.android/debug.keystore), so a self-built APK cannot update the published APK unless signed with the same original key. Retain your signing key for future updates. For broader distribution, configure a dedicated release signing key.
- APK:
app/build/outputs/apk/release/app-release.apk - Unit test report:
app/build/reports/tests/testDebugUnitTest/index.html - Android lint report:
app/build/reports/lint-results-debug.html - Policy:
FlightPolicy.java; sensor interpretation and timing:PocketDetector.java; sensor lifecycle and commands:PocketService.java - Privileged, fixed-command interface:
FlightBridgeService.java
Tests exercise entry guards, restoration precedence, manual ownership, exception uncertainty, Wi-Fi name handling, darkness/tilt conditions, stale or invalid readings, flicker timing, timer resets and diagnostic retention. Hardware sensing, Shizuku's shell permissions, Samsung background behavior and actual radio changes require the phone checklist above.
Version 1.2 also has Robolectric checks for the native UI, settings navigation, saved preferences, restoration controls and animation lifecycle, plus pure tests that keep restoration and setup errors visible on the home screen. Native-rendered UI previews are written under app/build/ui-preview/ during the UI tests. These checks do not replace a test on your physical phone.
Version 1.3 adds exit-evidence and countdown tests, saved exit-setting checks, and service tests using a fake Shizuku transport. They exercise locked restoration, re-pocketing before a queued command, manual airplane mode, missing readings, screen-off wake locks and Shizuku loss. The new behavior still needs the physical pocket-exit checks above on your phone.
Version 1.4 adds service checks for sensor unregistration and wake-lock release during connection standby, startup connections, both exception types together, idle rechecks, fresh readings after disconnect, stale Bluetooth replies, cancellation of queued entry, reconnection restoration and unknown connection states. These use fake connection and Shizuku responses; real Samsung background behavior and battery savings still require phone testing.
Version 1.5 adds hybrid-cycle tests for sensor and wake-lock release, private alarm delivery on Android 11 and 15 test runtimes, delayed delivery after simulated sleep, fresh Pocket assist evidence, continuous confirmation, re-pocketing during a queued restore, unlock/pause/connection precedence, setting changes, recovery, alarm cleanup and scheduling failure. The UI checks cover the saved Hybrid switch and its dependency on pocket-exit restoration. Samsung hardware sensing, actual idle alarm delivery and battery savings still need phone verification.
- Android global settings restrictions
- Shizuku API and UserService guide
- Wi-Fi name permission/redaction behavior
- Android special-use foreground services
- Android 17 changes affecting all apps
Shizuku API/provider dependencies are distributed under their upstream MIT license.

