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

55

Как я могу установить /systemкаталог перезаписываемый или только для чтения на моем телефоне Android?

Томас Вос
источник

Ответы:

63

Есть несколько способов, как вы можете смонтировать /systemкаталог RW или RO. Однако для этого потребуется root.

Способ 1:

  1. Подключите телефон к компьютеру. (Убедитесь, что на вашем телефоне включена отладка по USB)

  2. Откройте CMD/ Terminalна вашем компьютере.

    • Windows: CTRL+ R, затем введите cmd.

    • Ubuntu: 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 под управлением Android 6, но всегда получаю сообщение об ошибке «mount: Файловая система только для чтения». Я запускаю adb root, но это не имеет значения. Есть идеи, что можно сделать?
Diidu
1
Я понял, вроде. Я должен использовать опцию командной строки -writable-system при запуске эмулятора. Тогда первый adb remount кажется успешным. Кажется ... Я еще не видел, чтобы он изменился на rw.
Diidu
Эмулятор-запись все еще правильный ответ.
Эдгар Арутюнян
«Для людей, работающих под управлением 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- обкатки он-на

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
источник