Eu não conheço uma maneira de adicionar coisas a /proc
fora de escrever um módulo (ou código de kernel simples). Podem ser alguns utilitários lá fora.
Se você pode criar e inserir um módulo, é bem simples: basta criar outro link simbólico ( /proc/mounts
já é um link simbólico).
Origem ( mnt_link.c
):
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/proc_fs.h>
#define MODULE_VERS "0.0"
#define MODULE_NAME "mnt_link"
static int __init init_mnt_link(void)
{
static struct proc_dir_entry *symlink;
symlink = proc_symlink("mnt", NULL, "self/mounts");
if(!symlink)
return -ENOMEM;
return 0;
}
static void __exit cleanup_mnt_link(void)
{
remove_proc_entry("mnt", NULL);
}
module_init(init_mnt_link);
module_exit(cleanup_mnt_link);
MODULE_AUTHOR("U&L");
MODULE_LICENSE("CC-WIKI");
MODULE_DESCRIPTION("Create a /proc/mnt symlink to /proc/self/mounts");
Makefile:
obj-m := mnt_link.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
(Isto pressupõe que você estará construindo para o seu sistema Linux atual. Para construir algo para o Android, você pode consultar: Como você cria um módulo de kernel carregável para Android? .
Depois de carregar o módulo ( insmod mnt_link.ko
), você deve obter:
$ ls -l /proc/m*nt*
lrwxrwxrwx 1 root root 11 Nov 27 22:43 /proc/mnt -> self/mounts
lrwxrwxrwx 1 root root 11 Nov 27 22:43 /proc/mounts -> self/mounts
Dito isto, essa utilidade de vocês pode muito bem estar esperando algo mais do que esse link simbólico. (Talvez dependa de outro módulo ser carregado para fornecer alguma informação nesse local.)
Use por sua conta e risco .