Logo it.androidermagazine.com
Logo it.androidermagazine.com

Cosa significa realmente il rooting del telefono?

Sommario:

Anonim

Adoriamo ricevere le tue domande. È sempre una buona cosa quando possiamo aiutarci a vicenda e impariamo cose da soli quando cerchiamo le risposte. Anche se non riusciamo a trovare il tempo per rispondere a tutti, a volte una certa domanda arriva abbastanza da meritare una risposta dettagliata.

"Cosa significa radice?" è una di quelle domande. Il concetto può essere semplice per alcuni di noi, ma per molte persone che non hanno trascorso del tempo a giocherellare con Android o altri sistemi operativi basati su autorizzazioni, è qualcosa su cui porre domande. Proverò a rispondere a tutti nel miglior modo possibile.

permessi

Prima di definire il root, è importante capire perché esiste e come funziona. È perché Android utilizza le autorizzazioni (autorizzazioni basate su Linux, per l'esattezza) nella struttura dei file. Ogni file, ogni cartella e ogni partizione ha una serie di autorizzazioni. Queste autorizzazioni decidono chi può leggere un file (guardare o accedere ai contenuti senza modificarli), scrivere su un file (essere in grado di modificare il contenuto di quel file o creare un nuovo file all'interno di una cartella o partizione) ed eseguire un file (esegui il file se è un tipo che può essere eseguito, come un'app). Questo viene fatto in base agli utenti e alle autorizzazioni: alcuni utenti hanno accesso, mentre agli utenti che non dispongono delle autorizzazioni giuste viene impedito l'accesso.

Quando si configura il telefono per la prima volta e lo si accende per la prima volta, viene assegnato un ID utente. Se un altro utente accede tramite Google, gli viene assegnato un ID utente diverso. Quando un'app è installata sul telefono, gli viene anche assegnato un ID utente. Il sistema stesso è un utente e altri processi che devono essere eseguiti sul telefono potrebbero avere il proprio ID utente. Tutto ciò che può fare qualsiasi cosa su qualsiasi file sul tuo Android è un utente.

Un sistema di utenti e autorizzazioni è il modo in cui Android tiene traccia di chi può fare cosa.

Supponiamo che tu installi un'app di messaggistica. Viene assegnato un ID utente quando lo si installa. Ottiene anche un punto sulla tua partizione dati propria, a cui solo lui ha accesso. Disponi delle autorizzazioni per eseguire l'app e, quando viene eseguita, ha l'autorizzazione ad accedere alla sua cartella e ai suoi file di dati. L'app potrebbe inoltre richiedere l'autorizzazione ad accedere ad elementi come la rubrica o la scheda SD o la libreria di foto. Se dici di sì a queste richieste (o se accetti le autorizzazioni su versioni precedenti di Android) all'ID utente dell'app viene concessa l'autorizzazione per i file di dati di quelle cose, il che significa che può guardare la cartella dei dati e i suoi contenuti e possibilmente cambiare o aggiungere nuovi file. L'app non può accedere a nessun file di dati per cui non dispone dell'autorizzazione per "guardare". Ciò significa che (nel nostro esempio) non può fare cose come guardare il database delle impostazioni o accedere alla cartella dei dati di un'altra applicazione. Il termine sandbox viene spesso utilizzato per questo: le app sono sandbox e possono giocare solo nei sandbox in cui sono autorizzati a trovarsi.

Per i file che sono programmi e possono essere eseguiti (come app), si applica lo stesso modello di autorizzazione. L'ID utente dispone dell'autorizzazione per eseguire le app installate durante l'accesso. L'utente del sistema ha l'autorizzazione per eseguirle e altri utenti a livello di sistema possono avere accesso alle app o ad alcuni processi che le app utilizzano. Altre app non possono avviare app che non dispongono dell'autorizzazione per l'avvio. Se hai aggiunto un utente secondario, questi non hanno accesso alle tue app o ai tuoi file e viceversa. Esistono file, cartelle e app sul telefono che l'ID utente non dispone dell'autorizzazione per visualizzare, modificare o eseguire. Di solito quelle parti di Android richiedono autorizzazioni a livello di sistema (l'ID utente di sistema) per fare qualsiasi cosa, e tu non sei l'utente di sistema o un utente che dispone di autorizzazioni a livello di sistema.

Cambio di autorizzazioni

Mentre è tecnicamente possibile cambiare il modo in cui il telefono si avvia e i file che utilizza per avviare il sistema in esecuzione e assegnare autorizzazioni elevate al tuo ID utente, non è né sicuro né pratico. Ma Android (e la maggior parte dei sistemi basati su Unix o Linux) hanno quello che viene chiamato un utente root e supportano il binario SubstituteUser (pensa a un binario come una piccola app) per cambiare gli ID utente. Questi sono usati per amministrare il sistema a livello centrale.

Poiché le persone che hanno creato il tuo telefono non vogliono che tu abbia un facile accesso all'ID utente root - e non tutti i motivi sono egoistici perché protegge anche te e i tuoi dati privati ​​- il binario SubstituteUser non è incluso nella maggior parte delle build di Android. Senza SubstituteUser, non possiamo cambiare il nostro ID utente. La maggior parte delle cose a livello di sistema in Android hanno nomi simili simili, a proposito. La sicurezza di base (i file nel bootloader e / o nel kernel stesso) sono anche costruiti in modo da impedirti di cambiare gli ID utente come parte del modulo del kernel SELinux (S ecurity- E nhanced Linux - ti ha detto che i nomi sono facili). Alcuni telefoni (mi viene in mente Knox di Samsung) hanno ulteriori protezioni e quasi tutte le aziende che producono Androidi richiedono che, per apportare modifiche, il bootloader debba essere sbloccato in modo che questi file possano essere modificati e consentano di cambiare gli ID utente. Alcuni telefoni, come BlackBerry Priv, fanno un ulteriore passo avanti e non si avviano se cambiamo qualcosa (anche se potessimo).

Per diventare root, hai bisogno di un modo per cambiare il tuo ID utente.

Una volta superato tutto ciò, o sbloccando il bootloader con mezzi autorizzati o utilizzando una sorta di exploit, possiamo posizionare il binario SU (SubstituteUser) in un punto che può essere eseguito quando viene chiamato a funzionare - che si chiama PATH. Se un'app si trova nel PERCORSO del tuo ID utente, verrà eseguita senza dire al sistema esattamente dove si trova. È inoltre necessario assicurarsi che il binario SU si trovi in ​​un punto in cui l'ID utente disponga dell'autorizzazione per eseguire (eseguire) i file. Anche qualsiasi altra app (Google Play ha molte app che richiedono autorizzazioni di root) avrà bisogno dello stesso accesso. Quando si utilizza un metodo per eseguire il root del telefono, tutto questo viene risolto dalla gente che ha creato il metodo root.

Una volta che tutto è a posto, possiamo eseguire il binario SU (o un'altra app può eseguire il binario SU).

Ottenere l'accesso come root

È qui che entra in gioco il root. Il binario SU usa i flag quando viene eseguito per dire al sistema a quale ID utente vuoi passare. Ad esempio, se eseguo il binario SU sul mio computer Ubuntu come questo "su Jim -c nano" eseguirò il comando nano come l'utente Jim (dopo aver fornito la password di Jim). Se si esegue il binario SU senza flag o argomenti, si passa all'utente root. Normalmente dovresti fornire una password, ma poiché "root" è un utente inutilizzato su Android non ha password. Eseguendo il comando "su" si passerà al root dell'utente, assegnandoti l'ID utente di 0 e inserendoti nel gruppo root. Ora sei Super User.

Come Super User puoi fare qualsiasi cosa su qualsiasi file, cartella o partizione sul tuo Android. Con qualsiasi cosa intendiamo letteralmente qualsiasi cosa. È possibile rimuovere le app bloatware e anche i file di sistema essenziali che rompono il telefono. Puoi anche fare cose sull'hardware come cambiare la frequenza della CPU e rovinare il tuo telefono per sempre.

Root è il superutente, che può fare qualsiasi cosa. E intendiamo qualsiasi cosa.

Le app possono fare la stessa cosa. SU è collocato dove si trova nell'applicazione PATH e qualsiasi app può chiamarlo ed eseguirlo. Quell'app ha quindi le autorizzazioni per i Super User e può fare tutto ciò che vuole su qualsiasi file in qualsiasi posizione sul telefono. Questo è il motivo per cui le persone che hanno creato il tuo telefono non vogliono davvero che tu abbia questo livello di accesso, e le aziende che ti consentono di sbloccare il bootloader e cambiare le cose non posizionano il binario SU sul tuo telefono per impostazione predefinita. Avere accesso root senza alcun modo per controllare chi o cosa può usarlo è pericoloso per il software del telefono e i dati personali.

Ecco perché è necessario installare un'app che ti costringe a consentire l'accesso come root ogni volta che tu o un'altra app provate a invocare le autorizzazioni Super User. La maggior parte delle volte quando usi un metodo di root per il tuo telefono ne verrà incluso uno, insieme ad altri utili binari come il set di strumenti BusyBox. Se hai fatto le cose a mano, dovrai installarne una tu. SuperSU di Chainfire in Google Play è un buon inizio.

Cianfrusaglie

Molti telefoni e alcuni metodi di root fanno le cose in modo leggermente diverso (Android 4.3 ha apportato molte modifiche) e richiedono script o un demone (vedrai parole come daemonsu o su.d menzionate) invece di rilasciare semplicemente il binario SU. Questi sono usati per chiamare SubstituteUser in modo da poter passare all'utente root proprio come il metodo binario non elaborato. Le persone che hanno capito come eseguire il root del telefono hanno risolto tutto e funzionerà allo stesso modo sul lato utente.

È anche possibile "temp-root" di alcuni androidi. Questo significa che puoi avere le autorizzazioni per i Super User e fare alcune cose che devi fare, ma un riavvio porta via l'accesso root. Allo stesso modo, puoi avere una "shell-root" in cui puoi accedere all'utente root solo tramite adb dal tuo computer.

Infine, voglio sottolineare che se hai avuto queste domande, devi considerare se sei pronto per avere un Android con root. Non stavamo scherzando quando abbiamo detto che è facile rovinare il telefono con l'accesso SuperUser. Non c'è motivo di vergognarsi di dover leggere un po 'o fare qualche altra domanda prima di fare cose che potrebbero rompere il telefono o consentire a un'app rouge casuale di accedere a tutti i tuoi dati.

Questo è ciò per cui siamo qui.