android系列-init SetupSelinux

1.FirstStageMain

cpp 复制代码
//android10\system\core\init\first_stage_init.cpp

int FirstStageMain(int argc, char** argv) {
    const char* path = "/system/bin/init";
    const char* args[] = {path, "selinux_setup", nullptr};
    execv(path, const_cast<char**>(args));
}

2.main

cpp 复制代码
//android10\system\core\init\main.cpp
int main(int argc, char** argv) {

    if (argc > 1) {

        if (!strcmp(argv[1], "selinux_setup")) {
            return SetupSelinux(argv);
        }
    }
}

3.SetupSelinux

java 复制代码
//android10\system\core\init\selinux.cpp

int SetupSelinux(char** argv) {
    InitKernelLogging(argv); //为啥调用多次

    // Set up SELinux, loading the SELinux policy.
    SelinuxSetupKernelLogging();
    SelinuxInitialize();

    const char* path = "/system/bin/init";
    const char* args[] = {path, "second_stage", nullptr};//4.second_stage
    execv(path, const_cast<char**>(args));
}
相关推荐
爱不离此5 分钟前
安卓和Flutter混合开发打断点
android·flutter
叶羽西15 分钟前
Android15借助Linux proc虚拟文件系统调试用户态实现
android·linux kernel
儿歌八万首1 小时前
Android Studio 调试指南:从入门到进阶
android·ide·android studio
aidou13141 小时前
Android中线程池使用
android·线程池·thread·executorservice·runnable·scheduled·newsinglethread
爱装代码的小瓶子2 小时前
【Linux基础】操作系统下的进程与虚拟内存的关系
android·java·服务器
_李小白2 小时前
【Android 美颜相机】第十九天:GPUImageColorBalanceFilter (色彩平衡滤镜)
android·数码相机
广药门徒2 小时前
WS2812_CONTROL使用手册
android·java·数据库
云游云记2 小时前
php自动加载
android·php·android studio
警醒与鞭策2 小时前
Cursor Agent Skill 原理及LLM , Agent, MCP ,Skill区别
android·unity·ai·cursor
TheNextByte13 小时前
如何将通话记录从Android传输到PC
android