修改kernel
检查并修改内核选项
Halium提供了一个脚本检查defconfig的有些选项是否已经打开。找到内核项目里的defconfig,就可以开搞了。
脚本
./check-kernelconfig 你的defconfig -w
这个脚本就会自动勾选上Halium依赖的内核模块。
启动时永远启动到initramfs
Halium-boot是一个initramfs,不能够让内核绕过它。
修改内核文件夹下的 init/initramfs.c
do_skip_initramfs = 1;
改为
do_skip_initramfs = 0;
关闭内核模块的信息校验
这是一个很头疼的问题找了很久都没有答案,体现就是vendor分区和其他的安卓分区都能够正常挂载,但是lxc安卓容器起不来。机器一直卡在第一屏。
修改kernel/module.c 大体在3485行加入如下两句
char *after_dashes;
+ flags |= MODULE_INIT_IGNORE_MODVERSIONS;
+ flags |= MODULE_INIT_IGNORE_VERMAGIC;
err = module_sig_check(info, flags);
打apparmor补丁
Ubuntu Touch 依赖的apparmor较新,需要打backport补丁,具体请看Ubports的github wiki
不同内核版本的补丁不同。