Ich kenne keine Möglichkeit, Dinge /proc
außerhalb des Schreibens eines Moduls (oder eines einfachen Kernel-Codes) hinzuzufügen . Könnte aber einige Dienstprogramme da draußen sein.
Wenn Sie ein Modul erstellen und einfügen können, ist es ziemlich einfach: Sie können einfach einen anderen Symlink erstellen ( /proc/mounts
ist bereits ein Symlink).
Quelle ( 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
(Dies setzt voraus, dass Sie für Ihr aktuelles Linux-System erstellen. Um etwas für Android zu erstellen, lesen Sie bitte: Wie erstellen Sie ein ladbares Kernelmodul für Android? )
Sobald Sie das Modul ( insmod mnt_link.ko
) geladen haben , sollten Sie Folgendes erhalten:
$ 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
Davon abgesehen könnte Ihr Dienstprogramm sehr wohl etwas anderes als diesen Symlink erwarten. (Möglicherweise hängt es davon ab, dass ein anderes Modul geladen wird, um an dieser Stelle Informationen bereitzustellen.)
Verwendung auf eigenes Risiko .