news 2026/7/7 9:37:05

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/7/6 18:03:57

Selinux Context上下文

Selinux Context上下文 前面有提到主体&#xff0c;客体&#xff0c;te文件 等等。 也就是说某个进程&#xff08;主体&#xff09;对&#xff08;客体&#xff09;资源会有&#xff08;哪些&#xff09;权限&#xff08;动作&#xff09; 这里需要搞明白&#xff1a; 谁是主体…

作者头像 李华
网站建设 2026/7/7 10:44:04

告别信息传递繁琐步骤!批量查询+手机条形码一键发,1次搞定全传递

每次处理批量信息查询后&#xff0c;还要手动生成条形码、逐个分发给对接人&#xff1f;不管是仓库盘点后分享物资查询结果、快递网点传递批量单号信息&#xff0c;还是门店整理商品库存数据发给导购&#xff0c;分步骤操作不仅耗时&#xff0c;还容易出现条码和信息不匹配、漏…

作者头像 李华
网站建设 2026/7/7 7:48:44

TinyMCE6处理站群平台word文档转存

企业网站后台Word/公众号内容导入功能集成项目记录 1. 项目需求分析 作为广西某集团公司的项目负责人&#xff0c;我们近期需要为企业网站后台管理系统的文章发布模块增加以下功能&#xff1a; 核心需求&#xff1a; Word粘贴功能&#xff1a;支持从Word复制内容粘贴到编辑…

作者头像 李华
网站建设 2026/7/7 18:53:03

2025.12.13少年宫mqtt舵机实验教程

内容1组装部分所需材料将上述零件卡在底板中。用两个螺丝拧紧&#xff0c;注意螺丝孔位与上图保持一致。将一个舵机与该零件合并倒扣在底板上加螺丝拧紧、将与上图相同的三角零件按照该方式用螺丝拧紧效果如图另一半相同将顶板卡在第二个舵机上然后如此卡在之前的安装的部件中然…

作者头像 李华
网站建设 2026/7/7 9:14:23

Python毕业设计题目:基于机器学习的校园二手物品交易平台设计与实现

一、项目背景与意义随着高校学生流动性增强&#xff0c;闲置书籍、电子产品、生活用品等二手物品堆积问题日益突出。一方面&#xff0c;学生希望快速处置闲置物品回笼资金&#xff1b;另一方面&#xff0c;新生或有需求的学生渴望以低价获取高性价比物品。传统线下交易模式存在…

作者头像 李华
网站建设 2026/7/7 18:04:40

山楂莓矮砧密植:水肥一体化系统的铺设要点指南

认识山楂莓矮砧密植山楂莓矮砧密植&#xff0c;简单来说就是选用矮化品种&#xff08;Dwarf variety&#xff09;&#xff0c;通过科学增加种植密度来提高产量的创新栽培模式。就像在有限的果园空间里&#xff0c;巧妙布局更多果树&#xff0c;让每寸土地都释放最大潜能。这种栽…

作者头像 李华