Shelly Wall Display

Hi,

I’m my case, when I have by USB the Shelly and plug it to current, I have this info:

Port - Device detected :)
Preloader -     CPU:                    MT6580()
Preloader -     HW version:             0x0
Preloader -     WDT:                    0x10007000
Preloader -     Uart:                   0x11005000
Preloader -     Brom payload addr:      0x100a00
Preloader -     DA payload addr:        0x201000
Preloader -     CQ_DMA addr:            0x1020ac00
Preloader -     Var1:                   0xac
Preloader - Disabling Watchdog...
Preloader - HW code:                    0x6580
Preloader - Target config:              0x0
Preloader -     SBC enabled:            False
Preloader -     SLA enabled:            False
Preloader -     DAA enabled:            False
Preloader -     SWJTAG enabled:         False
Preloader -     EPP_PARAM at 0x600 after EMMC_BOOT/SDMMC_BOOT:  False
Preloader -     Root cert required:     False
Preloader -     Mem read auth:          False
Preloader -     Mem write auth:         False
Preloader -     Cmd 0xC8 blocked:       False
Preloader - Get Target info
Preloader -     HW subcode:             0x8a00
Preloader -     HW Ver:                 0xca00
Preloader -     SW Ver:                 0x0
DaHandler - Device is unprotected.
DaHandler - Device is in Preloader-Mode.
DALegacy - Uploading legacy da...
DALegacy - Uploading legacy stage 1 from MTK_DA_V5.bin
LegacyExt - Legacy DA2 is patched.
LegacyExt - Legacy DA2 CMD F0 is patched.
Preloader - Jumping to 0x200000
Preloader - Jumping to 0x200000: ok.
DALegacy - Got loader sync !
DALegacy - Reading nand info
DALegacy - Reading emmc info
DALegacy - ACK: 04029c
DALegacy - Setting stage 2 config ...
DALegacy - Uploading stage 2...
DALegacy - Successfully uploaded stage 2
DALegacy - Connected to stage2
DALegacy - m_int_sram_ret = 0x0
m_int_sram_size = 0x20000
m_ext_ram_ret = 0x0
m_ext_ram_type = 0x2
m_ext_ram_chip_select = 0x0
m_int_sram_ret = 0x0
m_ext_ram_size = 0x40000000
randomid = 0x7731F1849ABA3571267878493E1F8C4A

m_emmc_ret = 0x0
m_emmc_boot1_size = 0x400000
m_emmc_boot2_size = 0x400000
m_emmc_rpmb_size = 0x400000
m_emmc_gp_size[0] = 0x0
m_emmc_gp_size[1] = 0x0
m_emmc_gp_size[2] = 0x0
m_emmc_gp_size[3] = 0x0
m_emmc_ua_size = 0x1c8000000
m_emmc_cid = 31303033f401224284669a833024559b
m_emmc_fwver = 2400000000000000

How i can get or obtain the info that you show? Which command i need to execute in command line?

Thanks

Hi,

It’s possible to roleback to Shelly firmware/app Stargate? How?

Where I can download Shelly Stargate stable apk?

Hi everyone, I don’t know if this is the right place to post this, but I think there is going to be a new Shelly wall display. You probably already know about the X2 display coming out this year, but after looking into the sources of the Stargate APK, I found a folder with images of Shelly wall display models.

You can see the old one, the new one, and the wide one (SAWD0, SAWD1, SAWD3). However, there is also an image file for a model called SAWD3, which has some buttons on the side, similar to the Sonoff display. In the image you can slightly see a name (XL)

In the code there could also be a hint that it has a camera:

this.mAdapter.addItem((new SettingsAdapter.SettingsItem()).setType(SettingType.TEXT).setName("Open Camera").setAction("cloud.shelly.intent.action.OPEN_CAMERA"));

also the code allows for more then one relay so thats prob the case

for (byte b = 0; b < DeviceSettings.getRelayCount(); b++) {
      this.httpServer.post("/relay/" + b, new ShellyWebSocketServer$$ExternalSyntheticLambda6(this, b));
      this.httpServer.get("/relay/" + b + ".*", new ShellyWebSocketServer$$ExternalSyntheticLambda7(this, b));
    } 

I’m not saying this is definitely going to be released, but I think there’s a decent possibility.


There are also some other new devices mentioned like:

"Shelly I4 Gen4"
"Shelly BLU Distance"
"Shelly Power Strip 4 Gen4"

also a spelling mistake lol:

"4103": {
		"model": "SNSN-0024X",
		"friendly_name": "Shslly Plus I4 DC"
},

You can also just pull the json from here: https://shelly-api-eu.shelly.cloud/shelly_files/deviceConfig/v3/device_config.json

3 Likes

Fantastic work.

4 buttons with 4 relays would make this my dream panel I think

Hi everyone, I think I’ve figured out how to get ADB access without disassembling the device—just through the GUI. I’ll probably write up a guide in the ShellyElevate repo once I’m done. This could be huge for people that dont want to solder to their device.

EDIT: The writeup is finished you can find it here

2 Likes

How the heck did you figure that out?
Amazing!

Great stuff!! Thats some digging right there.

I am able to enable adb but I cannot find the adb ports in system information. It’s just not there. Any suggestions?

Thanks!

Hi everyone, I sadly have to announce that the exploit I thought had worked only enables ADB over USB. That’s at least a bit better than the difficult MTK client version. I found the debug settings in my self-decompiled version of the Stargate APK. Somewhere in there, there was a check sequence function that enables developer settings when a specific sequence is put in. Then, I found the function again in a really big switch-case function for all the intents where the function was called. And from there on, it was BBQ chicken.

EDIT: Maby its confusing but its the same sequence for everyone (for now at least)

Also here are the codenames for the new shelly wall displays:

MODEL_NAME_ATLANTIS = "SAWD-1A1XX10EU1"; // New Normal One
MODEL_NAME_BLAKE = "SAWD-3A1XE10EU2"; // Unreleased XL
MODEL_NAME_PEGASUS = "SAWD-2A1XX10EU1"; // Wide one
MODEL_NAME_STARGATE = "SAWD-0A1XX10EU1"; // The original one

And if you just want to update the webview instead of the whole stargate app you can use this url:

https://repo.shelly.cloud/firmware/SAWD-0A1XX10EU1/stable/SAWD-0A1XX10EU1-WebViewUpdate.zip

Both of the new Wall Displays (not the xl) have accelerometers so they will probably automaticly rotate.

This makes soldering sound easier lol

I’ve just received the Wall Display X2. Does anyone know if it is possible to disable the left and right swipe that moves between Home, Home Assistant and Settings? It prevents the normal use of sliding controls (e.g. for light dimming) in the Home Assistant dashboard.

EDIT: It seems even vertical sliders do not work. Has anyone found a workaround for this? If not, it’s severly crippled.

I don’t think that’s possible at the moment. However, you could try automating taps on the Home Assistant button via RPC. Also, be sure to open a support ticket to request this feature—you can do that here: Shelly Support.

If you’re open to completely removing the Shelly gui, you might also consider jailbreaking your display.

That’s interesting. I don’t really need the Shelly GUI. How would I go about jailbreaking it? Is there some sort of quick guide somewhere I can follow?

If I could at least get the vertical sliders working properly that would be something. I have a feeling webview needs to be updated to a newer version, but I could be wrong.

That’s possible with ShellyElevate from @RapierXbox who was also writing in this thread (thank you for your work by the way).

Just follow this guide:

But instead of opening the device you can just plugin a USB-C cable on the Shelly X2 because it’s exposed on the device. So way easier than on the small wall display.
I have it running, vertical and horizontal sliders are both working fine with shelly elevate. I’m also using the thermostat function together with an external temperature sensor.
Small note: Disable the automatic light sensor on the X2 within ShellyElevate because it’s constantly adjusting the brightness (multiple times a seconds) which will result in the app crashing. Other than that, it’s working fine.

I saw that you currently don’t have a X2 Display @RapierXbox, happy do donate a few bucks for your work when you have a donate link.

3 Likes

Thanks for the appreciation! I wasn’t sure if I should post the link since it was already mentioned a few posts up. Also, thanks for pointing out the bug—it might be due to SELinux blocking write operations to the brightness file from a non-privileged app. I’m planning to create a guide on how to install it under priv-app soon.

I honestly didn’t expect people would want to donate! Do you know of any platforms that would make that possible? Thanks! :blush:

2 Likes

Thanks. This sounds like it should solve my problem and thanks to @RapierXbox for the project.

I’ll have a look at doing this when I have a bit of time on my hands. Pity that Shelly didn’t make it work properly with Home Assistant as they advertised it as supporting “out-of-the-box”.

Hey everyone!
I found a way to fully install the app without needing any cables or disassembly. :tada:
It does require installing a small helper app first, which sets up and prepares some scripts for a one-command install.

This method would also apply to users on the X2, even though they technically could just use a USB cable.
Should I still implement this?

4 Likes

This would be amazing! Could you share please?

1 Like

I’m interested!
I have an original wall display still using shelly app and just avoiding sliders etc which is working pretty well. Since its installed in-situ, I cant really be bothered going through the process, but I’d definitely give it a go it there was an easier way!

1 Like

Hi all and especially @RapierXbox,
Thank you very much for your Jailbreak which I just installed on my Wall Display.
I’ve followed your guide and almost everything seems work.

Only problem I have now is that after filling in my HA URL the HA Screen appears but i have no possibility to log into my HA instance. It seems to stuck there.
Have i missed something or what should i do?

I’ve already also reinstalled the latest apk (2.3.0) but without success :frowning:

BR Philipp