Когда я открываю эмулятор терминала и запускаю mount
команду, это указывает, что корневая файловая система моего устройства Android ( /
) имеет тип файловой системы rootfs
. Что такое rootfs
? Могу ли я писать на него? Сохранятся ли мои изменения даже после выключения устройства?
Примечание. Если вы являетесь разработчиком ПЗУ для Android и хотите добавить файлы в свое ПЗУ rootfs
, обратитесь к соответствующему вопросу Unix.SE.
rootfs
?Это initramfs
. По сути, это предварительно заполненный RAM-диск. Он предварительно заполняется некоторым содержимым во время загрузки, обычно из cpio
архива, который был скомпилирован в ядро.
Один из способов внести изменения в ваш файл rootfs
— это распаковать cpio
архив, внести свои изменения и снова запаковать архив. Ваше устройство почти наверняка должно быть рутировано, прежде чем вы сможете это сделать. Кроме того, вам понадобятся необходимые инструменты.
Кроме того, вы можете внести изменения в rootfs
копию, загруженную в оперативную память; но, если вы это сделаете, есть четыре ошибки.
Сначала вы должны получить root права на свое устройство.
Затем вы должны перемонтировать файловую систему для чтения и записи.
Не пишите слишком много в rootfs
; если вы это сделаете, вы займете слишком много оперативной памяти, и ваше устройство будет работать медленнее.
Самая большая проблема заключается в том, что созданные вами файлы исчезнут при выключении или перезагрузке. Пожалуйста, продолжайте читать.
Нет. Если вы создаете или изменяете файлы в rootfs
, ваши изменения будут отменены при завершении работы или перезагрузке.
Храните свои файлы где-нибудь под /storage
или /data
или /system
вместо этого. Вы можете выбрать любой из трех. Где-то ниже /storage
, вероятно, лучше, так как это наиболее распространенный выбор.
/
?Я не знаю.
Я подозреваю, что ответ таков: Android — это не полноценный дистрибутив Linux. Он не включает полный glibc, он, вероятно, не полностью совместим с LSB, и он не чувствует себя обязанным предоставлять тонкости, которые предоставляет большинство дистрибутивов Linux (например, корневую файловую систему на диске).
В другом месте Жиль пишет:
Большинство настольных Linux-систем имеют небольшой файл initramfs, содержащий ровно столько программ и файлов конфигурации, сколько нужно для монтирования настоящей корневой файловой системы, которая затем монтируется на
/
, заменяя файл initramfs. Android, как и некоторые встроенные системы Linux, хранит initramfs смонтированными навсегда. initramfs Android содержит только файлы/init
конфигурацииadbd
и несколько файлов конфигурации.
Использованная литература:
БелыйЗимаВолк
boot.img
для портирования ПЗУ? : ответы там объясняют, как получить и отредактироватьboot.img
файл, что позволяет постоянно изменять содержимое корневого каталога устройства.Ирфан Латиф