Android14之Selinux报错:unknown type qemu_device at token (一百八十三)

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

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

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

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

欢迎关注Android系统攻城狮

1.前言

本篇目的:在编译Android automotive车载系统时,遇到一个这样的报错,不清楚怎么引入的,但是解法很简单,分享给大家。

2.SELinux介绍

  • Android平台的SELinux(Security Enhanced Linux)是一种基于Linux内核的安全增强技术,由美国国家安全局(NSA)发起并得到Red Hat、Tresys等公司的支持。SELinux的主要目的是在Linux操作系统上实现强制访问控制(Mandatory Access Control,MAC),以提高系统的安全性。
  • 在Android系统中,SELinux的实现称为SEAndroid。从Android 4.4版本开始,SEAndroid正式启用,为Android设备提供了更加严格的安全保障。SELinux与传统的自主访问控制(Discretionary Access Control,DAC)不同,它不仅限制了进程对资源的访问权限,还限制了进程对资源的访问方式。通过这种方式,SELinux可以有效地防止恶意程序对系统资源的滥用,提高系统的安全性。
  • SELinux在Android设备中主要有三种操作模式:禁用(Disabled)、宽容(Permissive)和强制(Enforcing)。在禁用模式下,SELinux不发挥作用,系统恢复到传统的DAC安全模型;在宽容模式下,SELinux会对违反策略的行为进行警告,但仍然允许访问资源;在强制模式下,SELinux会严格实施安全策略,对违反策略的行为进行阻止。
  • Android中的SELinux策略配置是通过.te文件来实现的。.te文件包含了SELinux的策略规则,用于定义进程、对象和权限之间的关系。例如,某个应用程序需要读取系统属性,那么就需要在相应的.te文件中添加允许规则。通过编写.te文件,开发者可以为应用程序配置所需的安全策略,以确保应用程序在运行时能够正常访问系统资源。
  • 当SELinux策略规则发生冲突时,通常需要进行特殊处理。例如,某个应用程序需要写入/proc目录下的文件,但SELinux策略中没有对应的允许规则,那么该应用程序将无法写入文件。在这种情况下,可以通过修改.te文件或使用audit2allow工具来生成相应的允许规则,以解决冲突。
  • 总之,Android平台下的SELinux是一种重要的安全技术,它通过强制访问控制策略,提高了Android设备的安全性。通过编写.te文件和合理配置SELinux策略,开发者可以确保应用程序在运行时能够安全地访问系统资源。在实际开发过程中,了解和掌握SELinux的相关知识和技术,对于保障Android应用程序的安全性具有重要意义。

3.报错解决:

<1>.报错源码

device/generic/car/emulator/usbpt/bluetooth/btusb/sepolicy/domain.te

allow domain qemu_device:chr_file rw_file_perms;get_prop(domain, vendor_qemu_prop)
get_prop(domain, vendor_build_prop)

<2>.解决

修改一:

device/generic/car/emulator/usbpt/bluetooth/btusb/sepolicy/file.te

+ type qemu_device, dev_type, mlstrustedobject;
+ type vendor_qemu_prop, dev_type, mlstrustedobject;
+ type vendor_build_prop, dev_type, mlstrustedobject;

注意:每次编译只会出现一个报错,所以,出现一个报错,加一个type类型。

修改二:

system/sepolicy/contexts/Android.bp

//del begin
// file_contexts_test {
//     name: "plat_file_contexts_test",
//     srcs: [":plat_file_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// file_contexts_test {
//     name: "system_ext_file_contexts_test",
//     srcs: [":system_ext_file_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// file_contexts_test {
//     name: "product_file_contexts_test",
//     srcs: [":product_file_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// file_contexts_test {
//     name: "vendor_file_contexts_test",
//     srcs: [":vendor_file_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// file_contexts_test {
//     name: "odm_file_contexts_test",
//     srcs: [":odm_file_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// hwservice_contexts_test {
//     name: "plat_hwservice_contexts_test",
//     srcs: [":plat_hwservice_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// hwservice_contexts_test {
//     name: "system_ext_hwservice_contexts_test",
//     srcs: [":system_ext_hwservice_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// hwservice_contexts_test {
//     name: "product_hwservice_contexts_test",
//     srcs: [":product_hwservice_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// hwservice_contexts_test {
//     name: "vendor_hwservice_contexts_test",
//     srcs: [":vendor_hwservice_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// hwservice_contexts_test {
//     name: "odm_hwservice_contexts_test",
//     srcs: [":odm_hwservice_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// property_contexts_test {
//     name: "plat_property_contexts_test",
//     srcs: [":plat_property_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// property_contexts_test {
//     name: "system_ext_property_contexts_test",
//     srcs: [
//         ":plat_property_contexts",
//         ":system_ext_property_contexts",
//     ],
//     sepolicy: ":precompiled_sepolicy",
// }// property_contexts_test {
//     name: "product_property_contexts_test",
//     srcs: [
//         ":plat_property_contexts",
//         ":system_ext_property_contexts",
//         ":product_property_contexts",
//     ],
//     sepolicy: ":precompiled_sepolicy",
// }// property_contexts_test {
//     name: "vendor_property_contexts_test",
//     srcs: [
//         ":plat_property_contexts",
//         ":system_ext_property_contexts",
//         ":product_property_contexts",
//         ":vendor_property_contexts",
//     ],
//     sepolicy: ":precompiled_sepolicy",
// }// property_contexts_test {
//     name: "odm_property_contexts_test",
//     srcs: [
//         ":plat_property_contexts",
//         ":system_ext_property_contexts",
//         ":product_property_contexts",
//         ":vendor_property_contexts",
//         ":odm_property_contexts",
//     ],
//     sepolicy: ":precompiled_sepolicy",
// }// service_contexts_test {
//     name: "plat_service_contexts_test",
//     srcs: [":plat_service_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// service_contexts_test {
//     name: "system_ext_service_contexts_test",
//     srcs: [":system_ext_service_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// service_contexts_test {
//     name: "product_service_contexts_test",
//     srcs: [":product_service_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// service_contexts_test {
//     name: "vendor_service_contexts_test",
//     srcs: [":vendor_service_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// service_contexts_test {
//     name: "odm_service_contexts_test",
//     srcs: [":odm_service_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// vndservice_contexts_test {
//     name: "vndservice_contexts_test",
//     srcs: [":vndservice_contexts"],
//     sepolicy: ":precompiled_sepolicy",
// }// fuzzer_bindings_test {
//     name: "fuzzer_bindings_test",
//     srcs: [":plat_service_contexts"],
// }
//del end

修改三:

build/make/core/main.mk

- check_missing_required_modules := true
- check_missing_required_modules := false

<3>.编译sepolicy

# make sepolicy -j20

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/668898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在bash或脚本中,如何并行执行命令或任务(命令行、parallel、make)

最近要批量解压归档文件和压缩包&#xff0c;所以就想能不能并行执行这些工作。因为tar自身不支持并行解压&#xff0c;但是像make却可以支持生成一些文件&#xff0c;所以我才有了这种想法。 方法有两种&#xff0c;第一种不用安装任何软件或工具&#xff0c;直接bash或其他 …

QXlsx Qt操作excel(2)

QXlsx 是一个用于处理Excel文件的开源C库。它允许你在你的C应用程序中读取和写入Microsoft Excel文件&#xff08;.xlsx格式&#xff09;。该库支持多种操作&#xff0c;包括创建新的工作簿、读取和写入单元格数据、格式化单元格、以及其他与Excel文件相关的功能。 关于QXlsx的…

动力电池智能工厂数字孪生可视化,助力新能源汽车产业数字化转型

动力电池智能工厂数字孪生可视化&#xff0c;助力新能源汽车产业数字化转型。随着新能源汽车产业的快速发展&#xff0c;动力电池作为新能源汽车的核心组成部分&#xff0c;其生产制造的数字化转型也成为了行业关注的焦点。动力电池智能工厂数字孪生可视化平台作为一种新型的技…

Python中的HTTP代理服务器和客户端的区别与联系

在Python编程中&#xff0c;当我们涉及到网络通信&#xff0c;尤其是HTTP请求时&#xff0c;经常会听到“HTTP代理服务器”和“客户端”这两个词。它们在网络世界中扮演着不同的角色&#xff0c;但又有着紧密的联系。 区别 首先&#xff0c;我们来谈谈它们的区别。 HTTP代理…

阿里云服务器多少钱一年?4核16G10M带宽26元/月

2024年2月阿里云服务器租用价格表更新&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核…

vue基本语法总结大全

vue基本语法 文章目录 vue基本语法基本用法内容渲染指令属性绑定指令使用js表达式事件绑定指令条件渲染指令v-else和v-else-if指令列表渲染指令v-for中的key 组件化开发安装详细讲解 第三方组件1. 组件间的传值2. element-ui介绍3. 组件的使用4. 图标的使用 Axios网络请求1. Ax…

15:矩阵按键

矩阵按键 1、 矩阵按键的原理图分析2、 矩阵键盘的工作过程3、编程实战3.1、先通过LED灯进行按键测试3.2、通过静态数码管显示键值 1、 矩阵按键的原理图分析 (1)横向和纵向分割 (2)按键两端分别接不同的IO引脚 (3)按键的物理作用不变&#xff1a;按下接通电路&#xff0c;弹起…

ArcGIS Pro 按照字段进行融合或拆分

ArcGIS Pro 按字段融合 在ArcGIS Pro中&#xff0c;通过使用“融合”工具可以轻松地合并具有相同字段的图层。 步骤一&#xff1a;打开ArcGIS Pro 启动ArcGIS Pro应用程序&#xff0c;确保您已经登录并打开您的项目。 步骤二&#xff1a;添加图层 将包含相同字段的图层添加到…

06-Java适配器模式 ( Adapter Pattern )

原型模式 摘要实现范例 适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁 适配器模式涉及到一个单一的类&#xff0c;该类负责加入独立的或不兼容的接口功能 举个真实的例子&#xff0c;读卡器是作为内存卡和笔记本之间的适配器。您将内…

CodeMeter强化了ETM WinCC 开放架构平台的许可与安全保护

在面对日益复杂的网络安全威胁时&#xff0c;ETM professional control采取了前瞻性的措施&#xff0c;选择了业界领先的威步CodeMeter技术&#xff0c;以保护其标志性的WinCC开放架构平台。这一选择不仅体现了ETM对安全的高度重视&#xff0c;也标志着其在保障关键基础设施运营…

《大魔界村》中的人物性格——亚瑟

《大魔界村》作为一款经典的街机动作游戏,其主角——勇敢的骑士亚瑟,以其独特的性格特点和坚定的信念,在玩家心中留下了深刻印象。本文将深入探讨亚瑟这一角色的性格特质,通过分析他在游戏中的行为表现及决策过程,展现他身上的勇气、坚韧与智慧三大要点。 一、无畏挑战的…

如何配置SSH实现无公网ip远程连接访问Deepin操作系统

&#x1f4d1;前言 本文主要是配置SSH实现无公网ip远程连接访问Deepin操作系统的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️** &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &…

fastapi 链接数据库,并报错问题

还有一个重点需要下载 pip install sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simple pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simplefrom fastapi import FastAPI import uvicorn from student.urls import student_id_mysql from sqlalchemy …

【Linux】文件周边002之初步理解文件管理(打开的文件)

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.&#xff08;打开…

leetcode(滑动窗口)3.无重复字符的最长字串(C++详细题解)DAY2

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 示…

【算法分析与设计】无重复的最长子串

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 示例 1: 输入: s "abcabcbb" 输…

九州金榜|如何做好家庭教育

孩子的家庭教育是每个家庭都要做的&#xff0c;也是每个家长面临的事情&#xff0c;同样不同的家庭教育教育出来的孩子性格也各不相同&#xff0c;有时候家长看别别人家的孩子品学兼优非常羡慕&#xff0c;很多家长会把问题归结到孩子身上&#xff0c;其实有没有想过是家庭教育…

机器学习算法与Python实战 | 2024年吴恩达预测:关于AI,这些事未来十年不会变

本文来源公众号“机器学习算法与Python实战”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;2024年吴恩达预测&#xff1a;关于AI&#xff0c;这些事未来十年不会变 2024年&#xff0c;AI的发展会有怎样的改变&#xff1f; 在吴…

CSDN文章导出工具

源码地址&#xff1a; github:https://github.com/lishuangquan1987/CSDNExportergitee:https://gitee.com/lishuangquan1987/csdnexporter 介绍 最近有CSDN博客导出来的需求&#xff0c;翻看了很多开源工具&#xff0c;都不能用或者不好用&#xff0c;于是决定自己做一个。…

支持534种语言,开源大语言模型MaLA-500

无论是开源的LLaMA 2还是闭源的GPT系列模型&#xff0c;功能虽然很强大&#xff0c;但对语言的支持和扩展比较差&#xff0c;例如&#xff0c;二者都是以英语为主的大模型。 为了提升大模型语言的多元化&#xff0c;慕尼黑大学、赫尔辛基大学等研究人员联合开源了&#xff0c;…