ShizuWall
Firewall per Android senza VPN.
Privacy al primo posto, solo in locale, basato su Shizuku / daemon ADB locale / Root.
English ·
Türkçe ·
Deutsch ·
Italiano ·
Português ·
Čeština ·
Русский ·
العربية ·
हिन्दी ·
中文 ·
日本語
## Perché ShizuWall
- **Nessuna VPN**: Evita l'intercettazione dei pacchetti e gli effetti collaterali di un tunnel VPN permanente.
- **Controllo di rete per singola app**: Attiva o disattiva la rete delle app tramite i controlli chain-3 di `connectivity` di Android.
- **Privacy per progettazione**: Offline-first, nessuna analisi, nessuna telemetria, nessun tracciamento.
- **Pronto per l'automazione**: Supporta i comandi `adb broadcast` per script e automazioni.
- **Metodi di controllo**: ShizuWall offre tre modi comodi per controllare il firewall: riquadro delle Impostazioni rapide, widget e pulsante firewall flottante.
## Schermate
## Requisiti
- Android 11 (API 30) o superiore
- Un backend di controllo: Shizuku, daemon ADB locale o accesso root
## Backend di controllo
ShizuWall supporta tre metodi per eseguire i comandi del firewall:
| Metodo | Descrizione | Configurazione |
|--------|---------|---------|
| **Shizuku** | API sicura che comunica con i servizi di sistema. Richiede l'app Shizuku. I fork sono supportati. | Installa e configura l'app Shizuku, concedi le autorizzazioni |
| **Root** | Accesso root diretto. | Esegui il root del dispositivo con i metodi standard |
| **LibADB (LADB)** | Usa la funzione integrata "Debug wireless" del telefono per comportarsi come un computer collegato via USB. Ciò consente all'app di effettuare modifiche di sistema avanzate senza bisogno di un computer, del root o di app aggiuntive come Shizuku. | Attiva il debug wireless ed esegui l'associazione nelle Opzioni sviluppatore (la guida è nell'app) |
## Come funziona
ShizuWall usa la **Chain 3** di Android (catena di connettività) per controllare la rete di ogni app. Questi sono i comandi di piattaforma eseguiti tramite Shizuku o il daemon locale:
### Comandi ADB Chain 3
```bash
# Attiva il framework del firewall
cmd connectivity set-chain3-enabled true
# Blocca un'app specifica
cmd connectivity set-package-networking-enabled false
# Sblocca un'app specifica
cmd connectivity set-package-networking-enabled true
# Disattiva il framework del firewall
cmd connectivity set-chain3-enabled false
```
**Chain 3** è un meccanismo della piattaforma Android che intercetta e controlla l'accesso alla rete per ogni pacchetto a livello di sistema, consentendo un controllo firewall granulare.
## Automazione (broadcast ADB)
Puoi controllare ShizuWall da script e strumenti di automazione.
**Azione**: `shizuwall.CONTROL`
**Componente**: `com.arslan.shizuwall/.receivers.FirewallControlReceiver`
**Extra**
- `state` (boolean, obbligatorio): `true` = attiva, `false` = disattiva
- `apps` (stringa, facoltativo): elenco di pacchetti in CSV. Se omesso, ShizuWall usa le app selezionate salvate.
### Esempi
```bash
# Attiva il firewall per le app selezionate salvate
adb shell am broadcast -a shizuwall.CONTROL -n com.arslan.shizuwall/.receivers.FirewallControlReceiver --ez state true
# Disattiva il firewall per le app selezionate salvate
adb shell am broadcast -a shizuwall.CONTROL -n com.arslan.shizuwall/.receivers.FirewallControlReceiver --ez state false
# Attiva il firewall per pacchetti specifici
adb shell am broadcast -a shizuwall.CONTROL -n com.arslan.shizuwall/.receivers.FirewallControlReceiver --ez state true --es apps "com.example.app1,com.example.app2"
# Disattiva il firewall per pacchetti specifici
adb shell am broadcast -a shizuwall.CONTROL -n com.arslan.shizuwall/.receivers.FirewallControlReceiver --ez state false --es apps "com.example.app1,com.example.app2"
```
> Perché i broadcast funzionino, uno dei backend di controllo (Shizuku, daemon ADB locale o Root) deve essere attivo.
## Note e limitazioni
- Le regole del firewall vengono cancellate al riavvio per il comportamento della piattaforma Android.
- Riavviare il dispositivo azzera tutti i blocchi di rete attivi applicati da ShizuWall.
- L'app richiede `android.permission.INTERNET` solo per l'associazione del debug wireless (connessione al daemon locale LibADB).
## Compilazione (sviluppatori)
### App
```bash
./gradlew assembleRelease
```
### Daemon
Il daemon sul dispositivo (`SystemDaemon.java`) viene compilato in un DEX (`daemon.bin`) automaticamente come parte della normale build Gradle tramite l'attività `compileDaemonDex`. Viene compilato dal sorgente con `javac` e `d8` dei build-tools dell'SDK Android e incluso come asset: nel repository non c'è alcun binario precompilato, così i server di build riproducibili (ad es. F-Droid) lo generano da soli.
Non è richiesto alcun passaggio manuale; `./gradlew assembleRelease` lo compila. L'attività può anche essere eseguita da sola:
```bash
./gradlew :app:compileDaemonDex
```
## Avvertenza su sicurezza e distribuzione
ShizuWall è fornito **"così com'è"**, senza garanzie di alcun tipo.
Usando questa app riconosci che si basa su autorizzazioni di sistema avanzate (Shizuku/ADB/Root) e accetti tutti i rischi correlati. Lo sviluppatore non è responsabile di danni quali instabilità del sistema, perdita di dati, interruzione di servizi o effetti collaterali dovuti al blocco della rete.
**Distribuzione ufficiale e rischi di terze parti**
Gli sviluppatori e i collaboratori di ShizuWall non si assumono alcuna responsabilità per danni, violazioni di sicurezza, infezioni da malware o perdite di dati derivanti dal download, dall'installazione o dall'uso di file APK ottenuti da fonti di terze parti. ShizuWall è sviluppato e distribuito ufficialmente solo tramite Google Play Store, il suo repository GitHub ufficiale e F-Droid. ShizuWall non possiede, gestisce né avalla alcun sito web ufficiale. Qualsiasi sito web o piattaforma di terze parti che dichiari di offrire download ufficiali di ShizuWall è del tutto estraneo e non autorizzato. Chi ottiene l'applicazione al di fuori dei canali ufficiali lo fa esclusivamente a proprio rischio.
**ShizuWall è un'applicazione open source. Lo sviluppatore non accetta alcuna responsabilità finanziaria, morale o legale per l'uso di questa applicazione. Ogni responsabilità è dell'utente.**
Verifica sempre quali app stai bloccando.
## Licenza
Distribuito con licenza **GNU General Public License v3.0 (GPLv3)**. Vedi [LICENSE.md](../LICENSE.md).
I dati delle firme dei tracker inclusi non sono codice e hanno una licenza propria (ODbL v1.0). Vedi [TRACKER_DATA_LICENSE.md](../TRACKER_DATA_LICENSE.md).
## Supporto
- ⭐ Metti una stella al progetto: [GitHub Stars](https://github.com/AhmetCanArslan/ShizuWall/stargazers)
- ☕ Fai una donazione: [Buy Me a Coffee](https://buymeacoffee.com/ahmetcanarslan)
- ⬇️ Scarica: [Google Play Store](https://play.google.com/store/apps/details?id=com.arslan.shizuwall)
## Riconoscimenti
- [Shizuku](https://github.com/RikkaApps/Shizuku) — API che rende possibile il flusso di esecuzione dei comandi privilegiati.
- [LibADB](https://github.com/MuntashirAkon/libadb-android) — Supporto per il debug wireless e la connessione al daemon.
- [Exodus Privacy](https://exodus-privacy.eu.org/) — Database di firme di tracker usato per rilevare gli SDK di tracciamento nelle app, con licenza [ODbL v1.0](https://opendatacommons.org/licenses/odbl/1-0/). ShizuWall include una copia ridotta e non contatta mai le loro API. Vedi [TRACKER_DATA_LICENSE.md](../TRACKER_DATA_LICENSE.md).