Saya memiliki Semua versi SDK Android(1,5 2.3.3), dan saya mencoba banyak metode untuk mendapatkan root di Android emulator. Saya don't menggunakan perangkat Android dan menguji segala sesuatu di emulator(AVD).
Saya perlu untuk mendapatkan akses root di salah satu emulator Android untuk menggunakan 'iptables' dan 'busybox' fungsi. Dan untuk menggunakan iptables saya harus memiliki akses root. Atleast 'su' perintah yang harus dijalankan di terminal emulator.
Saya juga dipasang z4root
aplikasi,
Tapi itu butuh waktu yang sangat lama dan doesn't selesai rooting, dan terjebak. beberapa orang mengatakan bahwa jika kita downgrade sistem di bawah ini RC30, dengan cara ini kita bisa mendapatkan akses root. jika ini benar, maka cara untuk melakukan hal ini? Saya menggunakan Linux dan Windows OS.
Tolong seseorang katakan padaku metode apapun untuk root saya emulator.
Cara root android emulator (diuji pada Android 7.1.1/ Nougat) Persyaratan:
adb -e install supersu.apk
) emulator.exe -avd {emulator_name} -writable-system
Catatan: Arahkan ke alat folder tempat Android SDK diinstal dan membuka command prompt yang ada dengan menekan shift dan klik kanan. adb root
adb remount
Sekarang saatnya untuk mendorong su binary:
Ini adalah kode saya berhasil digunakan: adb -e push C:\Users\User1\Desktop\rootemu\x86\su.pie /system/bin/su
(nevermind tentang saya lokasi tertentu dari su binary, setiap lokasi baik-baik saja selama tidak ada ruang putih)
catatan: Untuk mengetahui bin
atau xbin
dilakukan di konsol sebelumnya: > adb shell
, > ls /system/xbin/su
Jika gagal coba ini mendorong untuk direktori ini bukan /system/xbin/su
. Juga untuk menjalankan emulator android 5.1 dan di bawah ini gunakan su
dan tidak su.pie
adb -e shell su root cd /system/bin chmod 06755 su
Penting!! Perhatikan biner su jalan (tambang /system/bin) install
direktif pada biner su dan mengatur daemon
Ketik kode:
su-install
dan untuk menyiapkan daemon:
su --daemon&
Penting!! Perhatikan jarak setenforce 0
Itu cukup banyak itu!!
Buka aplikasi apapun yang membutuhkan SU izin hanya untuk double check dan memang SuperSU meminta jika anda ingin memberikan itu su izin.
Memiliki akar bertahan update su binary (menggunakan metode Normal), kemudian copy sistem.img dari direktori temp (Users\AppData\Local\Temp\Android Emulator
file tersebut biasanya bernama secara acak e.g 1359g.tmp
dengan ukuran besar) dan mengganti default sistem.img
.
Update:
Saya telah mencatat adalah lebih mudah untuk mendapatkan sistem sementara gambar di Linux, dari Windows. Anda dapat mencoba menggunakan gambar foto.
Dengan munculnya emulator 27.3.x
itu sekarang membuat melestarikan akar jauh lebih mudah melalui fitur snapshot (jika menyalin sistem.img
metode isn't bekerja):
Pilihan itu lebih seperti hibernarig perangkat virtual dengan konfigurasi yang utuh, oleh karena itu segala sesuatu yang diawetkan.
Foto-foto
sekarang Anda dapat menyimpan beberapa AVD foto untuk perangkat tertentu konfigurasi dan memilih mana dari snapshot disimpan ke beban ketika anda mulai emulator. Starting virtual device dengan memuat foto banyak seperti bangun fisik dari keadaan tidur, sebagai lawan untuk booting ini yang didukung negara-off. Ini berarti satu-satunya persyaratan untuk memulai emulator menambahkan
-writable-sistem
parameter normalemulator -avd [avdname]
perintah untuk memulai emulator. (Menjalankan emulator hanya denganemulator -avd [avdname]
doesn't meluncurkan versi berakar/copy atau dapat menyebabkan beberapa kesalahan) Diuji pada API level 22 Juga untuk masalah bootloop lihat posting lainnya: Emulator Android: Cara menghindari boot loop setelah rooting? dan update tersebut. Keterangan Konten yang paling dalam referensi untuk versi android yang lebih tua dan oleh karena itu alasan untuk perintah yang berbeda dan jalan yang saya modifikasi. Ucapan terima kasih;
Berikut ini adalah daftar perintah-perintah yang anda miliki untuk menjalankan sementara emulator berjalan, aku tes ini solusi untuk sebuah avd pada Android 2.2 :
adb shell mount -o rw,remount -t yaffs2 /dev/block/mtdblock03 /system
adb push su /system/xbin/su
adb shell chmod 06755 /system
adb shell chmod 06755 /system/xbin/su
Ini mengasumsikan bahwa biner su terletak di direktori kerja. Anda dapat menemukan su dan superuser di sini : http://forum.xda-developers.com/showthread.php?t=682828. Yang anda butuhkan untuk menjalankan perintah tersebut setiap kali anda memulai emulator. Anda dapat menulis skrip yang meluncurkan emulator dan akar itu.
Untuk AVD dengan 5.1.1 dan 6.0 saya menggunakan script berikutnya di windows:
set adb=adb -s emulator-5558
set arch=x64
set pie=
adb start-server
%adb% root
%adb% remount
rem %adb% shell mount -o remount,rw /system
%adb% shell setenforce 0
%adb% install common/Superuser.apk
%adb% push %arch%/su%pie% /system/bin/su
%adb% shell chmod 0755 /system/bin/su
%adb% push %arch%/su%pie% /system/xbin/su
%adb% shell chmod 0755 /system/xbin/su
%adb% shell su --install
%adb% shell "su --daemon&"
rem %adb% shell mount -o remount,ro /system
exit /b
Perlu UPDATE.zip dari SuperSU. Membongkar mereka untuk setiap folder. Membuat file bat dengan konten di atas. Jangan lupa tentukan diperlukan dan arsitektur perangkat: mengatur adb=adb -s emulator-5558
dan set arch=x 64
. Jika anda menjalankan Android di atas atau sama 5.0, perubahan set pie=
untuk mengatur pie=.pie
. Menjalankannya. Anda mendapatkan root sementara untuk dijalankan saat ini.
Jika anda mendapatkan kesalahan pada remount system partisi maka anda perlu mulai AVD dari baris perintah. Lihat di bawah ini langkah pertama untuk Android 7.
Jika anda ingin membuatnya terus-menerus - update binary SuperSU dan sistem toko.img dari folder temp sebagai ganti dari default sistem.img.
Cara mengkonversi hasil sementara akar pada permanen
Pertama - ia pergi ke SuperSu. Hotel ini menawarkan biner meng-upgrade. Pembaruan dalam cara yang normal. Reboot menolak.
Kedua - hanya relevan untuk emulator. Sama AVD. Intinya adalah bahwa perubahan dalam sistem gambar tidak akan disimpan. Anda perlu menjaga mereka untuk diri mereka sendiri.
Sudah ada petunjuk bervariasi untuk berbagai emulator.
Untuk AVD anda dapat mencoba untuk menemukan file sementara dalam sistem.img, menyimpannya di suatu tempat dan menggunakan ketika anda memulai emulator.
Di Windows hal ini terletak di %LOCALAPPDATA%\Temp\AndroidEmulator
dan memiliki nama sesuatu seperti TMP4980.tmp
.
Anda copy ke folder avd perangkat (%HOMEPATH%\.android\avd\%AVD_NAME%.avd\
), dan berganti nama menjadi sistem.img
.
Sekarang itu akan digunakan di awal, bukannya biasa. Benar jika gambar di SDK diperbarui, itu akan memiliki lama.
Dalam hal ini, anda akan perlu untuk menghapus ini sistem.img
, dan ulangi operasi pada penciptaan.
Lebih rinci manual dalam bahasa rusia: http://4pda.ru/forum/index.php?showtopic=318487&view=findpost&p=45421931
Untuk android 7 anda perlu menjalankan langkah-langkah tambahan:
sdk\tools\lib64\qt\lib
.
Lari dari folder ini emulator dengan opsi -writable-sistem selinux disabled
Seperti ini:F:\android\sdk\tools\lib64\qt\lib>F:\android\sdk\tools\emulator.exe -avd 7.0_x86 -verbose -writable-sistem selinux disabled
adbd
dari akar:adb -s emulator-root 5554
Dan remount system:
adb -s emulator-5554 remount
Hal ini dapat doned hanya sekali per menjalankan emulator. Dan lain remount dapat mematahkan mode menulis. Karena ini, anda tidak perlu menjalankan setiap perintah lain dengan remount, seperti mount -o remount,rw /sistem
.
Lain langkah-langkah yang berkualitas sama - upload biner, menjalankan biner sebagai daemon dan sebagainya.
Gambar dari AVD Android 7 x86 dengan akar:
Jika anda melihat kesalahan tentang PIE di jalankan su
binary - kemudian anda upload ke emulator salah biner. Anda harus meng-upload biner bernama su.pie
di dalam arsip, tetapi pada emulator itu harus dinamai sebagai su
, bukan su.pie
.
Saya percaya bahwa cara termudah adalah untuk membuat alias untuk perintah sh
, misalnya
adb shell
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cd /system/bin
cat sh > su && chmod 4775 su
Diuji pada Emulator Android 3.0 dan lebih tinggi.
Cobalah cara lain untuk memecahkan pertanyaan ini.
Gunakan Genymotion sebagai pengganti Default Android Emulator. It's berakar secara default. It's jauh lebih mudah dan lebih seperti Telepon biasa. It's gratis untuk penggunaan pribadi.
Saya menemukan pertanyaan ini karena saya ingin menginstal Xposed framework pada Default Android Emulator. Instalasi yang membutuhkan root dan flash dengan custom recovery (misalnya TWRP), keduanya sulit untuk Default Emulator Android. Akhirnya saya menggunakan Genymotion dan semua dilakukan dalam hitungan menit.
Aku hanya diganti dan diberikan atribut untuk su ~/Android/Sdk/sistem-gambar/android 22/google_apis/x86/sistem.img dan sekarang pada android 5 saya selalu memiliki akar bahkan untuk sistem yang baru, itu sudah cukup untuk menginstal SuperSu.apk
Android 6 is necessary only
adb root
adb shell
>/system/xbin/su --daemon &
>setenfoce 0
setelah itu, SuperSu.apk melihat akar. Tapi saya tidak update file biner
Di sini pak saya dengan semua yang anda butuhkan. Atau anda dapat menggunakan script ini:
echo on
set device=emulator-5554
set avd_name=
set adb=d:\Poprygun\DevTools\Android\Android-sdk\platform-tools\adb -s %device%
set emulator=d:\Poprygun\DevTools\Android\Android-sdk\emulator\emulator
set arch=x86
set pie=
echo Close all ANDROID emulators and press any key
pause
start %emulator% -avd Nexus_One_API_25 -verbose -writable-system
echo Wait until ANDROID emulator loading and press any key
pause
%adb% start-server
%adb% root
%adb% remount
%adb% shell setenforce 0
%adb% install D:\SuperSU\SuperSU.apk
%adb% push D:\SuperSU\su\%arch%\su.pie /system/bin/su
%adb% shell chmod 0755 /system/bin/su
%adb% push D:\SuperSU\su\%arch%\su.pie /system/xbin/su
%adb% shell chmod 0755 /system/xbin/su
%adb% shell su --install
%adb% shell "su --daemon&"
pause
exit /b
Saya mencoba banyak saran di atas, termasuk SuperSU dan tidak't mendapatkan untuk bekerja tetapi tidak menemukan sesuatu yang jauh lebih sederhana yang bekerja untuk tujuan saya. Dalam kasus saya, saya hanya ingin untuk dapat menjalankan sqlite pada command prompt. Aku hanya berputar sebuah emulator dengan versi lama dari Android (Lollipop) dan mendapat akses root segera.
Saya menggunakan bagian dari metode dari solusi di atas; namun, mereka tidak bekerja sama sekali. Pada versi terbaru dari Andy, ini bekerja untuk saya:
Andy (Root Shell) [Untuk mendapatkan, klik kanan HandyAndy ikon dan pilih Istilah Shell]
Di dalam shell, jalankan perintah ini:
mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system
cd /system/bin
cat sh > su && chmod 4775 su
Kemudian, install SuperSU dan install SU binary. Ini akan menggantikan kode biner SU yang baru saja kita buat. (Opsional) Menghapus SuperSU dan install Superuser dengan CWM. Memasang biner su lagi. Sekarang, akar bekerja!