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 > 1