在Android上安装文件系统之前,先在init.rc中安装insmod helloworld

在Android上安装文件系统之前,先在init.rc中安装insmod helloworld,android,init,nexus-7,init.d,insmod,Android,Init,Nexus 7,Init.d,Insmod,我正在尝试修改Nexus 7设备上的init.rc文件,它是根目录。 我想在挂载/userdata/分区之前插入一个简单的helloworld模块。 我尝试过的事情: 从设备中提取boot.img,提取ramdisk,更改init.rc(不起作用),重新创建boot.img(使用mkbootimg工具),然后在设备上再次刷新它 我将为内核编译的hello.ko放在了两个位置:一个是init.rc所在的当前目录,这样我就可以执行类似insmod hello.ko的操作,它就会找到它。其次,我创建了

我正在尝试修改Nexus 7设备上的init.rc文件,它是根目录。 我想在挂载/userdata/分区之前插入一个简单的helloworld模块。 我尝试过的事情:

  • 从设备中提取boot.img,提取ramdisk,更改init.rc(不起作用),重新创建boot.img(使用mkbootimg工具),然后在设备上再次刷新它

  • 我将为内核编译的hello.ko放在了两个位置:一个是init.rc所在的当前目录,这样我就可以执行类似insmod hello.ko的操作,它就会找到它。其次,我创建了/lib/modules/directory并将其放在其中

  • 在我的init.rc中,我将insmod/lib/modules/hello.ko放在开机之后。 我还更改了init.flo.rc,并在/mount_之前和之后放置了insmod,所有这些都装载了文件系统。 但是,我根本看不到我的模块加载。 权限集为0644(我也尝试了0777)

  • 我在/etc/文件夹中创建了init.d,并放置了一个loadmodule.sh,它执行insmod/lib/modules/hello.ko,该模块在引导过程完成后加载

  • 理想情况下,我希望在挂载/userdata/分区之前完成这项工作

    有人能帮我吗


    我的设备是Nexus 7,带有flo_内核和根目录,安装了busybox,等等。

    Android设备上的根文件系统是“只读”的,因此您无法将任何文件挂起根目录树,并期望它继续存在。这与您需要提取ramdisk并重新打包其内容以保持init.rc更改的原因相同;您想在
    /
    找到的任何文件也必须打包到ramdisk中。Android在每次启动时都会从ramdisk中提取root


    该文件的一个更常规的位置是在系统分区上,比如在
    /system/lib

    Ok中。我在init.rc中做了更改,并尝试从/system/lib目录中insmod hello.ko。问题是,我看到模块正在加载,但在文件系统安装之后。即使insmod位于mount_all上方的线路上。但我会继续努力:-)。其次,假设我对recovery.img执行了类似的操作,即修改init.rc脚本,重新打包并刷新恢复,重新启动系统,在恢复日志中看不到加载的模块(甚至连mkdir都看不到)。我错过什么了吗?我需要修改/sbin/recovery/吗?如果需要,有没有办法?谢谢