Файловая система только для чтения на Android - PullRequest
190 голосов
/ 20 мая 2011

Я недавно рутировал свой Droid X, и все, кажется, работает отлично.Я сделал некоторые изменения в build.prop, и когда я сделал adb push build.prop /system/, я получил следующую ошибку: failed to copy 'c:\build.prop' to '/system//build.prop': Read-only file system.

Как я могу это исправить?

Ответы [ 22 ]

2 голосов
/ 19 апреля 2018
This worked for me

#Mount as ReadOnly

su -c "mount -o rw,remount /system"
# Change Permission for file
su -c "chmod 777 /system/build.prop" 
#Edit the file to add the property
su -c "busybox vi /system/build.prop"
# Add now
service.adb.tcp.port=5678

# Reset old permissions
su -c "chmod 644 /system/build.prop"

# Mount as readonly again once done
su -c "mount -o ro,remount /system"
2 голосов
/ 05 сентября 2013
mount -o rw,remount /dev/stl12 /system

у меня работает

1 голос
/ 01 февраля 2017

это то же самое, что нужно распаковать и перепаковать initrc.img и отредактировать init файл с кодом mount / system

1 голос
/ 06 мая 2016

Спасибо, Sérgio , за команду "mount" без идеи параметров. Мне нужно сделать adb push в /data/data/com.my.app/lib для некоторого теста и получить сообщение «Файловая система только для чтения».

Команда ls показывает мне:

root@android:/ # ls -l /data/data/com.my.app/<br> drwxrwx--x u0_a98 u0_a98 2016-05-06 09:16 cache drwxrwx--x u0_a98 u0_a98 2016-05-06 09:04 files lrwxrwxrwx system system 2016-05-06 11:43 lib -> /mnt/asec/com.my.app-1/lib

Итак, понятно, что каталог "lib" отделен от других каталогов приложений.

Command mount -o rw,remount /mnt/asec не удалось решить проблему «r / o fs», требуется параметр устройства перед параметром каталога.

Команда "df" также не помогла, но показывает, что мой каталог /mnt/asec/com.my.app-1 находится в отдельной точке монтирования.

Тогда я смотрю на mount и вуаля!

root@android:/ # mount ......... /dev/block/dm-4 /mnt/asec/com.my.app-1 ext4 ro,dirsync,relatime 0 0

Следующие шаги уже описаны выше: перемонтировать в RW, толкнуть и перемонтировать обратно в RO.

1 голос
/ 19 декабря 2015

Добавим немного больше к ответу Яна Бергстрома: поскольку Android - это система на основе Linux, а путь в Linux содержит косую черту (../), при использовании команды push используйте «/» для определения пути назначения в Android-устройство.

Например, команда выглядит так: adb push C: \ Users \ admin \ Desktop \ 1.JPG sdcard / pictures /

Обратите внимание, что здесь, обратная косая черта используется для определения пути к исходному файлу, который должен быть передан с компьютера с Windows, а прямая косая черта используется для определения пути назначения, потому что Android - это система на основе Linux. Вам не нужно выступать в роли пользователя root, чтобы использовать эту команду, а также, она отлично работает на производственных устройствах.

1 голос
/ 19 сентября 2013

Я нашел эту статью в Google и подумал, что добавлю необходимые шаги для Sony Xperia Z (4.2.2).

У Sony есть сторожевой процесс, который обнаруживает, когда вы изменили родля запуска на / и / system (это единственные, которые я пытался изменить) и, возможно, на другие.

Ниже было то, что я запустил, чтобы выполнить изменения, которых я пытался добиться.Я вставил их в окно, потому что удаление бита выполнения из / sbin / ric должно быть выполнено быстро, чтобы остановить его перезапуск.(Я попробовал stop ric; это не работает - хотя это работало на предыдущей версии android на телефоне).

pkill -9 ric; mount -o rw,remount -t rootfs /
chmod 640 /sbin/ric
mount -o rw,remount /system

Я изменил файл hosts здесь, так что это место, где вы делаетеизменения, которые вам нужны в файловой системе.Чтобы оставить вещи такими, какими мы их нашли, сделайте следующее:

mount -o ro,remount /system
chmod 750 /sbin/ric
mount -o ro,remount -t rootfs /

В этот момент ric должен автоматически перезапуститься.(Он перезапустился для меня автоматически.)

1 голос
/ 19 января 2016

Иногда вы получаете сообщение об ошибке, поскольку адресата в телефоне не существует. Например, для некоторого внешнего запоминающего устройства для телефона Android /storage/emulated/legacy вместо /storage/emulated/0.

1 голос
/ 03 сентября 2018

В моем случае я использовал команду adb push ~/Desktop/file.txt ~/sdcard/

Я изменил ее на ~/Desktop/file.txt /sdcard/, и затем она заработала.

Обязательно отключите и снова подключите телефон.

0 голосов
/ 29 марта 2019

Я проверил с помощью эмулятора, и следующее сработало.

  1. adb reboot
  2. adb root && adb remount && adb push ~ / Desktop / hosts / system / etc / hosts

Как уже упоминалось выше, выполните второй шаг за один выстрел.

0 голосов
/ 31 июля 2016

Если при копировании файла, доступного только для чтения, возникла ошибка, попробуйте найти исходный файл в корневом каталоге и изменить его с помощью корневого текстового редактора (предпочтительно) текстового редактора RB, он поставляется с приложением ROM Toolbox.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...