Android14之selinux报错:ERROR: end of file in comment(一百九十七)

2024-03-20 15:28

本文主要是介绍Android14之selinux报错:ERROR: end of file in comment(一百九十七),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:Android14之selinux报错:ERROR: end of file in comment

2.报错信息

prebuilts/build-tools/linux-x86/bin/m4:device//service.te:8: ERROR: end of file in comment
09:09:18 ninja failed with: exit status 1#### failed to build some targets (5 seconds) ####

3.selinux介绍

  • Android 系统是一个基于 Linux 内核的开源操作系统,广泛应用于各种移动设备。为了保障 Android 系统的安全性和可靠性,SELinux(Security-Enhanced Linux)被引入到 Android 系统中,提供强制访问控制(MAC)的安全策略。
  • SELinux 是一个安全子系统,可以为 Linux 内核提供额外的安全功能。它通过制定一套规则,对系统中的进程、文件、网络接口等资源进行严格的访问控制。在 Android 系统中,SELinux 主要用于限制应用对系统资源的访问,防止恶意应用的攻击和破坏。
  • Android 系统中的 SELinux 主要分为两个层面:内核层面的 SELinux 和用户空间层面的 SELinux。
    -1. 内核层面的 SELinux
    内核层面的 SELinux 主要负责实现强制访问控制策略,对系统资源进行保护。在 Android 系统中,内核层面的 SELinux 主要提供以下功能:
    (1)域和类型:SELinux 将系统中的进程和文件分为不同的域和类型。域表示进程的安全级别,类型表示文件的安全级别。进程和文件之间的操作受到类型转换和域间约束的约束。
    (2)访问控制矩阵:SELinux 通过访问控制矩阵来规定不同域和类型之间的访问权限。访问控制矩阵是一个四元组,包括当前进程的域、目标进程的域、目标文件的类型、操作类型。只有当四元组满足矩阵中的条件时,操作才能被执行。
    (3)安全上下文:SELinux 为每个系统资源(如文件、网络接口等)都设置了一个安全上下文,用于表示资源的安全级别。安全上下文通常由三部分组成:用户标识、角色标识和类型标识。
  1. 用户空间层面的 SELinux
    用户空间层面的 SELinux 主要负责与应用进行交互,实施安全策略。在 Android 系统中,用户空间层面的 SELinux 主要提供以下功能:
    (1)安全策略加载:用户空间层面的 SELinux 负责加载和解析内核传递过来的安全策略。安全策略定义了哪些类型的进程可以访问哪些类型的文件。
    (2)标签管理:用户空间层面的 SELinux 负责对文件的标签进行管理。文件标签表示文件的安全级别,由内核层面的 SELinux 分配。用户空间层面的 SELinux 可以根据应用的需求,对文件标签进行修改。
    (3)审计:用户空间层面的 SELinux 负责记录和审计系统中的安全事件。当发生违反安全策略的行为时,审计日志会被记录下来,以便进行分析和管理。
  • 总之,Android 系统中的 SELinux 是一个重要的安全子系统,通过内核层面和用户空间层面的协同工作,为 Android 系统提供了强制访问控制的安全策略。这有助于保障 Android 系统的安全性和可靠性,防止恶意应用的攻击和破坏。然而,由于 SELinux 的配置和使用较为复杂,如何在保障安全的同时,兼顾用户体验,仍是一个有待改进的问题。

4.解决方案

修改前:

init_daemon_domain(hal_service)
#allow hal_service hal_service_exec:file {read getattr map execute open entrypoint};

修改后:

init_daemon_domain(hal_service)

注意:不能在sepolicy的xxx.te文件尾添加注释。

这篇关于Android14之selinux报错:ERROR: end of file in comment(一百九十七)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/829904

相关文章

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed 文章目录 DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed问题解决办法 问题 使用 DBeaver 连接 MySQL 数据库的时候, 一直报错下面的错误 Public Key Retrieval is

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef‘ of undefined“

vue 父组件调用子组件的方法报错,“TypeError: Cannot read property ‘subDialogRef’ of undefined” 最近用vue做的一个界面,引入了一个子组件,在父组件中调用子组件的方法时,报错提示: [Vue warn]: Error in v-on handler: “TypeError: Cannot read property ‘methods

Open a folder or workspace... (File -> Open Folder)

问题:vscode Open with Live Server 时 显示Open a folder or workspace... (File -> Open Folder)报错 解决:不可以单独打开文件1.html ; 需要在文件夹里打开 像这样

android java.io.IOException: open failed: ENOENT (No such file or directory)-api23+权限受权

问题描述 在安卓上,清单明明已经受权了读写文件权限,但偏偏就是创建不了目录和文件 调用mkdirs()总是返回false. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_E

bash: arm-linux-gcc: No such file or directory

ubuntu出故障重装了系统,一直用着的gcc使用不了,提示bash: arm-linux-gcc: No such file or directorywhich找到的命令所在的目录 在google上翻了一阵发现此类问题的帖子不多,后来在Freescale的的LTIB环境配置文档中发现有这么一段:     # Packages required for 64-bit Ubuntu

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte

Vue3上传图片报错:Current request is not a multipart request

当你看到错误 "Current request is not a multipart request" 时,这通常意味着你的服务器或后端代码期望接收一个 multipart/form-data 类型的请求,但实际上并没有收到这样的请求。在使用 <el-upload> 组件时,如果你已经设置了 http-request 属性来自定义上传行为,并且遇到了这个错误,可能是因为你在发送请求时没有正确地设置

QT 编译报错:C3861: ‘tr‘ identifier not found

问题: QT 编译报错:C3861: ‘tr’ identifier not found 原因 使用tr的地方所在的类没有继承自 QObject 类 或者在不在某一类中, 解决方案 就直接用类名引用 :QObject::tr( )