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));
}
相关推荐
puyaCheer1 天前
Android 打开 在线 pdf 文件
android·pdf
RainbowC01 天前
从Dalvik字节码角度优化安卓编码
android·java/jvm
河铃旅鹿1 天前
Android开发-java版:布局
android·笔记·学习
Meteors.1 天前
安卓进阶——RxJava
android·rxjava
drsonxu1 天前
Android开发自学笔记 --- 构建简单的UI视图
android·compose
onthewaying2 天前
在Android平台上使用Three.js优雅的加载3D模型
android·前端·three.js
带电的小王2 天前
Android设备:无busybox工具解决
android·busybox
一 乐2 天前
个人健康系统|健康管理|基于java+Android+微信小程序的个人健康系统设计与实现(源码+数据库+文档)
android·java·数据库·vue.js·spring boot·生活
百锦再2 天前
第14章 智能指针
android·java·开发语言·git·rust·go·错误
陈老师还在写代码2 天前
android studio 里的 activity 和 layout 是怎么关联上的
android·ide·android studio