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));
}
相关推荐
AI科技摆渡7 小时前
GPT-5.2介绍+ 三步对接教程
android·java·gpt
csdn12259873367 小时前
Android12 新启动页到底该怎么做
android·启动页
aaajj8 小时前
【Android】关于MY_PACKAGE_REPLACED广播
android
4Forsee9 小时前
【Android】动态操作 Window 的背后机制
android·java·前端
华锋202210 小时前
2025.12首次体验 arkui-x 跨平台开发库
android
allk5511 小时前
Android 性能优化之启动加速:从底层原理到架构治理
android
QuantumLeap丶11 小时前
《Flutter全栈开发实战指南:从零到高级》- 24 -集成推送通知
android·flutter·ios
用户416596736935511 小时前
WebView 滚动失灵?剖析 `scrollBy()` 在现代 Web 布局中的失效陷阱
android
明川12 小时前
Android Gradle学习 - Gradle插件开发与发布指南
android·前端·gradle