Як монтувати / перезаписувати систему чи лише для читання? (RW / RO)


55

Як я можу встановити /systemкаталог, перезаписуваний або лише для читання, на своєму телефоні Android?

Відповіді:


63

Існує кілька методів, як можна змонтувати ваш /systemкаталог RW або RO. Однак для цього знадобиться корінь.

Спосіб 1:

  1. Підключіть телефон до комп'ютера. (Переконайтеся, що на вашому телефоні включена налагодження через USB)

  2. Відкрийте CMD/ Terminalна вашому ПК.

    • Windows: CTRL+ R, а потім введіть cmd.

    • Ubuntu: CTRL+ ALT+ T.

    • Mac: Перейдіть до /Applications/Utilities/та двічі клацніть по Terminal .

  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 під управлінням Android 6, але завжди отримую помилку "mount: файлова система лише для читання". Я запустив adb root, але це не має ніякого значення. Будь-яка ідея про те, що можна зробити?
діду

1
Я зрозумів, начебто. Я маю використовувати параметр командного рядка -writable-system при запуску емулятора. Тоді перший переказ adb, здається, успішний. Здається ... Я ще не бачив, щоб це змінилося на rw.
діду

емулятор-пишучий все ще правильна відповідь.
Edgar Aroutiounian

"Для людей з ОС Android 2.3" - це фразування не дуже добре спілкується. Я здогадуюсь, ви маєте на увазі> = 2.3 або <= 2.3 (або, що менш вірогідно, саме 2.3, якщо є конкретна помилка лише в 2.3), але ми не знаємо, що і чому.
Дон Хетч

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.qcow2замість system-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

Відновлення вихідного зображення системи

Те саме, що і для даних користувача: видаліть .qcow2накладку та знову генеруйте її вручну: https://stackoverflow.com/questions/54446680/how-to-reset-the-userdata-image-when-building-android-aosp-and- працює-на-the-the

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.