Come aggiungere l'autorizzazione di root ad alcune app da solo?


11

Esiste un modo in cui concedo intenzionalmente l'autorizzazione di root ad alcune app? Non automaticamente tramite SuperSU quando un'app specifica richiede l'autorizzazione di root, ma in un modo per scegliere un'app tramite alcuni strumenti e concederle le autorizzazioni di root.

Ad esempio, aggiungo la mia app di testo preferita all'elenco approvato e quindi posso aprire i file di root tramite tale app.

Risposte:


13

No. Dovresti richiedere allo sviluppatore dell'app di farlo.

Su sistemi come UNIX, le autorizzazioni sono gestite con qualcosa chiamato UID.

Ogni processo ne ha uno e determina ciò a cui possono accedere. Inoltre, ci sono anche gruppi con autorizzazioni che i loro membri possono utilizzare. Quando un'app ha autorizzazioni come Write to SD cardse fossero inserite in un gruppo che dispone di questa autorizzazione.

Le autorizzazioni di root sono un'eccezione poiché non sono dichiarate nel manifest dell'app, ma piuttosto nel suo codice. Anche il root non è un gruppo ma un UID separato (in quanto è un utente separato) quindi non è così facile per un'app utilizzarlo. Le app con diritti di root devono essere esplicitamente scritte per farlo.

Il modo in cui funziona è ogni volta che un'app vuole fare qualcosa come root, deve invece richiedere al subinario di farlo. suchiederà quindi all'app che gestisce queste autorizzazioni (ad esempio, SuperSU) se l'app è autorizzata ad ottenere l'accesso come root. In caso contrario, ti verrà chiesto di consentirlo o negarlo. Quindi l'azione viene eseguita come root, non come l'utente dell'app. Queste azioni non sono parte integrante dell'app ma piuttosto un eseguibile esterno.

Mentre teoricamente è possibile aggiungere questo a un'app, questo sarebbe un processo non banale che richiede la conoscenza della scrittura del codice smali, che è il formato interno della macchina virtuale Dalvik (la parte del sistema che esegue il file apk) chiamato Smali. E anche allora, ci sarebbe un enorme rischio per la sicurezza se l'app consente ad altre app di accedervi: non saprebbe come mantenere l'accesso root privilegiato separato dal suo normale accesso. Quindi in realtà questo non è davvero fattibile.


1
Per coloro che non sanno cosa sia smali: è il dialetto di assemblaggio per il codice macchina virtuale dalvik di Android e spesso utilizzato nei file dex di reverse engineering. Cosa potrebbe essere un po 'poco chiaro: l'app deve occuparsi di diventare root a livello di programmazione. Ecco perché lo sviluppatore deve includerlo. L'aggiunta a SuperSU non aiuta fino a quando l'app non esercita i suoi diritti di root.
Ce4

Quindi non posso aprire alcuni file di testo di root tramite il mio editor di testo preferito se i programmatori non hanno codificato l'app per accettare l'apertura dei file di root?
AnDroDroo,

1
Assolutamente corretto. Per fare un esempio: se l'app non verrà avviata con root e proverà ad aprire un "file root", otterrà semplicemente un "permesso negato" - poiché l'accesso al file verrà comunque eseguito con l'UID app (esso sarà non chiedere autorizzazioni di superutente per aprirlo). D'altra parte, se l'app viene avviata utilizzando l'UID root (cioè su <app>), accederà a quel file root come root e quindi otterrà l'autorizzazione.
Izzy

Ecco perché non sono stato in grado di utilizzare altri editor di testo per leggere i file di root :).
AnDroDroo,

1
@Izzy AFAIK non è possibile eseguire un'app Android normale con UID root o modificare l'UID di un'app in esecuzione. L'unica cosa che puoi fare è eseguire i programmi da riga di comando con su e quindi eseguire comandi con autorizzazioni di amministratore.
Robert,

1

Ho trovato un modo per aiutarti. L'ho usato per concedere l'accesso root a Tasker .

Se si utilizza l'emulatore di terminale per concedere l'accesso in lettura ma non in scrittura a una cartella mediante

  • su
  • chmod 775 /location/of/folder/

allora il tuo editor di testo sarà in grado di leggere quella directory e quindi se puoi provare a salvare un file nella cartella, proverà a richiedere il permesso di root.

Potrebbe anche dare solo un errore di scrittura.


Tutte le directory /location/of/folder/dalla radice alla cima devono essere leggibili / percorribili. Anche SELinux potrebbe negare l'accesso. Quindi questo approccio è raramente pratico.
Irfan Latif,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.