Eseguire il root del dispositivo virtuale Android con Android 7.1.1


12

Sto usando l'SDK Android ufficiale con l'emulatore Android per creare un Android 7.1.1 virtuale (x86). Ho bisogno di testare una serie di cose, tra le altre, alcune applicazioni richiedono l'accesso root al dispositivo.

Ora so che posso adb roote ho una shell di root, ma ciò non consente alle app che installo di avere accesso come root.

Ho studiato questo argomento per un po 'e ho visto vari approcci. La maggior parte delle risposte non è stata pubblicata molto tempo fa.

Penso che sia abbastanza strano che non ci sia alcuna opzione per attivare e disattivare il root - questo è dopo tutto un SDK.

Come posso eseguire il root di un dispositivo virtuale Android, con Android 7.1.1, consentendo in modo efficace l'accesso root alle app installate?

modifica: preferirei non ricorrere ad emulatori pagati come Genymotion, se possibile.

edit2: questo è solo per uso personale.

edit3: Genymotion sembra essere una soluzione praticabile, come emulatore alternativo. Come mai Android SDK / Emulator non offre tale funzionalità?

edit4: la risposta di xavier_fakerat sembra funzionare perfettamente, tuttavia dalla versione 3.1 di Android Studio questo non sembra essere un rooting permanente. Una volta riavviato l'AVD, l'accesso root è scomparso.

Risposte:


11

Come eseguire il root dell'emulatore Android (Android 7.1.1 / Nougat)

Sono lieto di informare la community di un modo più semplice per eseguire il root dell'emulatore Android (eseguito da Android SDK autonomo)

Requisiti :

Nota: SuperSU è ora obsoleto, ma questo metodo funziona ancora per eseguire il root dell'emulatore e verranno forniti più aggiornamenti per i metodi di rooting più recenti.

Istruzioni

  1. Installa SuperSu.apk

    • Installa innanzitutto l'app SuperSu, trascina e rilascia (se esegui l'ultima versione dell'emulatore o esegui il sideload tramite adb adb –e install supersu.apk)

    • Dopo averlo installato, quando lo esegui mostra una schermata come mostrato di seguito che indica "Non è installato alcun binario SU ...". Questo errore conferma semplicemente che il dispositivo non è ancora stato rootato.

inserisci qui la descrizione dell'immagine

  1. Rendi scrivibile la partizione di sistema dell'emulatore

    • Come suggerisce, dobbiamo autorizzare l'emulatore a scrivere i file di sistema.

    • Digitare il seguente codice per eseguire ciò: emulator.exe –avd {emulator_name} –writable-system

Nota: vai alla cartella degli strumenti in cui è installato Android SDK e apri il prompt dei comandi premendo Maiusc e facendo clic con il tasto destro.

  1. Push su binario nella directory di sistema

    • Estrai il Recovery flashable.zip (contenente i binari di su di diverse architetture)

Importante! Usa solo il binario su che corrisponde alla tua architettura avd, ad esempio x86, arm ecc., E nota il percorso in cui hai estratto questi binari.

  • Assicurati di eseguire adb come root e anche di doverlo rimontare. Basta inserire questi codici

adb root

adb remount

Ora è il momento di spingere il binario su:

Questo è il codice che ho usato con successo :adb -e push C:\%USERPROFILE%\Desktop\rootemu\x86\su.pie /system/bin/su

(non importa la mia posizione specifica di su binary, qualsiasi posizione è ok fintanto che non c'è spazio bianco)

Se fallisce, prova invece a spingere in questa directory /system/xbin/su. Anche per gli emulatori che eseguono Android 5.1 e versioni precedenti utilizzare sue nosu.pie

  1. Modifica le autorizzazioni del binario su

    • Ora facciamo un po 'di modifica delle autorizzazioni di su binary. Dobbiamo farlo nel dispositivo di emulazione tramite adb:

    adb –e shell su root cd /system/bin chmod 06755 su

Importante!! Prendi nota del percorso binario su (il mio è / system / bin)

  1. Impostare la installdirettiva su binario su e impostare adaemon

Digita i codici:

su --install

e per configurare il demone:

su --daemon&

Importante!! Prendi nota della spaziatura

  1. Impostazione di SELinux su Permissive (ovvero disattivazione di SE Linux)

    • Infine, disattiva selinux tramite questo codice:

setenforce 0

È praticamente !! Apri l'app SuperSU e potrebbe essere necessario aggiornare i file binari, puoi utilizzare il metodo normale.

Apri qualsiasi app che richieda autorizzazioni SU solo per ricontrollare e in effetti SuperSU ti chiederà se desideri concederle su autorizzazioni.

inserisci qui la descrizione dell'immagine

Osservazioni

La maggior parte dei contenuti di riferimento era per le versioni precedenti di Android e quindi la ragione di diversi comandi e percorsi che ho modificato.

Riconoscimenti speciali;

Un ringraziamento speciale a Irvin H, il cui tutorial mi ha ispirato a creare questa guida dopo aver fallito innumerevoli volte, e anche dopo aver visto la necessità di molti utenti di eseguire il root anche dei loro emulatori. Spero che anche questo gioverà molto

Irvin H: Rooting dell'emulatore Android - su Android Studio 2.3 ((Android 4.4)

Aggiornare

Come commentato da SaAtomic,

Questo approccio è ancora praticabile con Android Studio 3.0.1

Dopo aver eseguito l'aggiornamento alla versione dell'emulatore 27.2.9e versioni successive, la conservazione della radice è molto più semplice grazie alla funzione snapshot (se la copia del metodo system.img non funziona):

Idealmente è più come ibernare il dispositivo virtuale con la configurazione intatta, quindi tutto viene preservato.

istantanee

Ora puoi salvare più istantanee AVD per una determinata configurazione del dispositivo e scegliere quale delle istantanee salvate caricare quando avvii l'emulatore. Avviare un dispositivo virtuale caricando un'istantanea è molto simile a riattivare un fisico da uno stato di sospensione, anziché avviarlo da uno stato spento.

Ciò implica che l'unico requisito per avviare l'emulatore è l'aggiunta del -writable-systemparametro al normale -avd [avdname]comando dell'emulatore per avviare l'emulatore. (L'esecuzione dell'emulatore solo con l'emulatore -avd [avdname] non avvia la versione / copia rootata o può portare a qualche errore)

Testato a livello di API 22


1
Grazie per la risposta dettagliata Non l'ho ancora provato, ma questa sembra essere una soluzione praticabile!
SaAtomic,

1
@SaAtomic, i tuoi passaggi sono molto utili, più che mai, si può anche eseguire il flashing di Supersu 2.82 / Magisk utilizzando un ripristino personalizzato, ad esempio TWRP, e ottenere facilmente il root .... Funzionano bene su qualsiasi 7.1.1 o 7.1.2 dispositivi in ​​esecuzione .... Grazie ..
Panchajanya Sarkar,

Ho appena provato questo con Android SDK 2.3.3 (AVD Manager) e Pixel virtuale usando Android 7.1.1. Funziona proprio come descritto subito. Grazie!
SaAtomic,

1
Aggiornamento: questo approccio è ancora praticabile con Android Studio 3.0.1
SaAtomic

1
È molto probabile che tu stia usando un'immagine dell'emulatore errata che devi usare Google APIs Intel x86 Atom System Imagepiuttosto cheGoogle Play Intel x86 Atom System Image
xavier_fakerat,
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.