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));
}
相关推荐
summerkissyou198710 分钟前
android -wifi/蓝牙-常见面试题
android·wifi·bluetooth
XiaoLeisj12 分钟前
Android Activity 页面导航基础:Manifest 声明、Intent 显式/隐式跳转与数据传递
android·java
littlegnal1 小时前
Flutter Android如何延迟加载代码
android·flutter
秋氘渔1 小时前
MySQL EXPLAIN实战:6种索引失效场景验证与优化
android·数据库·mysql·索引
钟睿1 小时前
HarmonyOS花瓣地图自定义点聚合功能
android·harmonyos·arkts
三少爷的鞋1 小时前
Android 协程时代,出现 ReentrantLock 就是架构警报
android
诸神黄昏EX1 小时前
seccomp策略
android
JiaoJunfeng1 小时前
Android AI开发 工具选择
android·ai 开发
summerkissyou19871 小时前
Android-audio-常见面试题
android·audio
程序员阿明2 小时前
spring security6+spring boot 3.5.9最新版本集成oauth2.1
android·spring boot·spring