news 2026/2/3 13:41:30

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/1/29 16:28:36

B样条曲线根据曲率极值进行分段速度规划的方法介绍

在 B 样条曲线轨迹上&#xff0c;已经找到曲率极值点并划分了段落&#xff0c;也做了 S 型速度规划&#xff0c;但极值点附近和段内仍出现规划速度超过曲率允许值的情况。如何调整&#xff1f;核心思路&#xff1a; “极值点速度合规”只是必要条件&#xff0c;不是充分条件&am…

作者头像 李华
网站建设 2026/1/29 11:10:18

免安装自带网卡驱动:驱动总裁,一键修复驱动问题,绿色单文件便携版

驱动总裁是一款专业的驱动管理工具&#xff0c;免安装单文件直接运行&#xff0c;自带网卡驱动无需联网&#xff0c;智能识别硬件并匹配最佳驱动。适用于新装系统、更换硬件、驱动异常等场景,一键解决鼠标卡顿、没有声音、无法联网等驱动问题。 软件下载 驱动工具软件 适用平台…

作者头像 李华
网站建设 2026/1/29 13:03:54

两相液体冷却如何解决热管理危机

数据中心正面临着日益严重的散热危机&#xff0c;因为AI工作负载产生的热量水平已经超出了传统空气冷却系统的处理能力。机架密度现在已超过70千瓦——这在几年前是难以想象的——这一日益严峻的挑战推动了热管理策略的根本性转变。两相液体冷却曾经仅限于专门的高性能计算环境…

作者头像 李华
网站建设 2026/1/29 11:10:19

笑不活!男人假装爱你,7 个 “演技信号” 速查!

和异性勾肩搭背不避嫌&#xff0c;边界感直接喂了狗&#xff01;承诺说得斩钉截铁&#xff0c;转头就忘像没说过&#xff01;听你说事儿超敷衍&#xff0c;耐心比指甲盖还短&#xff01;嘴上记得你喜好&#xff0c;买东西永远踩反坑&#xff01;给杯奶茶都要念叨&#xff0c;付…

作者头像 李华
网站建设 2026/1/30 14:08:29

基础电路记录

电路 倍压整流电路 这种电路可以将低压放大&#xff0c;但是电流比较小 适合&#xff1a;电蚊拍等 二倍压整流电路![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ebc93f2d432744f79fcd2a297bf7d753.png也就是两个电池 三倍压整流电路全波整流桥式整流三极管自激震荡…

作者头像 李华