สำหรับ AVD ที่มี 5.1.1 และ 6.0 ฉันใช้สคริปต์ถัดไปใน 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
ต้องการ UPDATE.zip จาก SuperSU แตกไฟล์เหล่านั้นลงในโฟลเดอร์ใด ๆ สร้างไฟล์ bat ที่มีเนื้อหาด้านบน อย่าลืมระบุสถาปัตยกรรมที่จำเป็นและอุปกรณ์: และset adb=adb -s emulator-5558
set arch=x64
ถ้าคุณเรียกใช้ Android บนหรือเท่ากับ 5.0 การเปลี่ยนแปลงไปset pie=
set pie=.pie
เรียกใช้ คุณได้รับรูทชั่วคราวสำหรับการรันปัจจุบัน
หากคุณมีข้อผิดพลาดเกี่ยวกับพาร์ติชันระบบใหม่แล้วคุณต้องเริ่ม AVD จากบรรทัดคำสั่ง ดูขั้นตอนแรกด้านล่างสำหรับ Android 7
ถ้าคุณต้องการทำให้มันคงอยู่ - อัปเดตไบนารีใน SuperSU และเก็บ system.img จากโฟลเดอร์ temp เป็นการแทนที่ค่าเริ่มต้น system.img
วิธีการแปลงรากชั่วคราวที่เกิดขึ้นในแบบถาวร
อย่างแรก - ไปที่ SuperSu มันมีการอัพเกรดไบนารี่ อัปเดตตามปกติ รีบูตปฏิเสธ
ที่สอง - เฉพาะที่เกี่ยวข้องกับอีมูเลเตอร์ AVD เดียวกัน บรรทัดล่างคือการเปลี่ยนแปลงในภาพระบบจะไม่ถูกบันทึก คุณจำเป็นต้องเก็บรักษาไว้เพื่อตัวเอง
มีคำแนะนำแตกต่างกันไปสำหรับอีมูเลเตอร์ต่าง ๆ
สำหรับ AVD คุณสามารถลองหาไฟล์ระบบชั่วคราวได้บันทึกไว้ที่ใดที่หนึ่งแล้วใช้เมื่อคุณเริ่มโปรแกรมจำลอง
ใน Windows มันตั้งอยู่ในและมีบางสิ่งบางอย่างเช่นชื่อ%LOCALAPPDATA%\Temp\AndroidEmulator
TMP4980.tmp
คุณคัดลอกไปยังอุปกรณ์โฟลเดอร์ AVD ( %HOMEPATH%\.android\avd\%AVD_NAME%.avd\
) system.img
และเปลี่ยนชื่อเป็น
ตอนนี้มันจะถูกใช้เมื่อเริ่มต้นแทนที่จะเป็นแบบปกติ เป็นจริงหากรูปภาพใน SDK ได้รับการอัปเดตรูปภาพนั้นจะมีรูปเก่า
ในกรณีนี้คุณจะต้องลบสิ่งนี้system.img
และทำซ้ำการดำเนินการในการสร้าง
คู่มือรายละเอียดเพิ่มเติมในภาษารัสเซีย: http://4pda.ru/forum/index.php?showtopic=318487&view=findpost&p=45421931
สำหรับ android 7 คุณต้องเรียกใช้ขั้นตอนเพิ่มเติม: 1. ต้องเรียกใช้โปรแกรมจำลองด้วยตนเอง sdk\tools\lib64\qt\lib
ไปที่โฟลเดอร์ SDK เรียกใช้จากโปรแกรมจำลองโฟลเดอร์นี้พร้อมตัวเลือก-writable-system -selinux disabled
เช่นนี้:
F:\android\sdk\tools\lib64\qt\lib>F:\android\sdk\tools\emulator.exe -avd 7.0_x86 -verbose -writable-system -selinux disabled
คุณต้องรีสตาร์ทadbd
จาก root:
adb -s emulator-5554 root
และระบบการติดตั้งใหม่:
adb -s emulator-5554 remount
สามารถบริจาคได้เพียงหนึ่งครั้งต่อตัวจำลองการวิ่ง และ remount อื่นสามารถหยุดโหมดการเขียนได้ ด้วยเหตุนี้คุณไม่จำเป็นต้องเรียกใช้คำสั่งอื่น ๆ ที่มี remount mount -o remount,rw /system
เช่น
ขั้นตอนอื่นยังคงเหมือนเดิม - อัปโหลดไบนารีเรียกใช้ไบนารีเป็นดีมอนและอื่น ๆ
ภาพจาก AVD Android 7 x86 พร้อมรูท:
หากคุณเห็นข้อผิดพลาดเกี่ยวกับ PIE ในการเรียกใช้งานsu
ไบนารี่ - จากนั้นคุณอัปโหลดไปยังอีมูเลเตอร์ไบนารีที่ไม่ถูกต้อง คุณต้องอัปโหลดไบนารีชื่อsu.pie
ภายในเก็บ แต่ในโปรแกรมจำลองจะต้องได้รับการเสนอชื่อเป็นไม่ได้su
su.pie