HTTP-controlled reboot, screen lock, and screen wake for Android / Fire OS tablets.
Designed for wall-mounted Fire tablets running a Home Assistant dashboard — fills the gaps that the HA Companion App cannot handle without root.
- ~70 KB APK (R8-minified), no external dependencies
- Pure plain-Android UI (no Material library, no AppCompat)
- Localized: English (default), German
- Auto-starts after device boot
| Endpoint | Action | Mechanism |
|---|---|---|
POST /reboot |
Reboot tablet | Accessibility — opens power menu, taps "Restart" |
POST /screen/off |
Lock screen | DevicePolicyManager.lockNow() (preferred) or accessibility |
POST /screen/on |
Wake display | Tiny invisible Activity with setTurnScreenOn(true) + wake-lock |
- Android 9 (API 28) or higher
- Tested on Fire HD 10 Plus 11. Gen (
KFTRPWI), Fire OS 7.3.x
- Download the APK from the Releases page (or build from source).
- Sideload via ADB:
adb install fire-reboot.apk
- Open the app once on the tablet.
- Tap the gear icon (top right of the STATUS card) to open advanced settings.
- Enable, in this order:
- Accessibility service — required for
/reboot. - Device admin — required for
/screen/off(preferred over accessibility lock). - Battery optimization disabled — required for reliable auto-start after device boot.
- Accessibility service — required for
For the in-app 1-click toggle of accessibility (instead of having to go through system settings each time the APK is updated):
adb shell pm grant de.hysight.firereboot android.permission.WRITE_SECURE_SETTINGSFor unconditional whitelist from Doze / battery optimization:
adb shell dumpsys deviceidle whitelist +de.hysight.firerebootDefault port: 8080. Override at build time with -PREBOOT_PORT=8089.
curl -X POST http://<tablet-ip>:8080/reboot
curl -X POST http://<tablet-ip>:8080/screen/off
curl -X POST http://<tablet-ip>:8080/screen/onThe current IP and port are shown prominently at the top of the in-app UI.
configuration.yaml:
rest_command:
tablet_reboot:
url: http://<tablet-ip>:8080/reboot
method: POST
tablet_screen_off:
url: http://<tablet-ip>:8080/screen/off
method: POST
tablet_screen_on:
url: http://<tablet-ip>:8080/screen/on
method: POSTThen call rest_command.tablet_reboot from any automation / script. Pairs naturally with the HA Companion App, which already covers brightness, volume, notifications, and webview commands — Fire Reboot only does the things Companion App cannot do without root.
Requires JDK 17 and an Android SDK with platforms 34 and build-tools 35+.
git clone https://github.com/<your-username>/firetablet-reboot.git
cd firetablet-reboot
./gradlew assembleRelease
# APK at app/build/outputs/apk/release/app-release.apkThe release build is signed with your local Android debug keystore (~/.android/debug.keystore) so you can sideload it immediately. Anyone you share the resulting APK with can install it — Android only requires a valid signature, not a specific publisher. Subsequent APKs you build on the same machine will share the key and update in place. If you want a stable, separate identity for distributing wider, configure a real keystore in signingConfigs.
For a faster debug build without R8 minification:
./gradlew assembleDebugA few Fire-OS-specific things to know:
- After every APK update Android automatically disables the accessibility service (security feature). Re-enable in the Accessibility settings, or run
adb reboot— the AccessibilityManagerService rebinds on a fresh boot. The HTTP service itself restarts automatically viaMY_PACKAGE_REPLACED. - If port 8080 is already in use on the tablet (some apps run their own HTTP server), build with
-PREBOOT_PORT=8089or another free port.
| Onboarding | Advanced settings |
|---|---|
![]() |
![]() |
| When something is missing, the app surfaces a single primary CTA. | Tap the gear in the STATUS card for all toggles, language picker, and direct links to system settings. |
App icon and toolbar icons (power, settings, accessibility, shield, battery, chevron)
are from Google Material Symbols, used under the
Apache License 2.0. See
NOTICE for the attribution text.
The application source code is licensed under the MIT License.
Bundled Material icons remain under their original Apache 2.0 license — see NOTICE.


