วิธีการเมานท์ / ระบบเขียนใหม่หรืออ่านอย่างเดียว? (RW / RO)


คำตอบ:


63

มีวิธีการสองสามวิธีที่คุณสามารถติดตั้ง/systemไดเรกทอรีของคุณRW หรือ RO อย่างไรก็ตามจะต้องมีการรูท

วิธีที่ 1:

  1. เชื่อมต่อโทรศัพท์ของคุณกับคอมพิวเตอร์ (ตรวจสอบให้แน่ใจว่าเปิดใช้งานการแก้ไขข้อบกพร่อง USB บนโทรศัพท์ของคุณ)

  2. เปิดCMD/ Terminalบนพีซีของคุณ

    • ของ Windows: CTRL+ แล้วพิมพ์Rcmd

    • CTRLอูบุนตู: ALT+ T+

    • Mac: นำทางไป/Applications/Utilities/และดับเบิลคลิกที่เทอร์มิ

  3. พิมพ์สิ่งนี้:

    1. adb shell
    2. su

    3. เลือกหนึ่ง: (สำหรับการรักษาความปลอดภัย/systemกลับไปที่ RO เมื่อเสร็จสิ้น)

      • ระบบเมานท์ RW: mount -o rw,remount /system
      • ระบบเมา RO: mount -o ro,remount /system

วิธีที่ 2:

  1. เปิดterminalบนโทรศัพท์ Android ของคุณ (ดาวน์โหลดที่นี่ ):
  2. พิมพ์สิ่งนี้ในterminal:

    1. su

    2. เลือกหนึ่ง: (สำหรับการรักษาความปลอดภัย/systemกลับไปที่ RO เมื่อเสร็จสิ้น)

      • ระบบเมานท์ RW: mount -o rw,remount /system
      • ระบบเมา RO: mount -o ro,remount /system

วิธีที่ 3:

หากคุณไม่ต้องการพิมพ์คำสั่งทุกครั้งในเทอร์มินัลฉันได้เขียนแอพที่ออกแบบมาเพื่อคุณ:


Android 2.3

สำหรับผู้ที่ใช้ Android 2.3 และคำสั่งล้มเหลวให้ดูที่คำตอบนี้: https://android.stackexchange.com/a/125437/95577


4
ดูเหมือนว่า (วิธีที่ 1) จะไม่ทำงานบน Android รุ่นใหม่กว่านี้อีก ฉันพยายามที่จะทำมันบน Android emulator ที่ใช้ Android 6 แต่มักจะได้รับข้อผิดพลาด "ติด: ระบบไฟล์แบบอ่านอย่างเดียว" ฉันใช้งาน adb root แล้ว แต่มันก็ไม่ได้ต่างอะไร มีความคิดเกี่ยวกับสิ่งที่สามารถทำได้?
diidu

1
ฉันเข้าใจแล้ว ฉันต้องใช้ตัวเลือกบรรทัดคำสั่งระบบที่เขียนได้เมื่อเริ่มต้นโปรแกรมจำลอง จากนั้นนับ adb แรก remount ดูเหมือนว่าจะประสบความสำเร็จ ดูเหมือนว่า ... ฉันไม่เคยเห็นมันเปลี่ยนไปเป็น rw เลย
diidu

emulator - เขียนได้ยังคงเป็นคำตอบที่ถูกต้อง
Edgar Aroutiounian

"สำหรับผู้ที่ใช้ Android 2.3" - การใช้ถ้อยคำนั้นไม่สามารถสื่อสารได้ดีนัก ฉันคาดเดาว่าคุณหมายถึง> = 2.3 หรือ <= 2.3 (หรือมีโอกาสน้อยกว่าที่แน่นอน 2.3 หากมีข้อผิดพลาดเฉพาะใน 2.3 เท่านั้น) แต่เราไม่ทราบว่าสาเหตุใด
Don Hatch

2

-writable-system สำหรับตัวจำลอง

เมื่อเรียกใช้ตัวจำลองหลังจากบิลด์คุณต้องใช้:

. build/envsetup.sh
lunch aosp_x86_64-eng
emulator -show-kernel -verbose -writable-system

จากนั้นสำหรับการรันในอนาคตคุณต้องคงตัว-writable-systemเลือกไว้มิฉะนั้นการเปลี่ยนแปลงรูปภาพจะไม่ปรากฏให้เห็น:

emulator -show-kernel -verbose -writable-system

-verboseแสดงให้เราเห็นว่าอีมูเลเตอร์เปลี่ยนจากค่าเริ่มต้น-drive:

if=none,index=0,id=system,file=/path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img,read-only

ไปที่:

if=none,index=0,id=system,file=/path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img.qcow2,overlap-check=none,cache=unsafe,l2-cache-size=1048576

ดังนั้นมัน:

  • ลบ ,read-only

  • ใช้แทนsystem-qemu.img.qcow2system-qemu.img

    นี่ก็หมายความว่าการเปลี่ยนแปลงจะสามารถมองเห็นได้ในภายหลังถ้าคุณส่ง-writable-sytemต่อรองเท้าบู๊ตในอนาคตหลังจากทำการเปลี่ยนแปลง!

    เราจะเห็นว่าภาพ qcow2 เป็นเพียงภาพซ้อนทับเล็ก ๆที่ด้านบนของภาพพื้นฐานตั้งแต่:

    qemu-img info /path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img.qcow2
    

    ประกอบด้วย:

    backing file: /path/to/aosp/8.1.0_r60/out/target/product/generic_x86_64/system-qemu.img
    

ตัวจำลอง-helpยังยืนยันสิ่งนี้:

emulator -help

ประกอบด้วย:

-writable-system     make system & vendor image writable after 'adb remount'

adb remount + adb root

ฉันคิดว่านี่เป็นเพียงทางลัดสำหรับmountที่กล่าวถึงในhttps://android.stackexchange.com/a/110928/126934แต่สะดวกมาก:

adb root
adb remount
adb shell

adb help ประกอบด้วย:

 root                     restart adbd with root permissions
 remount
     remount /system, /vendor, and /oem partitions read-write

กู้คืนอิมเมจระบบดั้งเดิม

เช่นเดียวกับ userdata: ลบการ.qcow2ซ้อนทับและสร้างใหม่ด้วยตนเอง: https://stackoverflow.com/questions/54446680/how-to-reset-the-userdata-image-when-building-android-aosp-and- ทำงานมัน-on-the

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.