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));
}
相关推荐
lichong95112 分钟前
Android studio 修改包名
android·java·前端·ide·android studio·大前端·大前端++
爱学习的大牛1232 小时前
MVVM 架构 android
android·mvvm
alexhilton5 小时前
理解retain{}的内部机制:Jetpack Compose中基于作用域的状态保存
android·kotlin·android jetpack
꒰ঌ 安卓开发໒꒱6 小时前
Mysql 坏表修复
android·mysql·adb
_李小白6 小时前
【Android Gradle学习笔记】第八天:NDK的使用
android·笔记·学习
袁震6 小时前
Android-Compose 列表组件详解
android·recyclerview·compose
2501_916007477 小时前
提升 iOS 26 系统流畅度的实战指南,多工具组合监控
android·macos·ios·小程序·uni-app·cocoa·iphone
zh_xuan7 小时前
android 利用反射和注解绑定控件id和点击事件
android·注解·反射·控件绑定
这个杀手不太累10 小时前
Android ProcessLifecycleOwner
android·lifecycle
SRC_BLUE_1711 小时前
NSSCTF - Web | 【第五空间 2021】pklovecloud
android·前端