news 2026/4/23 13:36:44

SELinux 介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SELinux 介绍

SELinux

SEAndroid:Security-Enhanced Android
SEAndroid 是 SELinux(Security-Enhanced Linux) 在 Android 系统中的实现,SELinux 是一个强制访问控制(MAC)系统,SEAndroid 将其引入以加强 Android 的安全性,主要通过限制应用和系统组件的权限范围,减少安全漏洞被利用的可能性。

SELinux:Security-Enhanced Linux。

总结:selinux 是用来做权限控制的

SELinux 体验

现在,模拟工作中的一个小需求,对一个设备节点进行操作

#include <unistd.h> #include <sys/types.h> #include<stdio.h> #include <string.h> #include <sys/stat.h> #include <fcntl.h> #include <errno.h> #define LOG_TAG "HELLO" #include <log/log.h> int main(int argc, char *argv[]) { int ret = -1; int fd; char *devpath = "/dev/sedemo_dev_dzz"; char *data = "This is a test content for sedemo\r\n"; fd = open(devpath, O_RDWR); if(fd < 0) { ALOGE("open device:%s fail!", devpath); return -1; } ret = write(fd, data, strlen(data)); if(ret < 0) { ALOGE("write data fail"); return -1; } while(1){ usleep(1000); } close(fd); return 0; }

这段代码,看起来应该是没啥难度,对 dev 文件下面的 sedemo_dev 进行写入一句话。
如果你感觉到有难度,你需要去补一下linux 文件操作相关知识了!!!

源码有了,我们还需要编写一个编译文件,才能编译出能放到android 虚拟机上运行的可执行文件。

LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES:= \ main.c LOCAL_SHARED_LIBRARIES := \ libcutils \ liblog \ LOCAL_CFLAGS += -Wno-unused-parameter LOCAL_PROPRIETARY_MODULE:= true LOCAL_MODULE:= sedemo_dzz include $(BUILD_EXECUTABLE)

源代码命名为:main.c, 编译脚本:Android.mk,统一放在

aosp/device/dzz_test_se/src


进行编译:

source build/envsetup.sh lunch sdk_phone_x86_64-eng mmm device/dzz_test_se/src/ -j12


编译成功,push 到android 虚拟机上运行;push 前先解释一下Android.mk脚本

LOCAL_SHARED_LIBRARIES := \ libcutils \ liblog \ 意思是: libcutils:Android C 工具库,提供基本系统功能 liblog:Android 日志库,用于日志输出 LOCAL_PROPRIETARY_MODULE:= true 标记为专有模块(vendor 模块),也就是编译在 vendor 目录下 LOCAL_MODULE:= sedemo_dzz 作用:定义模块名称


接下来push 到android 虚拟机上运行

adb push out/target/product/emulator_x86_64/vendor/bin/sedemo_dzz /vendor/bin/


报错意思是:/vendor 分区在运行的 Android 系统中是只读的,重新挂载 /vendor 为可读写即可

adb root adb remount


登录android 设备查看

上面代码是对char *devpath = "/dev/sedemo_dev_dzz";这个目录下的设备节点进行操作,我们还需在这个目录下传教一个文件

运行可执行程序

runcon u:r:sedemo_dt:s0 /vendor/bin/sedemo

其实是用 /vendor/bin/sedemo 运行的,前面加那些内容是我发现高版本的android ,竟然能突破se 规则,然后加的 runcon u:r:sedemo_dt:s0,低版本安卓和高版本安卓加上这句话直接运行,也会出现如下:

意思就是没有权限,于是我询问了deepseek,找到了解决方向

这下我终于明白了,开头selinux的作用了。

接下来开始 SELinux 相关的学习~~~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 22:54:43

HTTP协议在C#大文件上传中如何处理重试逻辑?

毕业设计&#xff1a;企业级文件传输系统方案探索 在毕业设计选题阶段&#xff0c;我结合自身兴趣与计算机专业所学&#xff0c;确定了企业级文件传输系统这一课题。近期&#xff0c;我在网上搜索相关资料、参与论坛交流、加入多个QQ群和微信群&#xff0c;但收获不尽如人意。很…

作者头像 李华
网站建设 2026/4/21 2:33:19

基于Spring Boot+Vue的大型超市前后台系统

目录 项目介绍 演示视频 系统展示 代码实现 推荐项目 项目开发总结 为什么选择我 源码获取 博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领…

作者头像 李华
网站建设 2026/4/23 10:15:16

RN 图像处理(裁剪、压缩、滤镜)性能很差怎么办?

[toc] 在 React Native 项目里&#xff0c;只要碰到“图片处理”四个字&#xff0c;十有八九跑不掉一句话&#xff1a;卡。尤其是裁剪、压缩、批量处理大图的时候&#xff0c;JS 线程基本“当场升天”&#xff0c;UI 直接卡住不动。 为什么 React Native 在图片处理上这么吃力&…

作者头像 李华
网站建设 2026/4/21 0:32:36

锐角三角函数学习笔记(1)

一、定义 sin&#xff08;正弦&#xff09;对边/斜边 cos&#xff08;余弦&#xff09;邻边/斜边 tan&#xff08;正切&#xff09;对边/邻边 cot&#xff08;余切&#xff09;邻边/对边 变形&#xff1a; 对边sin斜边 邻边cos斜边 对边tan邻边二、特殊角的三角函数 ①30 sin30…

作者头像 李华