当前位置: 首页 > news >正文

2024-11-6----Android 11(全志713m)----- 关于添加 Selinux 权限

需求

节点:

/sys/devices/platform/motor0/motor_ctrl

上层 APP 使用 JNI 需要对该节点进行 echo 的操作,操作失败。

添加前的验证工作

adb 进去验证下,如下图所示:
在这里插入图片描述
发现权限不够。su 以后再操作是OK的,如下图:
在这里插入图片描述

添加前的修改

为防止报权限错误,直接给777,因为该节点是驱动生成的,所以在代码中修改

--- a/H713-v1.3/longan/kernel/linux-5.4/drivers/misc/gpio-motor/motor-control.c
+++ b/H713-v1.3/longan/kernel/linux-5.4/drivers/misc/gpio-motor/motor-control.c
@@ -268,7 +268,7 @@ static ssize_t motor_ctrl_store(struct device *dev, struct device_attribute *attstatic struct device_attribute motor_ctrl_attr = {.attr = {.name = "motor_ctrl",
-               .mode = 0664,
+               .mode = 0777,},.show = motor_ctrl_show,.store = motor_ctrl_store,

从之前的验证工作可以知道,adb shell 进去 su 以后才可以成功echo节点,所以把APP进行系统签名,这样便会有系统级别的权限,也就是su权限

LOCAL_CERTIFICATE := platform

完整文件如下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := FloatService
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := platform
LOCAL_SRC_FILES := $(LOCAL_MODULE).apkLOCAL_PREBUILT_JNI_LIBS := \lib/libcptp_float_motor.soinclude $(BUILD_PREBUILT)

这样子结点有777权限,然后APP又具有系统权限,如果还发现APP无法echo成功,adb shell进去

setenforce 0

再用APP操作一次!发现成功了!所以就是 Selinux 权限 不够的问题。

抓AVC权限log

APP 进行操作前

adb logcat -c

清除多余的log,然后进行 APP 操作,发现抓到的log报:

 type=1400 audit(0.0:111): avc: denied { read write } for name="motor_ctrl" dev="sysfs" ino=27911 scontext=u:r:system_app:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=0

一般都是缺什么加什么,网上也有根据报的log,添加权限的办法,我这里就不具体述说,我直接在system.te里边加

allow system_app sysfs:file { read write };

报违反谷歌权限,如果不需要CT


http://www.mrgr.cn/news/67610.html

相关文章:

  • 数据结构 ——— 链式二叉树oj题:相同的树
  • 详解I2S协议
  • # Ubuntu 达人九步养成记(1)
  • 关于wordpress instagram feed 插件 (现更名为Smash Balloon Social Photo Feed)
  • vue3项目中实现el-table分批渲染表格
  • vue前端面试题及答案2024
  • Call For Speaker! |2025中国国际音频产业大会(GAS)演讲嘉宾征集令启动!
  • Java基础使用①Java特点+环境安装+IDEA使用
  • 奇妙的交互,真的可以实现CanOpen转Profinet吗?
  • 欧协杯:射手缺席,紫百合远征塞浦路斯
  • java冒泡排序
  • 隐世绝秘天书,千门八将到底讲了什么,你之所以不成功,是没有人告诉你真相,你想知道吗?
  • 保护核心数据-----日记审计
  • 解决微信小程序电脑能正常使用,手机端无法正常访问的问题
  • Ubuntu24.04网络异常与应对方案记录
  • 前端面试题
  • Multi‐modal knowledge graph inference via media convergenceand logic rule
  • 《Java核心技术 卷I》对象克隆
  • 三周精通FastAPI:35 最常用的模板引擎Jinja2
  • scala list系列
  • Sigrity Power SI 3D-EM Capacitance Extraction模式如何进行电容的提取操作指导
  • 打印等边三角形和直角三角形(用循环)C语言
  • 红黑树详解
  • 史上最大应用层DDoS攻击 H2 Rapid Reset攻击研究
  • 什么是大模型?一文读懂大模型的基本概念
  • 基于Zynq FPGA对雷龙SD NAND的测试