community italiana di domotica personale
 
Sonoff NSPanel Pro (e altri, tipo T6E, S8E, Tuya): attivare il “sideload” di applicazioni aggiuntive

Sonoff NSPanel Pro (e altri, tipo T6E, S8E, Tuya): attivare il “sideload” di applicazioni aggiuntive

Scopi della guida:
  • Consentire all’utente di installare applicazioni Android su un pannello Sonoff NSPanel Pro (o similari, come vedremo) aggiornando al contempo anche WebView
  • Livello di difficoltà: media
Concetti affrontati:
  • Installazione software
  • Configurazione software
Componenti software utilizzate:
  • Android Debug Bridge (ADB)
  • Android Launcher
  • Xposed
  • AnyWebView
  • Android WebView
Prerequisiti:
  • Rete Wi-Fi
Dispositivi fisici utilizzati:
  • Il pannello da personalizzare
  • un computer di appoggio dotato di sistema operativo Linux-like, macOS o Windows
PROGETTO MAGGIORMENTE INDICATO PER:

Tutti gli ambienti

NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • gli articoli di inDomus sono totalmente indipendenti e non sponsorizzati. Se mai questo cambiasse, verrà segnalato chiaramente sulle pagine oggetto di sponsorizzazione;
  • se hai bisogno di orientarti, c'è la mappa.
Revisione guida: 1.4
thanks to blakadder for the inspiration

ITEAD Sonoff NSPanel Pro - Package

Abstract

Da qualche tempo un serie di pannelli touch, Wi-Fi, alimentati a rete è apparsa, a prezzi tutto sommato continuti, sul mercato.

Uno di questi, per esempio, è il già da noi testato e recensito Sonoff NSPanel Pro, il pannellino da 3.95’’ di ITEAD dotato di antenna ZigBee e di un buon livello complessivo di prestazioni; altri, di diversi brand, afferiscono all’ecosistema Tuya oppure ad altri.

Questi pannellini touch sono, per lo più, concepiti per essere utilizzati in modo “standard” con i componenti della propria linea prodotti nonché con il cloud dei propri produttori (per esempio, NSPanel Pro è concepito per gestire componenti Sonoff Smart Home su eWeLink); fortunatamente, la loro architettura hardware e sopratutto il loro software (Google Android) consentono agli utenti più temerari (ma neanche troppo, come vedremo) di eseguirvi a bordo applicazioni che, di base, non sarebbero previste, caricarvi contenuti aggiuntivi, modificare varie componenti e attuare configurazioni ad hoc.

La presente guida è concepita per consentire agli utenti di accedere al pannello, installare un componente utile a avviare interfaccie alternative, installare applicazioni aggiuntive e quanto sopra elencato. Il tutto, aggiornando anche una componente cruciale come WebView, utile all’esecuzione di applicazioni Android più moderne.

Si parte

Assunti

Sì assume, va da sé, di avere a disposizione uno o più pannelli tra i seguenti modelli:

o altri ancora.

Tutti i test, comandi, configurazioni della presente guida sono stati testati su Sonoff NSPanel Pro ma, in analogia, dovrebbero essere attuabili pressoché nello stesso modo in tutti i pannelli sopraelencati.

Inoltre, si assume di aver a disposizione un computer di supporto (Windows, macOS, Linux) dal quale operare verso il pannello. Si assume infine che il pannello sia già configurato nella Wi-Fi domestica, la stessa LAN sulla quale sia collegato il computer di supporto.

ADB (Android Debug Bridge)

Per quanto in una fase successiva al primo accesso sarà possibile accedere al pannello, volendo, tramite SSH, lo strumento software deputato alle comunicazioni e al lancio di comandi sul pannello è ADB.

ADB (Android Debug Bridge) è infatti un software che consente, da riga di comando, di accedere al pannello (o qualsiasi host Android che, tramite modalità “developer”, esponga sulla porta TCP/IP 5555 tali servizi ADB).

I casi sono due: o ADB offre la porta 5555 aperta in modo da consentirci di collegarsi, oppure no. Nel primo caso siamo fortunati: basta lanciare un comando di connessione ADB e il gioco è fatto; diversamente, bisogna o attivarla tramite qualche escamotage software oppure, ultima spiagga, collegarsi fisicamente col pannello, tipicamente via USB.

ATTENZIONE: l’attivazione manuale della modalità ADB fa decadere, come spiegato a schermo anche durante l’operazione, la garanzia sul dispositivo, il quale non sarà più coperto né dal punto di vista hardware che software, né permetterà nuovi aggiornamenti firmware.

Scaricare ADB e testare la connessione

Prima cosa da fare, scaricare ADB sul proprio computer di appoggio e poi decomprimelo in una cartella.

Fatto questo è necessario scoprire l’IP assegnato dal router Wi-Fi al nostro pannello. Questo è possibile farlo o consultando i dettagli del pannello presso l’app eWeLink (se si è provveduto ad associarlo con essa), oppure presso i dettagli sul pannello stesso (“Impostazioni” > “Informazioni” > “IP“) oppure, altra opzione, dalla lista degli IP assegnati dal router.

Ciò fatto, da riga di comando del computer di appoggio raggiungere la cartella contenente ADB eseguire il seguente comando:

adb connect INDIRIZZO_IP

dove INDIRIZZO_IP è quello assegnato al pannello dal router Wi-Fi.

Se la risposta è qualcosa tipo:

connected to INDIRIZZO_IP:5555

allora siamo fortunati: ADB è operativo e “aperto” sul pannello. Diversamente, un messaggio di errore è un segnale negativo.


In caso di connessione positivamente stabilita, allora è possibile passare direttamente alla sezione dedicata all’installazione di un nuovo “Launcher”.

Diversamente, proseguire la lettura al prossimo paragrafo.

Mancata connessione

Laddove la porta 5555 sia chiusa, le strade sono due: provare ad aprirla via software o, alla mal parata, tramite connessione fisica. Le cose cambiano in funzione del pannello in uso.

Le casistiche che descriveremo sono quelle relative a:

  • ITEAD Sonof NSPanel Pro;
  • altri pannelli.

Sonoff NSPanel Pro

Nel caso di Sonoff NSPanel Pro, abbiamo appurato che con firmware 1.5.6 (presente come ultima versione alla redazione di questa guida) è sufficiente, presso l’app eWeLink, raggiungere le impostazioni del pannello, premere 8 volte di seguito sull’etichetta “Device ID” per ottenere l’attivazione della modalità “Developer” (e quindi l’attivazione della porta 5555):

Fatto questo, riavviare il pannello e riprovare come sopra.

Eventuale connessione fisica via USB

In caso nessuno tentativo dovesse essere risolutivo, allora è necessario collegare il pannello via USB al computer di supporto. Per farlo è necessario accedere alla porta USB del pannello, il quale va smontato completamente e connesso, avendo cura di non collegarlo contemporaneamente anche all’alimentazione.

ATTENZIONE: questa operazione va fatta senza collegare il pannello alla tensione di rete: basta la connessione USB ad alimentare la board e concederci il tanto agognato accesso ADB. Decliniamo ogni responsabilità in merito: attenti a ciò che fate, la corrente elettrica non è un gioco.

Una volta collegato il pannello, assicurarsi di aver installato sul computer di supporto i driver necessari (quelli per Windows sono qui). In alcuni sistemi potrebbero già esser presenti.

A questo punto, sempre da riga di comando del computer di supporto, eseguire il seguente comando:

adb devices -l

se la risposta dovesse essere qualcosa del tipo:

List of devices attached
IP_DEL_PANNELLO:5555 device product:px30_evb model:px30_evb device:px30_evb transport_id:3

allora la connessione (via cavo USB) sarà andata a buon fine. Provvedere quindi ad attivare quella via wireless su porta 5555 col comando:

adb tcpip 5555

il quale avrà come risposta:

restarting in TCP mode port: 5555

A questo punto staccare il cavo USB, rimontare il pannello, alimentarlo nel modo previsto di fabbrica e provare nuovamente a collegarvisi via wireless.


In caso di connessione positivamente stabilita, allora è possibile passare direttamente alla sezione dedicata all’installazione di un nuovo “Launcher”.

Diversamente, ritentare la procedura via USB, fino a riuscirvi (differentemente, non si potrà andare avanti con la procedura). Dopo essere riusciti ad attivare la porta 5555, si potrà rimontare il pannello e rialimentarlo normalmente e proseguire nella guida.

Vetrina

Altri pannelli

In caso di problemi di connessione wireless e non potendo documentare qualsiasi tipo di casistica e modello di pannello di questa generazione, quel che possiamo suggerire è di:

Installare nuovo “Launcher”

Con ADB funzionante e connesso al pannello, tutto diventa particolarmente semplice.

A questo punto è necessario installare un nuovo launcher Android sul pannello, il quale andrà ad affiancare quello presente “di fabbrica” e che ci consentirà personalizzazioni, installazioni di altre applicazioni e altro.

Un “launcher Android” è una parte del sistema operativo deputata al controllo della schermata iniziale su un dispositivo Android ed è responsabile della visualizzazione delle applicazioni installate. Quando si utilizza uno smartphone o un tablet Android (o, in questo caso, un pannello touch di questa natura), è possibile installare launcher di terze parti, modificando completamente la GUI (interfaccia grafica utente) nella schermata iniziale del dispositivo. Ad esempio, è possibile installare diversi lanciatori che consentano agli utenti di personalizzare le dimensioni delle icone, le transizioni di pagina e molto altro.

Si può scegliere il launcher che si preferisce, anceh se Ultra Small Launcher è l’ideale per il bassissimo impatto in termine di risorse consumate – cosa ideale su piccoli pannelli come questi.

Scaricato il launcher sul computer di appoggio e copiato il file .apk nello stesso folder contenente ADB, eseguire:

adb install ultra-small-launcher.apk

per installare sul pannello il launcher (laddove se ne scelga un altro andrà ovviamente cambiato il nome del file da installare).

Eseguire poi:

adb shell input keyevent 3

al fine di “simulare” la pressione del tasto “home”: alla richiesta di quale launcher eseguire, selezionare “Ultra Small Launcher” impostandolo come default.

Ultra Small Launcher
l’elementare schermata iniziale di Ultra Small Launcher.

Abilitare la status bar

Utile, ora (magari si disattiverà più avanti, ma per ora è utile averla attiva), attivare la “Status Bar” di Android.
Recarsi sotto “Settings” > “Display” e attivare la voce.

Android - Show Status Bar

Installare Xposed Framework

Xposed è il nome di una piattaforma che consente di installare su Android piccoli applicativi (o “moduli”) al fine di personalizzare l’aspetto e le funzionalità del sistema operativo mobile di Google. Xposed, a differenza di altri metodi di personalizzazione che richiedono di apportare modifiche generali (chiamate “mod”) anche per piccoli cambiamenti, consente di scegliere singolarmente eventuali elementi di modifica.

Scaricare l’installer 3.1.5 e copiare il file .apk dentro la cartella contenente ADB, poi eseguire:

adb install de.robv.android.xposed.installer_3.1.5-43_minAPI15\(nodpi\)_apkmirror.com.apk

dopodiché scaricare il file .tar relativo all’Xposed Framework, copiandolo poi sempre nella cartella ADB, per poi eseguire la replica dello stesso sulla memoria interna del pannello:

adb push xposed-v90-sdk27-arm64-beta3.tar /sdcard/Download/

accediamo poi via shell al pannello, elevando i diritti utente:

adb shell
su

rendiamo scrivibile il filesystem:

mount -o rw,remount /system

dopodiché raggiungiamo il framework appena copiato, estraiamolo e rendiamolo eseguibile:

cd /sdcard/Download/
tar -xvf xposed-v90-sdk27-arm64-beta3.tar
cd /sdcard/Download/xposed-v90-sdk27-arm64-beta3/
chmod a+x /sdcard/Download/xposed-v90-sdk27-arm64-beta3/META-INF/com/google/android/flash-script.sh

infine eseguiamo lo script di installazione con:

sh /sdcard/Download/xposed-v90-sdk27-arm64-beta3/META-INF/com/google/android/flash-script.sh

Al termine, il framework sarà installato ma ancora non operativo: riavviare il pannello (spegnendolo e riaccendendolo, ci metterà più del solito a partire), dopodiché sarà pronto a essere usato.

Una volta riavviato, ricolleghiamoci per simulare nuovamente la pressione del tasto “home” tramite il comando:

adb shell input keyevent 3 

e, all’apertura del Launcher, aprire l’app “Xpose Installer” e verificare che Xpose Status sia attivo:

Ultra Small Launcher - Xpose app - Xpose attivo

Aggiornare WebView

WebView è la componente Android concepita per renderizzare e sfruttare web application. De facto è un browser Web incorporato in un’app nativa per visualizzare i contenuti Web.

Per caricare applicazioni moderne che utilizzino WebView è talvolta necessario che quest’ultimo sia aggiornato alla versione più recente possibile. Per esempio, l’app “Home Assistant Companion” per Android non è compatibile con versione più datate di questo componente.

In questo paragrafo vedremo come installare un selettore di WebView (che ci consenta di scegliere quale versione di WebView utilizzare) nonché l’ultima versione del componente (così da sceglierla e attivarla).

AnyWebView

Come “selettore” utilizzeremo AnyWebView. Scaricare l’ultima versione (file .apk) copiandola nella solita cartella ADB e poi installarla con:

adb install AnyWebView.apk

Aprire nuovamente l’app “Xposed Installer”, e, cliccando in alto a sinistra, aprire i moduli e attivare AnyWebView:

Ultra Small Launcher - Xpose app - AnyWebView

Provvedere infine a un riavvio del pannello tramite:

adb reboot

WebView

Teoricamente si può installare qualunque WebView: noi consigliamo, ovviamente, l’ultima ufficiale.
Sceglierla e scaricarla da qui in versione .apk (attenzione a non scaricare file .xapk), copiarla nella cartella contenente ADB e poi installarla con :

adb install “Android System WebViewvXXX.X.XXXX.XXXapkpure.com.apk”

adeguando ovviamente il nome del file in funzione della versione scaricata. Attendere dunque il completamento del processo (potrebbe durare qualche minuto):

Performing Streamed Install
Success

Infine, recarsi alla voce “Settings” > “System” > “About tablet”, premere sette volte di seguito sull’etichetta “Build Number” per attivare la modalità sviluppatori (sempre che non sia già attiva).

Tornare indietro di un livello e in “Developer options”, navigare sino a WebView Implementation e scegliere la WebView più recente.

AnyWebView - WebView - Scelta

Ovviamente, questo processo è reversibile in qualunque momento: basterà infatti selezionare la WebView di interesse e riavviare.

E ora?

Sostanzialmente, il nostro pannello ora è in grado di accogliere virtualmente qualsiasi applicazione Android che questo sistema operativo in versione almeno 8.x supporti.

Banalmente, il comando

adb install nome_app_android.apk

abilita all’installazione di qualsiasi applicazione Android compatibile, persino Home Assistant Companion.


Ciò che davvero è importante, comunque, è provvedere a un’ulteriore personalizzazione del pannello, come da breve guida che segue:

Personalizzare Sonoff NSPanel Pro (e altri) tramite Pro Tools via ADB

Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Se ti sei perso, a tua disposizione c'è la mappa.