Відповіді:
Існує кілька методів, як можна змонтувати ваш /systemкаталог RW або RO. Однак для цього знадобиться корінь.
Підключіть телефон до комп'ютера. (Переконайтеся, що на вашому телефоні включена налагодження через USB)
Відкрийте CMD/ Terminalна вашому ПК.
Windows: CTRL+ R, а потім введіть cmd.
Ubuntu: CTRL+ ALT+ T.
Mac: Перейдіть до /Applications/Utilities/та двічі клацніть по Terminal .
Наберіть це:
adb shellsu
Виберіть один: (для безпеки, /systemповернення до RO після завершення)
mount -o rw,remount /systemmount -o ro,remount /systemterminalна своєму телефоні Android (завантажте тут ):Наберіть це в terminal:
su
Виберіть один: (для безпеки, /systemповернення до RO після завершення)
mount -o rw,remount /systemmount -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- працює-на-the-the