2012-12-10 6 views
10

Sto lavorando su AOSP. Ho aggiunto con successo il mio apk per costruire. Ora voglio dare accesso root alla mia app. Non voglio fornire l'accesso come root ad altre app o installare l'app Superuser nella mia build. Voglio solo aggiungere la mia app per ottenere l'accesso come root. Come posso ottenerlo?Come modificare AOSP per consentire ad app specifiche di ottenere l'accesso come root?

Sono andato attraverso il file disu.c nel percorso sistema/extras/do ma sono in grado di comprendere l'intero codice.

Quando sono andato attraverso il codice, penso che il mio obiettivo può essere raggiunto se potessi modifysu.c per fornire l'accesso root al mio app, compile it and add the binary alla costruzione. Ho ragione?

+1

Non sarebbe un enorme barngate di sicurezza se * qualsiasi * app potesse semplicemente diventare root? –

+0

Se non si sa come fare, è altamente improbabile sapere come controllare il codice per sicurezza prima di farlo girare come root. –

+0

dal codice ho trovato che fornisce l'accesso di root alla shell, allo stesso modo voglio analizzare il file xml in data/system/packages.xml e trovare l'UID della mia app e permetterle di avere accesso root al sistema – Neji

risposta

6

Stai andando nella giusta direzione. È necessario controllare le origini per su.c L'unico problema che si può affrontare è come eseguire il programma come root. Per fare questo è necessario impostare SUID sticky bit per l'eseguibile dell'applicazione. Per fare questo è necessario modificare il file system/core/include/private/android_filesystem_config.h (struttura android_files[]), ad esempio per do il programma si può vedere come è impostato questo bit:

{ 06755, AID_ROOT,  AID_ROOT,  "system/xbin/su" }, 
+1

Questo approccio non funzionerà, poiché le applicazioni Android non hanno eseguibili unici. Invece, sono in definitiva librerie di un eseguibile comune. Zygote forks per creare un processo di applicazione, ma che mai exec(), cambia solo UID e carica una libreria con il codice dell'applicazione. –

+0

Non capisco. Questo è il modo in cui su funziona. Sono riuscito a usare questo approccio più volte nei miei progetti. – Yury

+0

Yury, puoi dirmi quale parte hai aggiornato in entrambi i file per dare accesso root alla tua app ?? – Neji

3

Chainfire ha scritto un a guide on su e come usarlo per le normali applicazioni. Se intendi lavorare con qualcosa di diverso dal tuo telefono, suggerisco che questo è l'approccio che segui.

+0

Non ho alcun file eseguibile. Voglio impostare il permesso di root, su un Apk preinstallato/preinstallato. Cosa dovrei fare? –

Problemi correlati