Skip to content

Installation

RapierXbox edited this page Jul 13, 2026 · 5 revisions

Installation

Installing ShellyElevate means sideloading an Android APK over USB. The Shelly Wall Display is a regular Android device once you unlock developer mode, so this looks pretty much like any other ADB install, with one quirky tap sequence to get developer mode in the first place.

You'll need:

If you've never used adb before, install Android Platform Tools. The relevant package on macOS/Linux is android-platform-tools, and on Windows you can grab the official zip.

Note

The original Shelly Wall Display (Stargate, SAWD-0A1XX10EU1) doesn't have the developer-mode tap sequence described below. If the tap sequence does nothing on your unit, you need to go through the Jailbreak procedure first to get a root shell and enable ADB. Once ADB is running, the rest of this page applies.

1. Unlock developer mode

This is the only odd part. The Shelly software has developer mode hidden behind a tap sequence on the settings screen. On the device, go to Settings > About Device. You'll see two lines, the firmware version and the hardware revision. Tap them in this order:

F   H   F   F   H   F   H   H

F is the firmware version line, H is the hardware revision line. After the last tap, developer mode is on. The Android Settings app is now reachable, and USB debugging can be enabled there.

2. Plug it in and check the connection

Connect the display to your computer via USB. From the device's developer settings, enable USB debugging. Then on your computer:

adb devices

You should see one device listed (the first time you'll be prompted on the display to authorize the computer; accept it). If the list is empty, double-check that USB debugging is enabled and that the cable isn't a charge-only one.

3. Install the APK

Grab the latest .apk from Releases. Then:

adb install -g shellyelevatev2.apk

The -g grants all manifest permissions up front so you don't have to chase prompts later.

4. Grant the extra permissions

A couple of permissions can't be granted by -g (WRITE_SETTINGS, needed for brightness control, and the battery/doze whitelist). ShellyElevate tries to grant these itself on first launch, so on most devices you don't have to do anything here. If brightness control isn't working, grant them manually through AppOps:

# allow changing screen brightness
adb shell appops set me.rapierxbox.shellyelevatev2 WRITE_SETTINGS allow

# stop the system from killing the watchdog service (recommended)
adb shell dumpsys deviceidle whitelist +me.rapierxbox.shellyelevatev2

Without the first one, brightness control won't work. The battery whitelist is technically optional but kiosk-style apps benefit from it.

5. Launch it

adb shell am start -n me.rapierxbox.shellyelevatev2/.MainActivity

On first launch the settings screen opens automatically. From here, head over to First-Time Setup to configure your dashboard URL.

6. Optional: replace the launcher

The stock Shelly app is still set as the home launcher, which means it'll occasionally try to come back. Most people install a lightweight launcher and pick it as the default:

adb shell pm disable cloud.shelly.stargate
adb install ultra-small-launcher.apk

You can grab Ultra Small Launcher here. After installing, press the home button and Android will ask which launcher to use. Pick Ultra Small Launcher and set it as the default.

7. Reboot

adb reboot

After the reboot, ShellyElevate starts automatically (a BroadcastReceiver picks up the boot event) and loads whatever URL you configured.

Optional: make it a system app

A normal install is fine for day-to-day use. Moving ShellyElevate into /system/priv-app gets you two extra things: the permissions above stick for good, and the app can update itself without a cable (see Updating). The price is a writable /system, so you need a rooted or unlocked device.

There are one-shot scripts under tools/ that do the whole dance over ADB for you — adb root, remount /system read-write, push the APK into /system/priv-app/ShellyElevateV2/, fix its permissions and SELinux label, grant the AppOps, reboot:

# Linux / macOS
tools/install-privapp.sh path/to/shellyelevatev2.apk

# Windows (PowerShell)
tools\install-privapp.ps1 path\to\shellyelevatev2.apk

Important

The APK you install this way has to be signed with the same key as the releases you plan to update to, or the in-app self-update will refuse it later. Release-to-release from this repo is fine; a build you signed yourself won't update to an official release.

If the app is already installed and later gets root, it can promote itself on the next launch instead. It only tries once, so a failed promotion won't loop.

ADB over Wi-Fi

Once the display is on the wall there's usually no USB port to reach. Turn on ADB over WiFi in settings and the device starts listening for adb on port 5555:

adb connect <device-ip>:5555

It survives reboots (the app re-enables it on boot). Turn it off when you're done — it exposes the debug bridge to anyone on the LAN with no authentication. See Configuration Reference.

Where to go next

Clone this wiki locally