news 2026/6/10 14:38:10

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/6/9 21:37:27

DAY 23 常见的特征筛选算法

前言&#xff1a; 在昨天我们提到了如何利用聚类方法来获得新的、信息量更多的特征以此来提升模型的各项性能指标&#xff0c;本文将采用相反的思路&#xff0c;通过一些常见的特征筛选方法减少部分特征以筛选出真正有信息的特征&#xff0c;进而减少计算量、提升模型的精度&am…

作者头像 李华
网站建设 2026/6/10 0:32:57

【Java毕设全套源码+文档】基于springboot的闲置物品共享平台设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/9 20:02:08

TinyMCE5支持pdf书签目录结构导入

企业级富文本编辑器Word粘贴与导入功能解决方案评估报告 一、需求背景分析 作为江苏某集团企业的项目负责人&#xff0c;我们近期在企业网站后台管理系统的文章发布模块中面临以下核心需求&#xff1a; 增加Word粘贴功能&#xff1a;支持从Word复制内容直接粘贴到编辑器&…

作者头像 李华
网站建设 2026/6/10 10:49:51

基于Spring Boot+Vue的大型商场应急预案管理系统

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

作者头像 李华
网站建设 2026/6/10 10:52:00

Flutter深度解析:从架构原理到实战应用的跨平台开发指南

Flutter深度解析&#xff1a;从架构原理到实战应用的跨平台开发指南 一、引言&#xff1a;跨平台开发的革命性选择 在移动开发领域&#xff0c;Flutter凭借其"一套代码多端运行"的特性&#xff0c;已成为全球开发者最受欢迎的跨平台框架。根据JetBrains 2024年开发…

作者头像 李华