Ответы:
Есть несколько способов, как вы можете смонтировать /system
каталог RW или RO. Однако для этого потребуется root.
Подключите телефон к компьютеру. (Убедитесь, что на вашем телефоне включена отладка по USB)
Откройте CMD
/ Terminal
на вашем компьютере.
Windows: CTRL+ R, затем введите cmd
.
Ubuntu: CTRL+ ALT+ T.
Mac: /Applications/Utilities/
перейдите к терминалу и дважды щелкните его .
Введите это:
adb shell
su
Выберите один: (для обеспечения безопасности /system
вернуться к RO, когда закончите)
mount -o rw,remount /system
mount -o ro,remount /system
terminal
на своем телефоне Android (скачать здесь ):Введите это в terminal
:
su
Выберите один: (для обеспечения безопасности /system
вернуться к RO, когда закончите)
mount -o rw,remount /system
mount -o ro,remount /system
Если вы не хотите вводить команду каждый раз в терминале, я написал приложение, предназначенное для вас:
Если вы работаете с Android 2.3 и команда не работает, посмотрите на этот ответ: https://android.stackexchange.com/a/125437/95577
-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- обкатки он-на