使用 audit2allow 工具添加SELinux权限的方法

1. audit2allow工具的使用
audit2allow 命令的作用是分析日志,并提供允许的建议规则或拒绝的建议规则。
1.1 audit2allow的安装
sudo apt-get install policycoreutilssudo apt install policycoreutils-python-utils
1.2 auditallow的命令
| 命令 | 含义 | 用法 |
| -v | --version | 显示程序的版本号并退出 |
| -h | --help | 显示此帮助消息并退出 |
| -b | --boot | 自最近启动的audit的审计消息,与-i冲突 |
| -a | --all | 从审计的log中读取输入,与-i冲突 |
| -i<输入文件> | --input | 从输入文件中读取输入 |
1.3 audit2allow的使用
第一步:从android log中获取对应的avc log文件
直接抓取avc log命令如下:
adb logcat –b all | grep avc >avc_log.txt
也可以从抓取到的android log中,筛选导出avc log
一般avc_log.txt内容如下:
06-25 04:39:15.811 4534 4534 I auditd : type=1400 audit(0.0:122): avc: denied { execute } for comm="gripper-backgro" path="/data/user/10/tv.danmaku.bilibilihd/lib-main/libijkffmpeg.so" dev="dm-39" ino=37776 scontext=u:r:platform_app:s0:c522,c768 tcontext=u:object_r:app_data_file:s0:c522,c768 tclass=file permissive=0
第二步:处理log文件
此时需要将生成的log文件最后一行未打全的log进行删除
第三步:使用audit2allow工具生成te文件
在ubuntu终端下使用audit2allow工具,直接分析log生成对应的te文件
audit2allow –i avc_log.txt >avc_log.te
生成的avc_log.te对应的内容例如下:
#============= platform_app ==============allow platform_app app_data_file:file execute;
第四步:根据抓取的生成的te文件确定需要添加的文件名
此时========platform_app.te========
表示需要在platform_app.te这个文件下添加提示的te语句
allow platform_app app_data_file:file execute;
第五步:编译打包
重新对Android源代码进行编译打包生成img文件
第六步:将ubuntu下编译的镜像刷写进入机器中
android侧常用刷写指令
fastboot devices:列出所有已经进入fastboot模式的设备
fastboot erase system 擦除设备指定的分区
fastboot flash system system.img 将指定的image文件刷入设备的指定分区
fastboot reboot:重启设备
第七步:验证
开机启动后,找到之前报avc错platform_app对应的进程名:tv.danmaku.bilibilihd
ps -A|grep tv.danmaku.bilibilihd
然后抓取avclog,自己添加的te语句对应的avc log是否出现,若未出现,则修改成功。
logcat -b all --pid=3584|grep avc
或者直接看对应的程序有没有正常运行,若正常运行,则修改成功
2.audit2allow无法使用的问题
2.1 问题
在使用audit2allow工具自动生成avc语句时,可能会出现此问题
$ audit2allow -i avc_audit.txt > avc_audit.te
ValueError: You must specify the -p option with the path to the policy file.The above exception was the direct cause of the following exception:Traceback (most recent call last):File "/usr/bin/audit2allow", line 381, in <module>app.main()File "/usr/bin/audit2allow", line 365, in mainaudit2why.init()
SystemError: <built-in function init> returned a result with an error set

2.2 解决方案
对/usr/bin/audit2allow文件进行修改,具体修改方案如下:
$ cd /usr/bin/
$ sudo gedit audit2allow//把文件的第362行到365行注销掉,保存即可

2.3 验证
重新执行audit2allow –i avc_denied.txt >avc_deniedte.te语句,若正常生成te,则修改成功
相关文章:
使用 audit2allow 工具添加SELinux权限的方法
1. audit2allow工具的使用 audit2allow 命令的作用是分析日志,并提供允许的建议规则或拒绝的建议规则。 1.1 audit2allow的安装 sudo apt-get install policycoreutilssudo apt install policycoreutils-python-utils 1.2 auditallow的命令 命令含义用法-v--ve…...
一文弄懂FPGA
一、FPGA简介 什么是FPGA? FPGA(Field-Programmable Gate Array)是一种可编程逻辑器件,可以在现场通过硬件描述语言(HDL)进行配置。它具有高度的灵活性和并行处理能力,广泛应用于通信、计算、…...
Rust 中使用 :: 这种语法的几种情况
文章目录 1. 访问模块成员:2. 访问关联函数或静态方法:3. 访问 trait 的关联类型或关联常量4. 指定泛型类型参数 1. 访问模块成员: mod utils {pub fn do_something() { /* ... */ } }let result utils::do_something();2. 访问关联函数或静…...
Ruby langchainrb gem and custom configuration for the model setup
题意:Ruby 的 langchainrb gem 以及针对模型设置的自定义配置 问题背景: I am working in a prototype using the gem langchainrb. I am using the module assistant module to implemente a basic RAG architecture. 我正在使用 langchainrb 这个 ge…...
高校新生如何选择最优手机流量卡?
一年一度的高考已经结束了,愿广大学子金榜题名,家长们都给孩子准备好了手机,那么手机流量卡应该如何选择呢? 高校新生在选择手机流量卡时,需要综合考量流量套餐、费用、网络覆盖、售后服务等多方面因素,以下…...
QT QML 生成二维码
Qt生成二维码 C++版 文章目录 步骤1:安装libqrencode步骤2:创建C++类生成二维码步骤3:将C++类与QML绑定步骤4:创建QML界面步骤5:配置项目文件总结在Qt QML中实现二维码生成,可以使用一个C++库来生成二维码,然后将生成的二维码图像传递给QML进行显示。一个常用的二维码生…...
IDEA中Maven--下载安装自己适配的版本---理解
Maven解释: Maven是一个强大的项目管理工具和构建工具,主要用于Java项目。它能够帮助开发团队管理项目的依赖、构建项目、发布文档和报告,并能够自动化许多重复的任务。 Maven的主要作用包括: 依赖管理:Maven能够管理…...
【osgEarth】Ubuntu 22.04 源码编译osgEarth 3.5
下载源代码 git clone --depth1 https://dgithub.xyz/gwaldron/osgearth -b osgearth-3.5 下载子模块 git submodule update --init 如果下载不过来,就手动修改下.git/config文件,将子模块的地址替换成加速地址 (base) yeqiangyeqiang-Default-string…...
ASP.NET Core 6.0 使用 资源过滤器和行为过滤器
1.AOP 面向切面编程 概念 AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在通过预定义的模式(即“切面”)对程序的横切关注点进行模块化。横切关注点是一个在多个应用模块中出现的概念,例如日志记录、事务管理、安全检查等。AOP允许开发者定义“切面”…...
电脑屏幕花屏怎么办?5个方法解决问题!
“我刚刚打开电脑就发现我的电脑屏幕出现了花屏的情况。这让我很困惑,我应该怎么解决这个问题呢?求帮助。” 在这个数字时代的浪潮中,电脑早已成为我们生活中不可或缺的一部分。然而,当你正沉浸在紧张的游戏对战中,或是…...
git 初基本使用-----------笔记
Git命令 下载git 打开Git官网(git-scm.com),根据自己电脑的操作系统选择相应的Git版本,点击“Download”。 基本的git命令使用 可以在项目文件下右击“Git Bash Here” ,也可以命令终端下cd到指定目录执行初始化命令…...
Redis-数据类型-Bit的基本操作-getbit-setbit-Bitmap
文章目录 0、Bitmaps(位图)1、查看redis是否启动2、通过客户端连接redis3、切换到db7数据库4、设置(或覆盖)一个键(key)的值(value)5、获取存储在给定键(key)…...
统信UOS上鼠标右键菜单中添加自定义内容
原文链接:统信UOS上鼠标右键菜单中添加自定义内容 Hello,大家好啊!今天给大家带来一篇关于在统信UOS桌面操作系统上鼠标右键菜单中添加自定义内容的文章。通过自定义鼠标右键菜单,可以大大提升日常操作的效率和便捷性。本文将详细…...
学习入门 chatgpt原理 一
学习文章:人人都能看懂的chatGpt原理课 笔记作为学习用,侵删 Chatph和自然语言处理 什么是ChatGpt ChatGPT(Chat Generative Pre-training Transformer) 是一个 AI 模型,属于自然语言处理( Natural Lang…...
生命在于学习——Python人工智能原理(4.7)
四、Python的程序结构与函数 4.4 函数 函数能将代码划分为若干模块,每一个模块可以相对独立的实现某一个功能,函数有两个主要功能,分别是降低编程难度和实现代码复用,函数是一种功能抽象,复用它可以将一个复杂的大问…...
经典游戏案例:仿植物大战僵尸
学习目标:仿植物大战僵尸核心玩法实现 游戏画面 项目结构目录 部分核心代码 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using Random UnityEngine.Random;public enum…...
[Day 18] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
強化學習與生成對抗網絡(GAN) 引言 強化學習 (Reinforcement Learning, RL) 和生成對抗網絡 (Generative Adversarial Networks, GANs) 是現代人工智能中的兩大關鍵技術。強化學習使得智能體可以通過與環境交互學習最佳行動策略,而生成對抗網絡則通過兩個相互競爭…...
【Mac】DMG Canvas for mac(DMG镜像制作工具)软件介绍
软件介绍 DMG Canvas 是一款专门用于创建 macOS 磁盘映像文件(DMG)的软件。它的主要功能是让用户可以轻松地设计、定制和生成 macOS 上的安装器和磁盘映像文件,以下是它的一些主要特点和功能。 主要特点和功能 1. 用户界面设计 DMG Canva…...
RAG分块方法 从固定大小到自然语言处理分块——深入研究文本分块技术
发掘文本分块-准确的搜索结果和更智能的语言模型背后的秘诀,通过了解如何有效地分块文本,我们可以改进索引文档、处理用户查询和利用搜索结果的方式。准备好揭开文本分块的秘密了吗? 一、了解分块 分块是一种旨在嵌入尽可能少噪音的内容,同…...
FFmpeg 系列
📚 此篇文章是先引入ffmpeg的概念以及主要的功能,后面会根据每一个特点进行详解,喜欢ffmpeg的可以持续关注。 ffmpeg是什么? FFmpeg 是一个开源的跨平台音视频处理工具,它可以用来录制、转换以及流化音视频内容。具体…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...
麒麟系统使用-进行.NET开发
文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的,如果需要进行.NET开发,则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET,所以要进…...
HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...
【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项
一、条形码识别改名使用教程 打开软件并选择处理模式:打开软件后,根据要处理的文件类型,选择 “图片识别模式” 或 “PDF 识别模式”。如果是处理包含条形码的 PDF 文件,就选择 “PDF 识别模式”;若是处理图片文件&…...
