platform: imx6q
os: Android5.1
branch: l5.1.1_2.1.0-ga
在kermel cmdline中我们经常会设置androidboot.xxx比如androidboot.selinux=disabled,
但是代码中并不能搜到对应的内容,其实是init做了统一转换。
init进程中有:
main -> process_kernel_cmdline -> import_kernel_cmdline -> import_kernel_nv:
void import_kernel_cmdline(int in_qemu,
void (*import_kernel_nv)(char *name, int in_qemu))
{
......
/*读取cmdline中的内容*/
fd = open("/proc/cmdline", O_RDONLY);
if (fd >= 0) {
int n = read(fd, cmdline, sizeof(cmdline) - 1);
if (n < 0) n = 0;
......
import_kernel_nv(ptr, in_qemu);
......
}
static void import_kernel_nv(char *name, int for_emulator)
{
......
/*读取所有androidboot.开头的内容*/
} else if (!strncmp(name, "androidboot.", 12) && name_len > 12) {
const char *boot_prop_name = name + 12;
c

在IMX6Q平台运行Android5.1的环境中,针对kernel cmdline中设置的androidboot.xxx参数,如androidboot.selinux=disabled,文章介绍了这些设置在系统启动过程中如何被init进程转换为ro.boot.xxx的形式。init进程通过main函数、process_kernel_cmdline、import_kernel_cmdline和import_kernel_nv等步骤进行这一转换过程。
最低0.47元/天 解锁文章
5986

被折叠的 条评论
为什么被折叠?



