วิธีการรูทเครื่องจำลอง Android (Android 7.1.1 / Nougat)
ฉันยินดีที่จะแจ้งให้ชุมชนทราบถึงวิธีที่ง่ายกว่าในการรูทเครื่องจำลอง Android (เรียกใช้จาก Android SDK แบบสแตนด์อโลน)
ข้อกำหนด :
หมายเหตุ: ขณะนี้ SuperSU เลิกใช้แล้ว แต่วิธีนี้ยังคงใช้งานได้ในการรูทเครื่องจำลองและจะมีการอัปเดตเพิ่มเติมสำหรับวิธีการรูทที่ใหม่กว่า
คำแนะนำ
ติดตั้ง SuperSu.apk
ติดตั้งแอป SuperSu ในตอนแรกเพียงแค่ลากและวาง (หากใช้รุ่นตัวจำลองล่าสุดหรือ sideload ผ่าน adb ie adb –e install supersu.apk
)
หลังจากติดตั้งแล้วเมื่อคุณเรียกใช้จะแสดงหน้าจอดังที่แสดงด้านล่างเพื่อระบุว่า "ไม่มีการติดตั้ง SU binary .. " ข้อผิดพลาดนี้เพิ่งยืนยันว่าอุปกรณ์ยังไม่ได้รูท
ทำให้พาร์ติชันระบบ 'emulator' สามารถเขียนได้
หมายเหตุ: นำทางไปยังโฟลเดอร์toolsที่ติดตั้ง Android SDK และพร้อมรับคำสั่ง open ที่นั่นโดยกด Shift และคลิกขวา
กด su binary ในไดเรกทอรีระบบ
- แยก Recovery flashable.zip (บรรจุ su binaries ของสถาปัตยกรรมที่แตกต่างกัน)
สำคัญ! ใช้ไบนารี su ที่ตรงกับสถาปัตยกรรม avd ของคุณเช่น x86, arm ฯลฯ .. และจดบันทึกเส้นทางที่คุณแตกไบนารีเหล่านี้
- ตรวจสอบให้แน่ใจว่าคุณกำลังเรียกใช้ adb ในฐานะรูทและคุณจำเป็นต้องติดตั้งใหม่ เพียงแค่ใส่รหัสเหล่านี้
adb root
adb remount
ตอนนี้ถึงเวลาที่จะผลักดันไบนารี su:
นี่คือรหัสที่ฉันใช้สำเร็จ :adb -e push C:\%USERPROFILE%\Desktop\rootemu\x86\su.pie /system/bin/su
(ไม่ต้องกังวลเกี่ยวกับตำแหน่งเฉพาะของฉันคือ su binary ตำแหน่งใด ๆ ก็ใช้ได้ตราบใดที่ไม่มีพื้นที่สีขาว)
/system/xbin/su
หากล้มเหลวลองนี้ผลักดันไปยังไดเรกทอรีนี้แทน นอกจากนี้สำหรับอีมูเลเตอร์ที่ใช้ Android 5.1 และต่ำกว่าให้ใช้su
และไม่ใช้su.pie
เปลี่ยนการอนุญาตของไบนารี su
- ต่อไปเราจะทำการดัดแปลงการอนุญาตของ su binary เราต้องทำสิ่งนี้ในอุปกรณ์จำลองผ่าน adb:
adb –e shell
su root
cd /system/bin
chmod 06755 su
สำคัญ!! จดบันทึกเส้นทางไบนารีของ su (mine is / system / bin)
- การตั้งค่า
install
คำสั่งบน su binary และตั้งค่าdaemon
พิมพ์รหัส:
su --install
และสำหรับการตั้งค่า daemon:
su --daemon&
สำคัญ!! จดบันทึกระยะห่าง
การตั้งค่า SELinux เป็น Permissive (เช่นปิด SE Linux)
- ในที่สุดก็ปิด selinux ผ่านรหัสนี้:
setenforce 0
มันสวยมาก !! เปิดแอป SuperSU และอาจขอให้อัปเดตไบนารีคุณสามารถใช้วิธีการปกติ
เปิดแอพที่ต้องการสิทธิ์ SU เพียงเพื่อตรวจสอบอีกครั้งและแน่นอน SuperSU ถามว่าคุณต้องการให้สิทธิ์ su
หมายเหตุ
เนื้อหาส่วนใหญ่ในการอ้างอิงสำหรับ Android รุ่นเก่าและด้วยเหตุผลของคำสั่งและเส้นทางที่แตกต่างที่ฉันแก้ไข
การยอมรับพิเศษ;
ความกตัญญูพิเศษต่อ Irvin H ซึ่งการสอนเป็นแรงบันดาลใจให้ฉันสร้างคู่มือนี้หลังจากที่ฉันล้มเหลวนับครั้งไม่ถ้วนและหลังจากนั้นก็เห็นว่าผู้ใช้หลายคนจำเป็นต้องลอกเลียนแบบด้วย ฉันหวังว่านี่จะเป็นประโยชน์อย่างมาก
Irvin H: รูทเครื่องจำลอง android –on Android Studio 2.3 ((Android 4.4)
ปรับปรุง
ตามที่แสดงความคิดเห็นโดย SaAtomic
วิธีการนี้ยังคงใช้งานได้กับ Android Studio 3.0.1
หลังจากอัปเกรดเป็นเวอร์ชั่นอีมูเลเตอร์27.2.9
และสูงกว่าตอนนี้การรักษารูตจะทำได้ง่ายขึ้นผ่านคุณสมบัติสแน๊ปช็อต (หากการคัดลอกเมธอด system.img ไม่ทำงาน):
เป็นการดีที่มันจะจำศีลเสมือนอุปกรณ์ที่มีการตั้งค่าเหมือนเดิมดังนั้นทุกอย่างจะถูกเก็บไว้
ภาพรวม
ตอนนี้คุณสามารถบันทึกสแน็ปช็อต AVD หลายชุดสำหรับการกำหนดค่าอุปกรณ์และเลือกสแนปชอตที่บันทึกไว้เพื่อโหลดเมื่อคุณเริ่มโปรแกรมจำลอง การเริ่มต้นอุปกรณ์เสมือนจริงโดยการโหลดสแน็ปช็อตนั้นเหมือนกับการปลุกร่างกายจากสถานะสลีปซึ่งต่างจากการบูตจากสถานะปิด
สิ่งนี้แสดงให้เห็นถึงความต้องการเพียงอย่างเดียวในการเริ่มต้นโปรแกรมจำลองการทำงานคือการเพิ่ม-writable-system
พารามิเตอร์ลงใน-avd [avdname]
คำสั่งโปรแกรมจำลองปกติเพื่อเริ่มโปรแกรมจำลอง (การรันโปรแกรมจำลองเพียงกับโปรแกรมจำลอง - avd [avdname] ไม่ได้เปิดตัวรุ่น / คัดลอกที่รูทหรืออาจทำให้เกิดข้อผิดพลาด)
ทดสอบกับ API ระดับ 22