Guida all’uso
La versione originale inglese non tradotta la trovate su https://grapheneos.org/usage
(*quando leggete pixel si intende il telefono, nel nostro caso ShieldPhone)
Vi consigliamo caldamente di leggere anche questi 3 importanti articoli per una migliore comprensione e utilizzo del vostro ShieldPhone!
Perché quella schermata gialla all'avvio è la tua più grande garanzia di sicurezza
Exploit Protection Compatibility Mode: Massima Sicurezza, Zero Compromessi
Hard Reset vs. Factory Reset: Perché il Bootloader è l'unica scelta per lo ShieldPhone
Le sezioni in rosso sono le più importanti che devi assolutamente leggere
Navigazione di sistema
Per impostazione predefinita, GrapheneOS utilizza la navigazione tramite gesti. Ti consigliamo di leggere la nostra guida alla navigazione con i gesti e di darle una possibilità anche se pensi che non ti piacerà. La nostra esperienza dimostra che, una volta acquisite le conoscenze appropriate, la stragrande maggioranza degli utenti preferisce il nuovo approccio basato sui gesti.
La modalità di navigazione del sistema può essere configurata in Impostazioni > Sistema > Gesti > Modalità di navigazione. Lo stesso menu è disponibile anche in Impostazioni > Accessibilità > Controlli di sistema > Modalità di navigazione.
Navigazione tramite gesti
La parte inferiore dello schermo è una zona tattile riservata alla navigazione di sistema. Una linea viene visualizzata al centro per indicare che la barra di navigazione è presente lungo tutto il bordo inferiore. Nella maggior parte delle app, quest'area visualizzerà una spaziatura (padding). Le app moderne sono in grado di comunicare al sistema operativo che possono gestire l'assenza di tale spaziatura per visualizzare il contenuto dell'app, pur non potendo ricevere tocchi in quell'area. L'app Impostazioni ne è un esempio.
• Home: Scorri verso l'alto dalla barra di navigazione sollevando il dito dallo schermo.
• App Recenti: Scorri verso l'alto dalla barra di navigazione mantenendo il dito sullo schermo prima di rilasciarlo. L'attività aperta più recentemente si trova sempre all'estrema destra. Ogni passaggio verso sinistra torna indietro di un passo nella cronologia delle app aperte di recente. Aprendo un'app dalla visualizzazione delle app recenti, questa verrà posizionata all'estrema destra nell'ordine delle recenti, proprio come se fosse stata aperta una nuova app.
• Screenshot: La schermata delle app recenti ha un pulsante per lo screenshot come alternativa alla pressione contemporanea dei tasti Accensione e Volume Giù mentre si usa un'app.
• Passaggio rapido tra app: Invece di aprire la schermata delle app recenti, puoi scorrere verso sinistra sulla barra di navigazione per l'app precedente e verso destra per l'app successiva. Questo non cambierà l'ordine delle app recenti ed è solitamente il modo migliore per navigare tra le applicazioni aperte.
• Indietro: Scorri dal bordo sinistro o destro dello schermo all'interno dell'app (non sulla barra di navigazione). Le app dovrebbero evitare di implementare gesti in conflitto, ma hanno l'opzione di ignorare questo gesto se hanno realmente bisogno di rimuoverlo. Alcune app datate che non aggiornano l'interfaccia non hanno ancora risolto questo problema. Puoi evitare di attivare accidentalmente il gesto "Indietro" in due modi: evita di scorrere troppo vicino al bordo o tieni premuto il dito sul lato dello schermo per un istante prima di scorrere. L'opzione più avanzata è usare uno scorrimento diagonale puntato bruscamente verso il basso dello schermo: questo bypasserà il gesto "Indietro" attivando comunque la maggior parte dei gesti interni alle app.
• Cassetto delle app (App Drawer): Nel launcher, usa uno scorrimento verso l'alto partendo da un punto qualsiasi della schermata iniziale. Devi iniziare lo scorrimento sopra la barra di navigazione di sistema, poiché ogni gesto che inizia sulla barra viene gestito dal sistema operativo come navigazione.
Navigazione a 3 pulsanti
La navigazione a 3 pulsanti è il sistema di navigazione basato su touchscreen più vecchio di Android. Rimarrà supportata nel prossimo futuro per garantire l'accessibilità agli utenti impossibilitati a usare agevolmente i gesti. È più vecchia della navigazione a 2 pulsanti, ma non è considerata una funzione obsoleta (legacy).
Un'ampia riga nella parte inferiore dello schermo è riservata ai pulsanti di navigazione:
• Indietro: a sinistra.
• Home: al centro.
• App Recenti: a destra.
Nella schermata delle app recenti, l'attività aperta più recentemente è sempre all'estrema destra. Come per la navigazione a gesti, è presente un pulsante screenshot dedicato all'interno della schermata delle app recenti.
Accesso all'archiviazione (Storage access)
GrapheneOS eredita lo stesso approccio di base di Android moderno per l'accesso all'archiviazione e lo estende con la funzione Storage Scopes, un'alternativa completamente compatibile ai permessi standard di Android. Questa sezione fornisce una panoramica dell'approccio standard per contestualizzare il funzionamento degli Storage Scopes.
Esistono due tipi di archiviazione accessibili dalle app:
• Archiviazione privata dell'app ("interna"):
• Inaccessibile alle altre app.
• Non richiede alcun permesso per l'accesso completo.
• Viene cancellata quando l'app viene disinstallata.
• Archiviazione condivisa ("esterna"):
• Condivisa con altre app.
• L'accesso è regolato dai permessi.
• I file persistono dopo la disinstallazione.
• Le directory Android/data/ e Android/obb/ non sono considerate parte dell'archiviazione condivisa.
Per le app moderne, l'accesso all'archiviazione condivisa è controllato come segue:
Senza alcun permesso di archiviazione, un'app può:
• Creare file multimediali nelle directory standard (audio in Music/, Ringtones/, ecc.; immagini in Pictures/ e DCIM/; video in DCIM/ e Movies/).
• Creare file di qualsiasi tipo (multimediali e non) in Documents/ e Download/.
• Creare nuove directory all'interno delle directory standard.
• Rinominare/eliminare i file creati dall'app stessa.
• Rinominare/eliminare directory se può rinominare/eliminare tutti i file al loro interno.
Permessi specifici:
• Permesso di accesso ai media ("Consenti l'accesso solo ai media", READ_EXTERNAL_STORAGE): consente all'app di leggere i file multimediali creati da altre app. I file non multimediali rimangono invisibili. Per le app destinate ad Android 13+, questo permesso è suddiviso in READ_MEDIA_IMAGES, READ_MEDIA_VIDEO e READ_MEDIA_AUDIO.
• Permesso speciale di gestione media ("Consenti all'app di gestire i media", MANAGE_MEDIA): consente all'app di eliminare e rinominare file multimediali creati da altre app.
• Permesso speciale "Accesso a tutti i file" (MANAGE_EXTERNAL_STORAGE): consente all'app di leggere, creare, rinominare ed eliminare file e directory di qualsiasi tipo in qualunque directory dell'archiviazione condivisa (inclusa la root).
Inoltre, le app possono aprire l'interfaccia del selettore di file di sistema affinché l'utente scelga o salvi uno o più file/directory per loro conto. Questo tipo di accesso non richiede i permessi sopra elencati e si basa sul Storage Access Framework (SAF), che permette di concedere l'accesso anche a drive esterni o provider cloud.
Storage Scopes (Ambiti di archiviazione)
GrapheneOS fornisce la funzione Storage Scopes come alternativa compatibile ai permessi di archiviazione standard. Gli Storage Scopes possono essere abilitati solo se l'app non possiede alcun permesso di archiviazione. Abilitarli fa credere all'app di avere tutti i permessi richiesti, nonostante non ne abbia alcuno.
Ciò significa che l'app non potrà vedere alcun file creato da altre app. L'app potrà comunque creare file e directory, esattamente come qualsiasi altra app moderna priva di permessi.
• Compatibilità legacy: Le app che normalmente utilizzerebbero la modalità di archiviazione legacy vengono forzate alla modalità moderna quando gli Storage Scopes sono attivi.
• Accesso in scrittura esteso: Se l'app richiede l'accesso a "tutti i file", le restrizioni di scrittura vengono allentate per garantire la compatibilità (ad esempio, permettendo di creare una directory nella root o un file di testo in Music/), ma non viene concesso alcun accesso aggiuntivo in lettura: l'app continuerà a vedere solo i propri file.
• Selezione manuale: Opzionalmente, gli utenti possono specificare a quali file (creati da altre app) l'app può accedere. Si utilizza il selettore SAF standard per concedere l'accesso a un file specifico o a un'intera directory.
Il limite principale degli Storage Scopes è che l'app perderà l'accesso ai file da lei stessa creati se viene disinstallata e poi reinstallata (poiché, non avendo permessi reali, i file non le verranno riassociati automaticamente). Come soluzione, l'utente può concedere nuovamente l'accesso a quei file/directory manualmente tramite il selettore SAF.
Contact Scopes (Ambiti dei Contatti)
Su Android, l'accesso ai contatti è regolato da un permesso "Contatti" di tipo tutto-o-niente, che concede sia l'accesso in lettura che in scrittura a tutti i contatti memorizzati sul dispositivo. Molte app (ad esempio le popolari app di messaggistica) si rifiutano di funzionare a meno che non venga concesso tale permesso.
GrapheneOS fornisce la funzione Contact Scopes come alternativa alla concessione del permesso Contatti. Abilitare i Contact Scopes fa credere all'app di avere il permesso Contatti, nonostante non lo possieda realmente. Per impostazione predefinita, un'app con i Contact Scopes attivi non ha alcun tipo di accesso ai contatti.
Opzionalmente, l'accesso in lettura può essere concesso ai seguenti ambiti (scope):
• Dati del contatto: Numero di telefono o email. L'accesso a ogni tipo di numero o email di un contatto viene concesso separatamente. L'accesso al nome del contatto viene concesso automaticamente.
• Contatto singolo: Viene concesso l'accesso a tutti i dati del contatto, eccetto la foto profilo.
• Gruppo di contatti ("etichetta"): Equivale a concedere l'accesso a tutti i contatti presenti nel gruppo. Un contatto può far parte di un numero illimitato di gruppi.
Il tipo e il nome dell'account in cui è memorizzato il contatto sono completamente nascosti all'app (il nome dell'account coincide solitamente con l'indirizzo email). Quando i Contact Scopes sono abilitati, l'accesso in scrittura è totalmente bloccato: l'app non può modificare i dati, né aggiungere o rimuovere contatti.
Accessibilità
GrapheneOS include tutte le funzioni di accessibilità dell'Android Open Source Project (AOSP) e si impegna a colmare le lacune derivanti dall'assenza delle app e dei servizi Google. Includiamo un nostro fork del servizio di accessibilità open source TalkBack, insieme a un'opzione di Monocromia nel menu standard di correzione del colore.
GrapheneOS non include ancora un servizio di sintesi vocale (TTS) nel sistema operativo di base a causa delle limitazioni delle opzioni attualmente disponibili. L'inclusione è prevista per il futuro. Attualmente, le scelte più comuni tra gli utenti di GrapheneOS sono RHVoice ed eSpeak NG. Entrambe funzionano bene, ma presentano problemi di licenza.
• eSpeak NG ha aggiunto il supporto al Direct Boot su nostra richiesta, il che significa che può funzionare prima del primo sblocco del dispositivo.
• RHVoice non supporta il Direct Boot.
Installando una di queste o altre app TTS, TalkBack diventerà operativo. TalkBack stesso supporta il Direct Boot, ma necessita di un'app TTS compatibile per poter fare altro oltre a riprodurre il suono di attivazione prima del primo sblocco. Dopo l'installazione, è necessario selezionare manualmente il servizio nelle impostazioni dell'OS per attivarlo.
Per impostazione predefinita, GrapheneOS disabilita la visualizzazione dei caratteri durante la digitazione delle password. È possibile riabilitare questa funzione in Impostazioni > Sicurezza e privacy > Privacy > Mostra password.
È possibile installare e attivare servizi di accessibilità di terze parti, inclusi quelli di Google. La maggior parte funzionerà, ma alcuni potrebbero avere una dipendenza bloccante dai Google Play Services. Poiché i servizi di accessibilità sono estremamente potenti, sconsigliamo vivamente l'uso di implementazioni di terze parti se non strettamente necessario. Pianifichiamo di aggiungere ulteriori misure di sicurezza in quest'area.
Aggiornamenti (Updates)
Il sistema di aggiornamento implementa aggiornamenti automatici in background. Controlla la presenza di nuove versioni circa ogni sei ore in presenza di connettività di rete, quindi scarica e installa gli aggiornamenti in background. Se il download viene interrotto, riprenderà dal punto in cui si era fermato. Allo stesso modo, interrompere l'installazione non comporta rischi, poiché gli aggiornamenti vengono installati in una partizione secondaria di GrapheneOS che diventa attiva solo a operazione completata. Al termine, verrai informato con una notifica e dovrai semplicemente riavviare tramite il pulsante dedicato o un normale riavvio. Se la nuova versione non riesce ad avviarsi, l'OS eseguirà il rollback alla versione precedente e l'updater tenterà nuovamente l'operazione.
L'updater utilizza aggiornamenti incrementali (delta) per scaricare solo le modifiche anziché l'intero OS. Se rimani connesso regolarmente e riavvii quando richiesto, sarai quasi sempre allineato alle versioni più recenti, riducendo al minimo l'uso della banda. Il client di aggiornamento funziona anche quando il dispositivo è bloccato e inattivo, incluso lo stato precedente al primo sblocco, essendo progettato per girare prima della decrittazione dei dati utente.
Impostazioni
Le impostazioni sono disponibili in Impostazioni > Sistema > Aggiornamento di sistema.
• Verifica aggiornamenti: Avvia manualmente un controllo immediato, rispettando comunque le condizioni di rete configurate.
• Canale di rilascio: Può essere cambiato da Stable (predefinito) a Beta per aiutare nei test.
• Reti consentite: Controlla quali reti usare. Può essere limitato a "Non-roaming" o "Non a consumo" (per evitare l'uso di dati mobili o Wi-Fi con traffico limitato).
• Richiedi batteria sopra il livello di avviso: Se attivo, aggiorna solo con batteria sopra il 15%.
• Richiedi dispositivo in carica: Se attivo, aggiorna solo se collegato all'alimentazione.
• Riavvio automatico: Se abilitato (opt-in), permette all'updater di riavviare il dispositivo dopo un aggiornamento quando rimane inattivo per un lungo periodo.
• Impostazioni notifiche: Scorciatoia per gestire avvisi su errori, progresso e richieste di riavvio.
Sicurezza
Il server di aggiornamento non è una parte "fidata" poiché gli aggiornamenti sono firmati, verificati e protetti contro i tentativi di downgrade. Il protocollo non invia informazioni identificative al server e funziona correttamente sotto VPN o Tor. GrapheneOS non è in grado di ottemperare a ordini governativi per inviare aggiornamenti malevoli mirati a utenti specifici (basati su IMEI o seriale), poiché il sistema rifiuta categoricamente aggiornamenti con vincoli di serialno. Il server viene a conoscenza solo dell'indirizzo IP e della versione da cui si sta effettuando l'aggiornamento.
Disattivazione
È vivamente consigliato lasciare attivi gli aggiornamenti automatici. Tuttavia, è possibile disattivare il client andando in Impostazioni > App, abilitando "Mostra sistema" dal menu, selezionando System Updater e disabilitando l'app. In tal caso, dovrai ricordarti di riabilitarla manualmente per ricevere i futuri aggiornamenti.
Sideloading (Installazione manuale)
Gli aggiornamenti possono essere scaricati dalla pagina dei rilasci e installati tramite Recovery con adb sideload. I file zip sono firmati e verificati dalla Recovery, così come avviene per il client interno.
Per installarne uno:
1. Riavvia in Recovery (tramite adb reboot recovery o dal menu del bootloader).
2. Quando appare l'Android verde con la scritta "Nessun comando", tieni premuto il tasto Accensione e premi una volta il tasto Volume Su per accedere al menu testuale.
3. Seleziona "Apply update from ADB".
4. Esegui il comando dal PC, ad esempio:
adb sideload nome-file-aggiornamento.zip
Non è necessario che ADB sia abilitato all'interno dell'OS per eseguire il sideload in Recovery. La modalità Recovery non "si fida" del computer collegato (non richiede autorizzazione di chiavi RSA), il che è considerato una caratteristica di sicurezza per la produzione.
Controllo della porta USB-C e dei pogo pin
GrapheneOS include un'impostazione per proteggere il dispositivo da attacchi sferrati tramite la porta USB-C o i pogo pin (ove presenti) mentre il sistema operativo è avviato. Per la maggior parte dei dispositivi, l'opzione è etichettata come Porta USB-C.
L'impostazione è disponibile in Impostazioni > Sicurezza > Protezione dagli exploit.
Sono disponibili cinque modalità:
1. Off (Disattivato)
2. Solo ricarica (Charging-only)
3. Solo ricarica quando bloccato (Charging-only when locked)
4. Solo ricarica quando bloccato, eccetto prima del primo sblocco
5. On (Attivato)
L'impostazione predefinita è Solo ricarica quando bloccato, che riduce significativamente la superficie di attacco: non appena il dispositivo viene bloccato, le nuove connessioni USB vengono inibite immediatamente e i dati USB vengono disabilitati non appena terminano le sessioni correnti.
Navigazione Web
GrapheneOS include il sottoprogetto Vanadium, che fornisce versioni di Chromium ottimizzate per la privacy e la sicurezza. Vanadium funge sia da browser per l'utente, sia da fornitore della WebView di sistema.
Sicurezza e Sandbox
Chromium fornisce l'implementazione sandbox più solida disponibile, di gran lunga superiore alle alternative.
• Isolamento dei siti (Site Isolation): Vanadium applica un isolamento rigoroso, collocando ogni sito in una sandbox dedicata. Questo previene attacchi basati su canali laterali come Spectre.
• Mitigazioni degli exploit: Vanadium abilita ulteriori difese non ancora attive nel Chromium standard per motivi di prestazioni o dimensioni del codice, come il CFI (Control Flow Integrity) basato sui tipi, configurazioni SSP più forti e l'inizializzazione a zero delle variabili.
Estensioni e Fingerprinting
Sconsigliamo l'uso di numerose estensioni. Molte funzioni di privacy sono "teatro della privacy" senza un reale modello di minaccia e finiscono per facilitare il fingerprinting (identificazione univoca del browser), facendoti distinguere dalla massa.
Alternative da evitare
• Browser basati su WebView: Sebbene utilizzino il motore di Vanadium, sono limitati dalle API di sistema e non supportano ancora l'isolamento dei siti o il controllo granulare dei sensori tramite web.
• Browser basati su Gecko (come Firefox): Attualmente sono considerati più vulnerabili su Android. Firefox non possiede una sandbox interna su Android e non isola i siti tra loro. Inoltre, l'uso di Firefox aggiunge la superficie di attacco di un secondo motore di rendering (Gecko) oltre a quello di Chromium richiesto dal sistema.
Fotocamera (Camera)
GrapheneOS offre le stesse capacità e qualità fotografica del sistema operativo stock.
• GrapheneOS Camera: Utilizziamo la nostra app fotocamera moderna e sicura, focalizzata sulla privacy, invece dell'app standard di AOSP.
• Pixel Camera: Sui dispositivi Pixel, è possibile installare l'app fotocamera originale di Google come alternativa per accedere a funzioni specifiche del produttore.
Per maggiori dettagli sull'uso della GrapheneOS Camera o sui vantaggi della Pixel Camera, consulta le sezioni dedicate della guida all'uso.
App GrapheneOS Camera
GrapheneOS include una propria app fotocamera moderna, focalizzata sulla privacy e sulla sicurezza. Include modalità per l'acquisizione di immagini, video e scansione di QR/codici a barre, oltre a modalità aggiuntive basate sulle estensioni del fornitore CameraX (Ritratto, HDR, Notte, Ritocco viso e Auto) sui dispositivi dove queste sono disponibili (attualmente, sui Pixel, è supportata solo la modalità Notte).
Interfaccia e Utilizzo
• Navigazione: Le modalità sono visualizzate come schede in basso. Puoi passare da una all'altra toccandole o scorrendo verso destra/sinistra sullo schermo.
• Impostazioni: La freccia in alto apre il pannello delle impostazioni (chiudibile toccando all'esterno o scorrendo verso l'alto).
• Controlli: Sopra la barra delle schede trovi i pulsanti per cambiare fotocamera (sinistra), scattare o registrare (centro) e aprire la galleria (destra). I tasti del volume possono essere usati come pulsante di scatto.
• Intenti di sistema: L'app fornisce gli "intenti multimediali" necessari alle altre app per scattare foto o registrare video tramite l'implementazione di sistema, garantendo alta qualità anche nelle app di terze parti.
• Galleria: Include un visualizzatore interno di foto e video. Per le modifiche, apre un editor esterno (GrapheneOS include di base la Galleria AOSP, ma puoi installarne uno più avanzato).
Qualità e Ottica
• Aspetto (Ratio): Si raccomanda l'uso del formato 4:3, poiché il 16:9 è semplicemente un ritaglio (crop) del sensore su quasi tutti i dispositivi supportati.
• HDR+: L'acquisizione immagini utilizza un HDR+ leggero sui Pixel supportati. L'uso del flash disabilita l'HDR+, motivo per cui il flash automatico non è attivo di default. In futuro, le estensioni CameraX permetteranno un HDR+ più aggressivo (oltre i circa 3 fotogrammi attuali).
• Zoom: L'app utilizza automaticamente le lenti grandangolari e i teleobiettivi dei Pixel. Lo zoom tramite "pinch" o cursore gestisce il passaggio tra i vari sensori ottici.
Scansione QR e Codici a Barre
È uno scanner ad alta velocità e qualità che supporta anche i codici invertiti non standard.
• Scansiona solo all'interno del quadrato contrassegnato per evitare errori.
• Ogni 2 secondi aggiorna fuoco ed esposizione sull'area di scansione.
• Di default scansiona solo QR code per massimizzare affidabilità e velocità, ma puoi abilitare altri tipi di codici dal menu in alto (attenzione: abilitare troppi tipi può rallentare la scansione o causare falsi positivi).
Privacy e Metadati
• Permessi: Richiede solo il permesso "Fotocamera". Video e foto sono salvati tramite le API Media Store, quindi non servono permessi di archiviazione. Il microfono serve solo per i video (se l'audio è abilitato), e la posizione solo se attivi il geotagging.
• Rimozione EXIF: Di default, tutti i metadati EXIF vengono rimossi dalle immagini, ad eccezione dell'orientamento (necessario per visualizzare la foto correttamente). La rimozione dei metadati dai video è prevista per il futuro. Disabilitando questa protezione (in "Altre impostazioni"), verranno conservati timestamp, modello del telefono e parametri di esposizione.
• Stabilizzazione: La stabilizzazione elettronica (EIS) è attiva di default per i video se supportata dal dispositivo.
Pixel Camera
La Pixel Camera (precedentemente Google Camera) può essere utilizzata su GrapheneOS con pieno accesso all'hardware di elaborazione delle immagini, esattamente come sull'OS stock.
• Nessun servizio Google richiesto: Non richiede GSF (Google Services Framework) o i servizi Google Play sandboxati per funzionare.
• Controllo Hardware (TPU/GXP): GrapheneOS aggiunge un selettore per controllare l'accesso diretto ai processori d'immagine (TPU e GXP) da parte delle app Google. Questo serve a ridurre la superficie di attacco e non concede a Google l'accesso a dati aggiuntivi.
• Evoluzione: Molte funzioni esclusive della Pixel Camera (come Night Sight avanzato o Ritratto) arriveranno gradualmente anche sulla fotocamera di GrapheneOS tramite le estensioni CameraX. Funzioni come Panorama, Astrofotografia o Google Lens non sono invece attualmente previste nella tabella di marcia dell'app nativa di GrapheneOS.
Spawning dei processi (Exec spawning)
GrapheneOS crea processi ex-novo (tramite exec) quando avvia le applicazioni, invece di utilizzare il tradizionale modello basato su Zygote. Questo approccio migliora drasticamente la privacy e la sicurezza a scapito di un tempo di avvio a freddo (cold start) più lungo e un maggiore utilizzo iniziale della memoria.
Il modello tradizionale Zygote
Nel modello standard di Android, durante l'avvio viene creato un processo "modello" chiamato Zygote. Ogni nuova app viene generata come un "clone" (fork) di questo processo.
• Vantaggi: Risparmio di tempo (l'inizializzazione avviene una volta sola) e riduzione della memoria grazie alla semantica copy-on-write.
• Svantaggi: Indebolisce la sicurezza poiché ogni app condivide lo stesso contenuto e layout della memoria iniziale. Segreti che dovrebbero essere casuali per ogni processo (come i valori per l'ASLR o i canarini dello stack) sono identici per tutte le app fino al riavvio del dispositivo. Questo fornisce anche identificatori temporanei utilizzabili tra diversi profili utente.
Il modello di GrapheneOS (Secure app spawning)
GrapheneOS avvia ogni app da zero, garantendo che ogni processo abbia segreti e layout di memoria unici e casuali.
• Impatto: Aggiunge circa 200ms al tempo di avvio dell'app sui dispositivi top di gamma (più evidente su dispositivi economici). Una volta avviata, le prestazioni dell'app sono identiche.
• Configurazione: La funzione può essere disabilitata (tornando al modello Zygote) in Impostazioni > Sicurezza e privacy > Protezione dagli exploit > Secure app spawning.
Bug rilevati dalle funzioni di sicurezza
GrapheneOS espande notevolmente le mitigazioni standard contro le vulnerabilità di corruzione della memoria.
Alcune funzioni sono progettate per rilevare bug tramite controlli espliciti e interrompere il programma per impedirne l'espletamento (exploit). Altre mitigazioni agiscono indirettamente (come l'azzeramento della memoria al momento del rilascio o la randomizzazione dell'heap).
Nota bene: Questi bug non sono causati da GrapheneOS, ma sono bug preesistenti nelle app che vengono portati alla luce dalle protezioni avanzate del sistema.
Modalità di compatibilità (Exploit protection compatibility mode)
Se un'app va in crash a causa di queste protezioni, è possibile attivare una modalità di compatibilità specifica in Impostazioni > App > [Nome App] > Exploit protection compatibility mode. Questa modalità:
1. Passa da hardened_malloc all'allocatore standard di Android (Scudo).
2. Riduce la dimensione dello spazio di indirizzamento da 48 bit a 39 bit (standard Android).
3. Disabilita il Memory Tagging (MTE).
4. Consente l'accesso al debugging nativo (ptrace).
Queste modifiche si applicano solo all'app selezionata e i singoli parametri possono essere attivati/disattivati separatamente.
Privacy Wi-Fi
Il Wi-Fi su GrapheneOS è estremamente orientato alla privacy e rimane essenzialmente anonimo, a meno che le app non trasmettano identificatori univoci sulla rete.
Scansione e Indirizzi MAC
La randomizzazione del MAC viene sempre eseguita durante la scansione delle reti Wi-Fi. Sui telefoni Pixel, il supporto del firmware garantisce che la randomizzazione vada oltre l'indirizzo MAC, nascondendo altri identificatori come i numeri di sequenza dei pacchetti nelle probe requests.
Punti di Accesso (AP) Nascosti
Evita di usare reti Wi-Fi nascoste (quelle che non trasmettono il proprio SSID).
• Per trovare una rete nascosta, il tuo telefono deve trasmettere continuamente il nome della rete (SSID) durante la scansione.
• Questo comportamento riduce la tua privacy poiché il dispositivo "annuncia" a chiunque si trovi nelle vicinanze le reti a cui sei solito collegarti.
• Le reti nascoste sono tali solo quando nessun dispositivo è connesso; una volta collegati, la rete è comunque rilevabile.
Ricerca di posizione tramite Wi-Fi e Bluetooth
A differenza del sistema operativo stock, su GrapheneOS la scansione Wi-Fi e Bluetooth per migliorare la precisione della posizione è disattivata di default.
Puoi gestire queste opzioni in Impostazioni > Posizione > Servizi per la posizione. Se queste funzioni sono attive, le radio possono continuare a scansionare l'ambiente circostante anche quando hai disattivato manualmente il Wi-Fi o il Bluetooth.
Associazione a un Access Point (AP)
La randomizzazione del MAC durante l'associazione è attiva per impostazione predefinita. Questa può essere gestita per singola rete in Impostazioni > Rete e internet > Internet > [RETE] > Privacy.
Opzioni di randomizzazione MAC
Mentre il sistema operativo stock offre solo due opzioni, GrapheneOS ne mette a disposizione tre:
1. Usa MAC randomizzato per ogni connessione (Predefinito): Genera un nuovo indirizzo MAC ogni volta che ci si connette alla rete.
2. Usa MAC randomizzato per rete: Utilizza un indirizzo MAC casuale che rimane però persistente per quella specifica rete.
3. Usa MAC del dispositivo: Utilizza l'identificativo hardware reale (sconsigliato per la privacy).
Nota tecnica: In rari casi, router datati o mal configurati potrebbero non accettare nuovi client una volta riempita la tabella DHCP. In queste situazioni, è possibile passare alla modalità "per rete" dopo aver svuotato manualmente la tabella DHCP del router.
Il client DHCP di GrapheneOS utilizza un profilo di anonimato (non invia l'hostname del dispositivo) per non vanificare la privacy offerta dal MAC casuale. Inoltre, quando si usa la randomizzazione "per connessione", lo stato del client DHCP viene svuotato prima di riconnettersi per evitare che il server possa ricollegare la sessione allo stesso dispositivo.
Localizzazione di rete (Network location)
Questa funzione permette di determinare la posizione del dispositivo basandosi sui database delle reti Wi-Fi e delle celle telefoniche circostanti.
• Percorso: Impostazioni > Posizione > Servizi per la posizione > Network location.
• Opzioni: È possibile utilizzare il servizio di localizzazione di Apple o un proxy di GrapheneOS verso tale servizio (per una maggiore protezione dell'identità).
• Requisiti: Per funzionare, è necessario che il Wi-Fi sia attivo o che sia abilitata la "Scansione Wi-Fi" nelle impostazioni di posizione. Funziona anche tramite la rete cellulare, ma con una precisione decisamente inferiore.
Modalità solo LTE (LTE-only)
Se disponi di una connessione LTE affidabile, puoi ridurre drasticamente la superficie di attacco disabilitando la connettività 2G, 3G e 5G.
• Percorso: Impostazioni > Rete e internet > SIM > [SIM] > Tipo di rete preferito.
• Chiamate vocali: In questa modalità, le chiamate funzioneranno solo tramite VoLTE (Voice over LTE) o VoWi-Fi. GrapheneOS supporta queste tecnologie per la maggior parte degli operatori.
• Vantaggi di sicurezza: Questa funzione non serve a rendere le chiamate tradizionali criptate (per quello servono app con cifratura end-to-end), ma serve a indurire il sistema contro gli exploit remoti. Disattivando il 2G/3G si elimina una quantità enorme di codice legacy insicuro, mentre disattivando il 5G si evita il codice "di ultima generazione" ancora potenzialmente instabile.
Sandboxed Google Play
GrapheneOS include un livello di compatibilità che permette di installare e utilizzare le versioni ufficiali di Google Play all'interno della sandbox standard delle applicazioni. Su GrapheneOS, Google Play non riceve alcun accesso speciale o privilegio (a differenza di quanto avviene su altri sistemi dove bypassa la sandbox), ma viene istruito dal sistema a funzionare entro i limiti di sicurezza standard. GrapheneOS non utilizza Google Play come backend per i servizi di sistema, anche quando è installato.
Funzionamento e Privacy
• Isolamento per profilo: Essendo app comuni, i servizi Google Play vengono installati solo in uno specifico profilo utente o di lavoro. Non possono accedere ai dati di altre app e richiedono il consenso esplicito dell'utente per ogni permesso.
• Comunicazione tra app: Le app nello stesso profilo possono comunicare con Google Play solo se progettate per farlo, esattamente come avverrebbe tra due app qualsiasi.
• Compatibilità: Il sistema è quasi pienamente funzionale. La stragrande maggioranza delle funzioni (inclusi i moduli aggiornabili Dynamite e Google Play Games) funziona perfettamente.
Geolocalizzazione
Per impostazione predefinita, le richieste di posizione inviate a Google Play vengono reindirizzate a un'implementazione di GrapheneOS basata sulle API del sistema operativo. Questo garantisce la privacy senza dover concedere permessi a Google. È possibile disattivare questo reindirizzamento per usare il servizio di localizzazione nativo di Google, ma è sconsigliato a meno di casi d'uso particolari.
Play Store
Il livello di compatibilità supporta pienamente il Play Store, inclusi:
• Acquisti in-app.
• Controlli delle licenze per app a pagamento.
• Play Asset Delivery e Play Feature Delivery.
• Aggiornamenti automatici (utilizzando la funzione di Android 12+ per aggiornamenti non presidiati).
Installazione
L'approccio più semplice è l'installazione nel profilo Proprietario, dove le app saranno comunque sandboxate. In alternativa, puoi installarli in un profilo separato per isolare le app che dipendono da Google.
Passaggi per l'installazione:
1. Apri l'App Store di GrapheneOS.
2. Seleziona Google Play services e installalo (questo installerà automaticamente anche il Google Play Store).
3. Ottimizzazione batteria: È consigliabile concedere un'eccezione all'ottimizzazione della batteria per "Google Play services" affinché le notifiche push funzionino correttamente in background.
Nota: L'accesso con un account Google è facoltativo. È necessario solo per installare app dal Play Store o per utilizzare funzioni che dipendono strettamente dall'account.
Configurazione
Il menu di configurazione è disponibile in Impostazioni > App > Sandboxed Google Play.
Reindirizzamento Posizione
Come menzionato, il sistema reindirizza le richieste di posizione alle API dell'OS. Se desideri invece utilizzare il servizio di accuratezza della posizione di Google (non raccomandato):
1. Disabilita il toggle "Reroute location requests to OS APIs".
2. Concedi il permesso "Posizione" (Consenti sempre) e "Dispositivi nelle vicinanze" a Google Play services.
3. Attiva "Google Location Accuracy" dal menu di configurazione.
4. Abilita la scansione Wi-Fi e Bluetooth in Impostazioni > Posizione > Servizi per la posizione.
Collegamenti Rapidi
Il menu fornisce scorciatoie rapide per:
• Impostazioni di sistema di Play Services e Play Store.
• Impostazioni dell'account Google.
• Guide all'uso.
Condivisione della posizione
La funzione "Condividi posizione" di Google Maps è implementata all'interno di Google Play services. Per funzionare, richiede che a Google Play services siano concessi i permessi "Posizione" (impostato su Consenti sempre) e "Attività fisica".
È importante notare che la nostra funzione di reindirizzamento (rerouting), che sostituisce il servizio di localizzazione di Google con quello dell'OS, non si applica a Google Play services stesso. Pertanto, Google Play services non utilizzerà il servizio di localizzazione di rete dell'OS. Se desideri questa funzione, devi seguire le istruzioni fornite in precedenza per abilitare la localizzazione di rete nativa di Google all'interno della sandbox. Puoi continuare a usare il reindirizzamento per le altre app o disattivarlo per evitare di avere due servizi di localizzazione di rete distinti attivi contemporaneamente.
Limitazioni
Il nostro livello di compatibilità deve essere ampliato caso per caso per "istruire" i Play Services a funzionare come app comuni, senza l'accesso invasivo che si aspetterebbero.
• Funzionalità privilegiate: Alcune funzioni richiedono intrinsecamente privilegi di sistema e non possono essere supportate solo tramite il livello di compatibilità standard. Ad esempio, Android Auto non è supportato di base, ma è disponibile come estensione con toggle dedicati per le funzioni altrimenti impossibili da implementare.
• Integrazione OS: Le funzioni che dipendono dal fatto che il sistema operativo usi Play Services come "motore" (backend) per i servizi di sistema non sono disponibili. GrapheneOS non usa mai Play Services come fornitore di servizi di sistema. Tuttavia, in casi come la sintesi vocale (TTS), dove l'OS permette all'utente di scegliere il fornitore, Play Services può spesso essere utilizzato, operando alla pari di qualsiasi altra app.
Supporto eSIM
Di base, GrapheneOS supporta l'uso di eSIM già installate sul dispositivo. Tuttavia, per gestire o aggiungere nuove eSIM, è necessaria una funzionalità proprietaria di Google, che di default è completamente disattivata.
• Privacy: Anche se è necessaria questa funzionalità proprietaria, la gestione delle eSIM su GrapheneOS non dipende dai Google Play Services e non condivide dati con essi, nemmeno se installati. Non ci sarà alcuna connessione ai servizi Google, a meno che non sia l'operatore telefonico stesso a utilizzarli.
• Attivazione: Il supporto può essere abilitato in Impostazioni > Rete e internet > Supporto eSIM. Il toggle è persistente al riavvio.
• Risoluzione problemi: Se l'installazione dell'eSIM si blocca su "Controllo informazioni di rete...", prova a digitare il codice USSD *#*#4636#*#* e abilita l'opzione DSDS nel menu che appare.
Suggerimento di sicurezza: Se utilizzi una eSIM protetta da PIN, ti consigliamo di lasciare il "Supporto eSIM" attivo anche dopo l'attivazione. Questo ti permetterà di disabilitare l'eSIM dalla schermata di blocco in caso di smarrimento del PIN. Se il supporto è disattivato e il PIN viene dimenticato, non sarà possibile accedere al dispositivo senza il codice PUK.
Android Auto
GrapheneOS offre l'opzione di installare e utilizzare le versioni ufficiali di Android Auto.
Normalmente, Android Auto richiede privilegi di sistema elevati per funzionare; GrapheneOS utilizza un'estensione del livello di compatibilità di Sandboxed Google Play per farlo operare con un livello di privilegi ridotto.
• Installazione: Deve essere installato esclusivamente tramite l'App Store di GrapheneOS. Non può essere installato dal Play Store o da altre fonti. Se non è già presente, il sistema richiederà l'installazione di Sandboxed Google Play, da cui Android Auto dipende.
• Configurazione: Dopo l'installazione, va configurato in Impostazioni > App > Sandboxed Google Play > Android Auto. Qui troverai i toggle per i permessi e i suggerimenti per la configurazione.
• Permessi:
• Di default, non riceve alcun accesso privilegiato.
• Per funzionare, è necessario attivare i toggle "Allow permissions for wired/wireless Android Auto". La modalità cablata (Wired) richiede molti meno permessi di quella wireless.
• Nota: Alcune auto richiedono i permessi wireless anche quando sono collegate via cavo. Se la connessione fallisce, prova ad abilitare i permessi wireless.
• Per visualizzare le notifiche sul display dell'auto, è necessario concedere ad Android Auto l'Accesso alle notifiche (il link si trova sotto i toggle dei permessi).
• App supportate: Per apparire nell'interfaccia dell'auto, le app devono essere installate dal Play Store e includere il supporto nativo ad Android Auto.
App Bancarie (Banking apps)
Le app bancarie sono una categoria critica per la compatibilità con i sistemi operativi alternativi. Molte funzionano semplicemente installando Sandboxed Google Play nello stesso profilo, ma esistono complicazioni specifiche:
• Debug del codice nativo: Molte app finanziarie usano meccanismi anti-manomissione che entrano in conflitto con le protezioni di GrapheneOS. Se riscontri problemi, assicurati che l'opzione "Native code debugging" (in Impostazioni > Sicurezza e privacy > Protezione dagli exploit) sia abilitata (stato predefinito), poiché disabilitarla può impedire a queste app di eseguire i propri controlli interni di integrità.
• Attestazione SafetyNet / Play Integrity:
• GrapheneOS supera il controllo basicIntegrity ma non il ctsProfileMatch, poiché non è un sistema certificato da Google.
• GrapheneOS non tenta di bypassare o falsificare questi controlli (spoofing), poiché sarebbe una soluzione fragile e destinata a rompersi con i futuri aggiornamenti hardware.
• Hardware Attestation: GrapheneOS supporta pienamente l'API di attestazione hardware di AOSP. Gli sviluppatori di app potrebbero utilizzarla per supportare ufficialmente GrapheneOS, ma la maggior parte sceglie di limitarsi alla lista di sistemi certificati da Google.
• Verifica compatibilità: Esiste un database gestito dalla comunità (non ufficiale) su PrivSec.dev che elenca la compatibilità delle varie app bancarie con GrapheneOS.
Verifica dei link delle app (App link verification)
Le app Android possono dichiarare associazioni con determinati domini per gestire automaticamente i relativi URL. Per motivi di sicurezza, su GrapheneOS i link delle app sono disabilitati di default, per impedire che le app intercettino URL arbitrari senza consenso.
• Verifica automatica: Le app "first-party" possono richiedere la verifica automatica tramite l'attributo autoVerify. Il sistema operativo confermerà in modo sicuro che il dominio autorizza l'app a gestire i suoi URL (ad esempio, l'app ufficiale di YouTube viene verificata automaticamente).
• Abilitazione manuale: Per le app di terze parti (come NewPipe), l'utente deve abilitare manualmente l'associazione in Impostazioni > App > [App] > Apri per impostazione predefinita > Aggiungi link.
• Dettagli tecnici: La verifica è gestita dall'app di sistema Intent Filter Verification Service. Questa effettua una richiesta HTTPS GET all'indirizzo https://dominio.com/.well-known/assetlinks.json.
• Privacy: Queste richieste di rete non contengono informazioni identificative e non offrono un canale di comunicazione con l'app.
• Controllo: Se non desideri la verifica automatica, puoi revocare il permesso "Rete" all'app di sistema Intent Filter Verification Service.
Funzionalità dell'operatore (Carrier functionality)
GrapheneOS punta a supportare tutti gli operatori ufficialmente compatibili con i Pixel sul sistema operativo stock.
Servizi supportati
• VoLTE, SMS, MMS e 5G (SA/NSA): Generalmente funzionano senza problemi con gli operatori supportati.
• Wi-Fi Calling: Il funzionamento può variare, poiché spesso dipende da app proprietarie di Google non incluse in GrapheneOS.
• Visual Voicemail: Gli utenti AT&T (USA) non possono attualmente usare questa funzione per mancanza di supporto AOSP. Per altri operatori, il supporto è fornito al meglio delle possibilità; in caso di problemi, si suggerisce l'uso di Google Dialer con Sandboxed Google Play.
Risoluzione dei problemi SMS/MMS
Se riscontri problemi con i messaggi, assicurati di aver de-registrato il tuo numero dai seguenti servizi:
1. Apple iMessage
2. Google Chat / RCS
Altri suggerimenti per la connettività
• Reset di rete: In caso di problemi persistenti, esegui il reset in Impostazioni > Sistema > Opzioni di ripristino > Ripristina impostazioni rete mobile e riavvia.
• APN: Verifica che i nomi dei punti di accesso siano configurati correttamente secondo le istruzioni del tuo operatore (Impostazioni > Rete e internet > SIM > [SIM] > Nomi punti di accesso).
• Restrizioni IMEI: Alcuni operatori limitano il VoLTE solo ai dispositivi venduti localmente tramite whitelist degli IMEI. Puoi verificare il tuo SKU hardware in Impostazioni > Informazioni sul telefono > Modello > SKU Hardware.
• Standard GSMA TS.43: Alcuni operatori (es. Orange France) utilizzano Google Firebase per la configurazione di VoLTE e Wi-Fi Calling. In questi rari casi, potrebbe essere necessario installare Sandboxed Google Play.
Vantaggi rispetto allo stock OS
GrapheneOS include bypass per diverse restrizioni imposte dagli operatori, permettendo:
• Modifica libera degli APN.
• Tethering (USB, Ethernet, Bluetooth, Wi-Fi) senza restrizioni.
• Possibilità di disabilitare il 2G (dai Pixel 6 in poi), riducendo la superficie di attacco.
Sostituzione delle impostazioni dell'operatore (Carrier settings overrides)
GrapheneOS supporta la sovrascrittura di un sottoinsieme di impostazioni dell'operatore, come la disponibilità di VoLTE, Wi-Fi calling e cross-SIM calling. Questa funzione è utile quando il sistema operativo stock presenta configurazioni mancanti o incomplete per determinati operatori. Queste sostituzioni vengono salvate per singola SIM e possono essere configurate in Impostazioni > Rete e internet > SIM > [SIM] > Carrier settings overrides.
Cross-SIM calling (Chiamate tramite altra SIM)
Nelle configurazioni Dual SIM, GrapheneOS supporta il cross-SIM calling (chiamate di backup), che consente di effettuare chiamate utilizzando una SIM tramite i dati mobili forniti dall'altra SIM, in modo simile al Wi-Fi calling.
• Requisiti: È necessario abilitare "Commutazione automatica dati" in Impostazioni > Rete e internet > SIM.
• Utilità: Questa funzione è utile quando la SIM principale non ha campo ma si dispone di una seconda SIM con dati attivi (ad esempio, durante il roaming all'estero con una eSIM turistica).
• Stato: Il cross-SIM calling è attivo quando compare la dicitura "Backup Calling" accanto al nome dell'operatore mobile.
RCS (Rich Communication Services)
GrapheneOS supporta lo standard RCS nell'app Google Messages tramite Sandboxed Google Play. In questa configurazione, Google Play services gestisce parte della verifica e della configurazione. Per attivare correttamente l'RCS, segui questi passaggi prima di aprire l'app:
1. Profilo utente: Attualmente, l'RCS con Google Messages è funzionante solo nel profilo utente Proprietario (Owner).
2. Permessi ICC: Alcuni operatori utilizzano il metodo di verifica GSMA TS.43, che richiede a Google Play services il permesso di eseguire l'autenticazione ICC con gli identificatori del dispositivo. Puoi concederlo in Impostazioni > App > Sandboxed Google Play > Play services special permissions.
3. Permesso Telefono: Concedi il permesso "Telefono" a Google Play services.
4. App SMS predefinita: Imposta Google Messages come app SMS predefinita.
GrapheneOS