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));
}
相关推荐
androidwork4 小时前
掌握 Kotlin Android 单元测试:MockK 框架深度实践指南
android·kotlin
田一一一4 小时前
Android framework 中间件开发(二)
android·中间件·framework
追随远方4 小时前
FFmpeg在Android开发中的核心价值是什么?
android·ffmpeg
神探阿航5 小时前
HNUST湖南科技大学-安卓Android期中复习
android·安卓·hnust
千里马-horse7 小时前
android vlc播放rtsp
android·media·rtsp·mediaplayer·vlc
難釋懷7 小时前
Android开发-文本输入
android·gitee
志存高远669 小时前
(面试)Android各版本新特性
android
IT从业者张某某9 小时前
信奥赛-刷题笔记-队列篇-T3-P3662Why Did the Cow Cross the Road II S
android·笔记
未来之窗软件服务10 小时前
Cacti 未经身份验证SQL注入漏洞
android·数据库·sql·服务器安全
BXCQ_xuan10 小时前
handsome主题美化及优化:10.1.0最新版 - 2
android