键盘灯功能。开放底层节点操作所需权限和se权限。avc权限问题

这篇具有很好参考价值的文章主要介绍了键盘灯功能。开放底层节点操作所需权限和se权限。avc权限问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

在public intinterceptKeyBeforeQueueing(KeyEvent event, int policyFlags) {方法中处理按键

加入

    StringLED_PATH ="/sys/class/leds/keyboard-backlight/brightness";
            if(keyCode !=KeyEvent.KEYCODE_VOLUME_UP && keyCode != KeyEvent.KEYCODE_VOLUME_DOWN
               && keyCode !=KeyEvent.KEYCODE_VOICE_ASSIST && keyCode !=KeyEvent.KEYCODE_TV_DATA_SERVICE && keyCode !=KeyEvent.KEYCODE_TV_RADIO_SERVICE ){
            if(down){
            mHandler3.removeMessages(0);
           controlBrightness("1",LED_PATH);
            }else if (event.getAction() ==KeyEvent.ACTION_UP){
            mHandler3.postDelayed(new Runnable() {
                            public void run() {
                               controlBrightness("0",LED_PATH);
                            }
                        }, 3000);
            }
            }

所需方法

    privatevoid controlBrightness(String commod,String Path) {
            BufferedWriter bufWriter;
            try {
                bufWriter = new BufferedWriter(newFileWriter(Path));
                bufWriter.write(commod);
                bufWriter.close();
            } catch (IOException e) {
                Log.e("KeyboardLight"," ***controlRedBrightness ERROR*** Here is what I know:"
                 + e.getMessage());
                e.printStackTrace();
            }                                                           
        }
     
    导包import java.io.BufferedWriter;
    importjava.io.FileWriter;
    importjava.io.IOException;

新开一个mHandler3,避免之前的mHandler已经移除了消息或执行了什么消息。

这里面是去掉了一些侧键和音量键,通过写底层键盘灯节点的方式进行

这个节点需要写权限,

开放底层节点操作所需权限和se权限,这里以键盘灯和音量旋钮节点为例

首先先在device/droi/pl2281_zrk/init.project.rc

开放上层节点操作权限,加入

    chownsystem system /sys/devices/platform/rotary_pwr/rotary_power
        chmod 666/sys/devices/platform/rotary_pwr/rotary_power
     
        chmod 666/sys/class/leds/keyboard-backlight/brightness
        chown system system/sys/class/leds/keyboard-backlight/brightness

这里的路径其实是软路径,并不代表就一定是底层真实路径,不过上层就可以用这个来操作了,此时还有SeLinux权限需要开放,会报avc权限问题

device/mediate/目录下,当然在device/droi下面也行

sepolicy/basic/non_plat/file.te定义需要开放节点的名称

    +#ledkeyborad
    +type sysfs_leds_keyboradlight,fs_type, sysfs_type, mlstrustedsubject;
    +type sysfs_rotary_status,fs_type, sysfs_type, mlstrustedsubject;

注意sysfs_leds_keyboradlight这个名称前面的sysfs_是固定的,后面自定义名称,有点类似SystemProperties.get("persist.sys.packageinstall.status","0"))

后面的fs_type,sysfs_type, mlstrustedsubject 就是固定格式让他作为系统可开放的类型

然后在sepolicy/basic/non_plat/file_contexts

匹配对应真实路径

+#led keyborad
+/sys/devices/platform/leds-mt65xx/leds/keyboard-backlight/brightnessu:object_r:sysfs_leds_keyboradlight:s0
+/sys/devices/platform/rotary_pwr/rotary_statusu:object_r:sysfs_rotary_status:s0

这里就是真实路径,然后这个格式固定u:object_r:sysfs_leds_keyboradlight:s0

替换名称就行,就是规定se规则到这个节点为false,跳过

有些节点没有软路径就是真实路径,比如这里的旋钮节点,但是键盘灯节点就有这个底层真实路径,结合之前的状态灯节点也同理,

查看节点的真实路径,adbshell 后su模式

ls –l 上层应用节点 看看是否有指向真实路径

最后就是真正执行这节点开放的是

sepolicy/basic/non_plat/system_server.te

+#led keyborad
+allow system_server sysfs_leds_keyboradlight:dirsearch;
+allow system_server sysfs_leds_keyboradlight:filerw_file_perms;
+allow system_server sysfs_rotary_status:filerw_file_perms;

就是开放正常的读写权限,注意这边键盘灯操作是在framework层调用,最后报的也是system_server给的avc不足,反之如果是系统apk或者内置的应用需要权限的话

就在

sepolicy/basic/non_plat/system_app.te

加入,就是换一个类型system_app文章来源地址https://www.toymoban.com/news/detail-800879.html

+#led keyborad
+allow system_appsysfs_leds_keyboradlight:dir search;
+allow system_appsysfs_leds_keyboradlight:file rw_file_perms;

到了这里,关于键盘灯功能。开放底层节点操作所需权限和se权限。avc权限问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Debezium-增量迁移之 Oracle 迁移所需权限

    -- 创建用户 create user TCK identified by oracle; -- 赋权 grant connect,resource to TCK; -- 删除权限 revoke select any table from TCK; revoke select any DICTIONARY from TCK; -- 删除用户 CASCADE(用户下的数据级联删除) drop user TCK CASCADE -- 查询权限列表 select * from user_sys_privs where privilege in (\\\'SELECT ANY TABLE\\\',\\\'SEL

    2024年02月09日
    浏览(42)
  • Android 12.0根据包名授予app所需的权限

    在12.0定制开发中第三方app第一次进入的时候 会弹出授予权限的权限框 有时候觉得挺麻烦的,所以根据客户要求 默认授予权限,这时我们就需要根据包名PackageName 来给与所需要的权限 首选来看下PackageManagerService.java PackageManagerService.java 1 管理系统的jar包和apk,负责系统权限

    2024年02月09日
    浏览(62)
  • Docker安全开放远程访问连接权限

    Docker服务完全开放对外访问权限操作如下: 出现如下信息则代表修改Docker服务设置远程访问成功。 特别注意的点: 完全开放Docker对外访问权限有可能会遭到别人攻击,这是很不安全的,只要别人知道你的服务器地址就能够随意连接你的Docker服务,而不需要任何认证,因此,

    2024年02月12日
    浏览(49)
  • 海康威视开放平台门禁权限管控案例说明

    目录 案例1、出入权限配置及下发 案例2、指定人员和设备下发权限 【相关接口说明】可以在开放网站上进行仔细查看。 【流程描述】 1、基础数据准备 准备好待下发的人员及人脸信息以及对应的设备(门禁、可视对讲、梯控)。 2、平台配置阶段 调用【添加权限配置】接口,

    2024年02月04日
    浏览(72)
  • Zebec即将推出公链并开放节点申请,潜力几何?

    每次互联网形态的改变,都会对世界产生很大的影响,上一次对社会产生重大影响的互联网形态(Web2.0),催生了一批改变人类生活和信息交互方式的企业。2021年底,Web3的概念和理论迅速得到普及,原因主要是是加密货币圈的活跃分子和国外知名风险投资(如A16Z)的推动。

    2023年04月09日
    浏览(50)
  • python使用requests进行登录操作,抓取所需信息

    本次抓取的是百傲瑞达的考勤机系统的数据。地址为内网地址172.200.0.200:8098 先简单介绍下系统页面及想要抓取数据的页面 登录页面输入用户名密码会跳转到一个统计的黑板页面 想要抓取的数据页面如下   解析下网站登录请求和打卡详情请求 页面登录会出现跳转,f12无法定

    2024年01月17日
    浏览(39)
  • 手机更换电池-小米8se操作步骤

    目录 准备工具: 步骤: 注意事项: 需要更换电池的手机 电池背胶(左上蓝色) 缠胶棍(手机左边) 小螺丝刀 新电池 卡针 后盖拆卸片(右上三角) 吸盘 后盖背胶 先用卡针把手机卡槽取出 第一次拆手机后盖,使用吹风机对手机后盖下部吹3-5分钟,加热后盖胶 使用吸盘将

    2024年02月10日
    浏览(58)
  • 抖音开放平台网站应用:用户未绑定应用白名单,请授权trial.whitelist权限

    升级后的抖音开放平台 2022-12-10日首稿 开通测试权限需要做下面几件事情: 添加 user_info(用户权限栏下)权限 添加 trial.whitelist (特殊权限栏下)权限 在网站应用的设置中,添加了白名单 测试用户同意加入白名单 在抖音开放平台,进入对应的网站应用,打开能力管理-用户

    2023年04月08日
    浏览(39)
  • Leetcode3071. 在矩阵上写出字母 Y 所需的最少操作次数

    题目来源:3071. 在矩阵上写出字母 Y 所需的最少操作次数 统计 Y 中的元素出现次数,记到一个长为 3 的数组 cnt1 中。统计不在 Y 中的元素出现次数,记到一个长为 3 的数组 cnt2 中。 计算最多可以保留多少个元素不变,设这个值为 maxNotChange。 在 0,1,2 中枚举 i 和 j,其中 i≠

    2024年03月18日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包