解决JNI操作内核节点出现写操作失败的问题
Android 9.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问。
本文将以用户自定义的内核节点/dev/wf_bt为例,手把手教会读者如何在JNI层获得对该节点的访问权限。
一、找到进程名
找到需要访问该内核节点的进程(process),笔者自己这个节点由system_server进程来访问
二、修改file_contexts.te
打开文件device\mediatek\xxx[芯片]\sepolicy\basic\file_contexts.te或file_contexts
仿照这个文件里的写法,为你的节点定义一个你想要的名字:
- dev/tegra.* u:object_r:video_device:s0
- /dev/tf_driver u:object_r:tee_device:s0
- /dev/tty u:object_r:owntty_device:s0
- /dev/tty[0-9]* u:object_r:tty_device:s0
- # We add here
- /dev/wf_bt u:object_r:wf_bt_device:s0
wf_bt_device是自定义,其他左右两边的内容都和上面的范例一致。
三、修改device.te
打开文件\device\mediatek\xxx[芯片]\sepolicy\basic\device.te
仿照这个文件里的写法,将刚刚第二步写的wf_bt_device声明为dev_type:
- # Device types
- type device, dev_type, fs_type;
- type alarm_device, dev_type, mlstrustedobject;
- type adb_device, dev_type;
- type ashmem_device, dev_type, mlstrustedobject;
- type audio_device, dev_type;
- type binder_device, dev_type, mlstrustedobject;
- type block_device, dev_type;
- # We add here
- type wf_bt_device, dev_type;
四、修改进程te文件
AndroidL/android/external/sepolicy/目录下很多.te文件都是以进程名来结尾的,比如有针对surfaceflinger进程的surfaceflinger,有针对vold进程的vold.te,
刚刚从第一步得到,这个节点是由system_server进程来访问,所以,我们找到system_server.te打开,加入允许这个进程对/dev/wf_bt的读写权限,
- # Read/Write to /proc/net/xt_qtaguid/ctrl and and /dev/xt_qtaguid.
- allow system_server qtaguid_proc:file rw_file_perms;
- allow system_server qtaguid_device:chr_file rw_file_perms;
- # chr_file表示字符设备文件,如果是普通文件用file,目录请用dir
- # rw_file_perms代表读写权限
- // 允许system_server进程拥有对wf_bt_device的这个字符设备的读写权限;
- //第一种写法
- allow system_server wf_bt_device:chr_file rw_file_perms;
- //第二种写法
- allow system_server wf_bt_device:file {open write read};
第五步:全编烧录
相关文章:
解决JNI操作内核节点出现写操作失败的问题
Android 9.0下,因为采取了SEAndroid/SElinux的安全机制,即使拥有root权限,或者对某内核节点设置为777的权限,仍然无法在JNI层访问。 本文将以用户自定义的内核节点/dev/wf_bt为例,手把手教会读者如何在JNI层获得对该节…...
纵然是在产业互联网的时代业已来临的大背景下,人们对于它的认识依然是短浅的
纵然是在产业互联网的时代业已来临的大背景下,人们对于它的认识依然是短浅的。这样一种认识的最为直接的结果,便是我们看到了各式各样的产业互联网平台的出现。如果一定要找到这些互联网平台的特点的话,以产业端为出发点,无疑是它…...
干翻 nio ,王炸 io_uring 来了 !!(图解+史上最全)
大趋势:全链路异步化,性能提升10倍 随着业务的发展,微服务应用的流量越来越大,使用到的资源也越来越多。 在微服务架构下,大量的应用都是 SpringCloud 分布式架构,这种架构总体上是全链路同步模式。 全链…...
ur3+robotiq ft sensor+robotiq 2f 140+realsense d435i配置rviz,gazebo仿真环境
ur3robotiq ft sensorrobotiq 2f 140realsense d435i配置rviz,gazebo仿真环境 搭建环境: ubuntu: 20.04 ros: Nonetic sensor: robotiq_ft300 gripper: robotiq_2f_140_gripper UR: UR3 reasense: D435i 通过下面几篇博客配置好了ur3、力传…...
ASP.NET Core MVC 项目 AOP之Authorization
目录 一:说明 二:传统鉴权授权的基本配置 三 :角色配置说明 四:策略鉴权授权 五:策略鉴权授权Requirement扩展 总结 一:说明 鉴权:是指验证你是否登录,你登录后的身份是什么。…...
智能新冠疫苗接种助手管理系统
项目背景介绍 近几年来,网络事业,特别是Internet发展速度之快是任何人都始料不及的。目前,由于Internet表现出来的便捷,快速等诸多优势,已经使它成为社会各行各业,甚至是平民大众工作,生活不可缺少的一个重…...
Python+Selenium4元素交互1_web自动化(5)
目录 0. 上节回顾 1. 内置的等待条件 2. 元素属性 1. Python对象属性 2. HTML元素属性 3. 元素的交互 1. 输入框 2. 按钮 3. 单选框和复选框 0. 上节回顾 DEBUG的方式:JS断点 Python断点编程语言提供的等待方式:sleepselenium提供的等待方式&…...
2023双非计算机硕士应战秋招算法岗之深度学习基础知识
word版资料自取链接: 链接:https://pan.baidu.com/s/1H5ZMcUq-V7fxFxb5ObiktQ 提取码:kadm 卷积层 全连接神经网络需要非常多的计算资源才能支撑它来做反向传播和前向传播,所以说全连接神经网络可以存储非常多的参数,…...
Python opencv进行矩形识别
Python opencv进行矩形识别 图像识别中,圆形和矩形识别是最常用的两种,上一篇讲解了圆形识别,本例讲解矩形识别,最后的结果是可以识别出圆心,4个顶点,如下图: 左边是原始图像,右边是识别结果,在我i5 10400的CPU上,执行时间不到8ms。 识别出结果后,计算任意3个顶点…...
网安入门必备的12个kali Linux工具
kali Linux工具帮你评估 Web 服务器的安全性,并帮助你执行黑客渗透测试。 注意:这里不是所提及的所有工具都是开源的。 1. Nmap Nmap ( 网络映射器 )是一款用于 网络发现 和 安全审计 的 网络安全 工具. 主机发现,端口扫描,版本…...
【测试面试】头条大厂,测试开发岗真实一面。你能抵得住吗?
目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 小吴: 现…...
分享app的测试技巧
前言 今天笔者想和大家来唠唠app测试,现在的app有非常的多,这些app都是需要经过测试之后才能发布到应用市场中,app已经成为了我们日常生活中不可或缺的一部分了,但它的功能必须强大,才能受到消费者的重视,…...
HTML 基础【快速掌握知识点】
目录 一、什么是HTML? 二、HTML的发展史 三、HTML5的优势 四、HTML基本结构 五、DOCTYPE声明 六、title标签 七、meta标签 八、标题标签 九、段落标签 十、换行标签 十一、水平线标签 十二、字体样式标签 十三、特殊符号 十四、图像标签 十五、链接标…...
SpringBoot入门(二)
这里写目录标题一、SpringBoot整合Junit1.1 搭建SpringBoot工程1.2 引入starter-test起步依赖1.3 编写类1.4 测试二、SpringBoot整合mybatis2.1 搭建SpringBoot工程2.2 引入mybatis起步依赖,添加驱动2.3 编写DataSource和MyBatis相关配置2.4 定义表和实体类2.5 编写…...
大数据|大数据基础(概念向)
目录 📚大数据概念 🐇常见数据存储单位 🐇大数据的特点(5V) 🐇大数据 VS 数据库 🌟数据库 🌟大数据 📚大数据业务分析基本步骤 🐇收集数据 Ǵ…...
若依配置教程(九)若依前后端分离版部署到服务器Nginx(Windows版)
搭建若依环境 要部署到服务器上,首先要在本地运行若依系统 文章目录搭建若依环境后端部署1.在application.yml中修改后台端口,这里默认是8080。2.在application-druid.yml中修改正式环境数据库。3.后端打包部署前端部署下载安装NginxNginx代理配置启动N…...
【仔细理解】计算机视觉基础1——特征提取之Harris角点
Harris角点是图像特征提取中最基本的方法,本篇内容将详细分析Harris角点的定义、计算方法、特点。 一、Harris角点定义 在图像中,若以正方形的小像素窗口为基本单位,按照上图可以将它们划分三种类型如下: 平坦区域:在任…...
Elasticsearch7.8.0版本进阶——近实时搜索
目录一、近实时搜索的概述1.1、按段(per-segment)搜索1.2、更轻量的方式搜索二、为什么Elasticsearch是 近 实时搜索三、如何解决索引了一个文档然后却没有搜到四、哪种情况不需要每秒刷新4.1、使用 Elasticsearch 索引大量的日志文件4.2、使用 Elastics…...
OAK相机深度流探测草莓距离
编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 ▌前言 Hello,大家好,这里是OAK中国,我是助手…...
文件共享服务器(CIFS)的相关知识及指令
文件共享服务器(CIFS) 微软开发的 共享服务器概述 通过网络提供文件共享拂去,提供文件下载和上传服务(类似于FTP服务器) 创建共享 通过本地登录时,仅受NTFS权限的控制通过网络访问时,受共享…...
OpenClaw+千问3.5-35B-A3B-FP8:电商商品图文描述自动生成
OpenClaw千问3.5-35B-A3B-FP8:电商商品图文描述自动生成 1. 为什么选择这个组合? 去年双十一前,我负责的跨境电商项目遇到了一个棘手问题:我们需要在两周内为300多款新品生成中英双语的商品详情页。传统做法是设计师做图、文案写…...
从CS231N作业到你的实验:Tiny-ImageNet数据集预处理与加载的保姆级指南
从CS231N作业到实验落地:Tiny-ImageNet全流程实战指南 当你第一次在CS231N课程作业中看到Tiny-ImageNet时,可能既兴奋又困惑。这个被设计为ImageNet轻量版的数据集,既保留了大规模图像分类的核心挑战,又避免了处理数百万张图像的计…...
OpenClaw调试技巧:Qwen3-4B任务失败时的5种排查方法
OpenClaw调试技巧:Qwen3-4B任务失败时的5种排查方法 1. 为什么需要关注OpenClaw与Qwen3-4B的调试 上周我尝试用OpenClaw自动化处理一批技术文档,结果任务执行到一半就卡住了。屏幕上那个转圈的小图标仿佛在嘲笑我的天真——原来给AI助手下个指令就能坐…...
乐鑫ESP模组实战选型指南:从参数到场景的深度匹配
1. 乐鑫ESP模组家族概览 第一次接触乐鑫ESP模组时,面对官网琳琅满目的型号列表,我完全摸不着头脑。直到在智能家居项目中实际对比了五个系列的产品后,才真正理解每个系列的定位差异。乐鑫的模组产品线就像智能手机市场,从入门级到…...
RNA-seq数据归一化实战:DESeq2 median of ratios方法详解与避坑指南
RNA-seq数据归一化实战:DESeq2 median of ratios方法详解与避坑指南 当你第一次看到RNA-seq数据时,可能会被那些庞大的数字矩阵吓到。每个数字代表着一个基因在特定样本中的表达量,但这些数字真的可以直接比较吗?答案是否定的。就…...
全差分运放设计实战:如何用CMFB解决高速电路中的共模问题?
全差分运放设计实战:CMFB在高速电路中的共模控制艺术 在模拟集成电路设计中,全差分运放因其优异的抗噪声性能和更高的信号摆幅而备受青睐。然而,这种架构面临着一个独特的挑战——共模电平的稳定控制。当信号频率进入GHz范围时,传…...
OpenClaw对接Qwen3.5-9B实战:5步完成本地AI助手部署
OpenClaw对接Qwen3.5-9B实战:5步完成本地AI助手部署 1. 为什么选择OpenClawQwen3.5-9B组合? 去年冬天第一次听说OpenClaw时,我正在为重复性的文件整理工作头疼。作为技术博主,每天要处理几十个Markdown草稿、截图和参考文献&…...
拓扑数据分析(TDA)全解析:当AI为科学注入“形状”灵魂
拓扑数据分析(TDA)全解析:当AI为科学注入“形状”灵魂 引言 在人工智能(AI)赋能科学研究的浪潮中,一种名为拓扑数据分析(Topological Data Analysis, TDA)的技术正悄然改变我们理解高…...
网站 SEO 检测报告如何与网站分析数据进行对比分析_网站 SEO 检测报告中的页面结构分析有什么用
网站 SEO 检测报告如何与网站分析数据进行对比分析 在当今的互联网时代,网站的成功与否往往取决于其在搜索引擎上的排名。因此,网站 SEO(搜索引擎优化)检测报告和网站分析数据的对比分析显得尤为重要。通过对比分析,可…...
从二层到三层:华为交换机vlanif接口的进阶用法与避坑指南
从二层到三层:华为交换机vlanif接口的进阶用法与避坑指南 在网络设备管理中,华为交换机的vlanif接口(也称为SVI,Switch Virtual Interface)是连接二层与三层功能的关键桥梁。对于已经掌握基础配置的网络管理员而言&…...
