Android10开机自动启动应用的权限配置

这篇具有很好参考价值的文章主要介绍了Android10开机自动启动应用的权限配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在android8.0之前的系统,native层编译的 二进制xxx.bin文件可以直接放到init.rc中当成一个service,放到on init标签中用start xxx 来运行,只要内核设备树中设置selinux权限为SELINUX_PERMISSIVE模式(调试模式),都可以正常运行,不会报错误。但是在android8.1之后,android的系统分区结构发生变化,我们native层编译的二进制xxx.bin文件可能编译到system/bin/xxx.bin,也有可能放到平台到vendor/bin/xxx.bin下,针对这两种情况,需要添加不同的selinux属性权限才可以正常运行。

1、native层编译的二进制xxx.bin文件编译到vendor/bin/xxx.bin的情况

service cameraTest /vendor/bin/cameraTest
   class hal
   priority -20
   user graphics
   group automotive_evs
   disabled
   oneshot

on init
    start cameraTest

以上添加之后,在系统开机启动时,init进程会打印

init: Could not start service 'cameraTest' as part of class 'hal': File /vendor/bin/cameraTest(labeled "u:object_r:system_file:s0") has incorrect label or no domain transition from u:r:init:s0 to another SELinux domain defined. Have you configured your service correctly?https://source.android.com/security/selinux/device-policy#label_new_services_and_address_denials

说明缺少selinux权限。需要添加selinux权限,方法如下:

1.1) 在android/system/sepolicy/vendor/file_contexts文件最下面加上一句

/(vendor|system/vendor)/bin/hw/cameraTest     u:object_r:cameraTest_exec:s0

1.2)在system/sepolicy/vendor/目录下新增一个文件cameraTest.te

type cameraTest, domain;
type cameraTest_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(cameraTest)

1.3)在system/sepolicy/prebuilts/api/29.0/private/file_contexts里,增加如下一条:

/(vendor|system/vendor)/bin/cameraTest                 u:object_r:cameraTest_exec:s0

1.4 在system/sepolicy/prebuilts/api/29.0/private下新增一个文件cameraTest.te

type cameraTest, domain;
type cameraTest_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(cameraTest)

以上4个步骤是针对编译到vendor/bin/cameraTest的情况,添加完以上4步之后系统全编译下载测试,系统运行之后看init进程是否还在报错误,如果没有了可以使用 ps -Af  |grep cameraTest进行查看是否运行成功。

2、针对编译到system/bin/cameraTest的情况添加selinux权限

2.1)在system/sepolicy/prebuilts/api/29.0/private/file_contexts里新增如下一行代码

/system/bin/cameraTest	--	u:object_r:cameraTest_exec:s0

2.2 在sepolicy/prebuilts/api/29.0/private/目录下新增文件cameraTest.te 内容如下:

type cameraTest, coredomain;
type cameraTest_exec, exec_type, file_type;
init_daemon_domain(cameraTest)

2.3 在system/sepolicy/private/file_contexts文件里新增如下一行代码:

/system/bin/cameraTest	--	u:object_r:cameraTest_exec:s0

2.4 在system/sepolicy/private/目录下新增文件cameraTest.te 文件内容为:

type cameraTest, coredomain;
type cameraTest_exec, exec_type, file_type;
init_daemon_domain(cameraTest)

完成后在android目录执行make installclean,然后进行全编译。下载系统运行之后看init进程是否还在报错误,如果没有了可以使用 ps -Af  |grep cameraTest进行查看是否运行成功。

以上的sepolicy/prebuilts/api/29.0/中的29.0指的是android SDK版本api级别号

android10(API级别29) Android 9(API 级别 28) Android 8.1(API 级别 27) Android 8.0(API 级别 26) Android 7.1(API 级别 25) Android 7.0(API 级别 24) Android 6.0(API 级别 23)文章来源地址https://www.toymoban.com/news/detail-503184.html

到了这里,关于Android10开机自动启动应用的权限配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Android 10.0 开机启动时PMS扫描apk耗时相关功能优化

      在android10.0的系统rom定制化开发中,在系统中开发产品时,会根据客户要求内置第三方app,这时如果内置app过多,或者安装的app过多,在系统开机的过程中 在pms扫描安装app的时候,就会比较耗时,这时候就需要优化下pms扫描安装app这块的功能代码,用多线程来实现pms扫描安装

    2024年02月04日
    浏览(59)
  • Windows下快速安装Nginx并配置开机自动启动Nginx

    目录 一、windows系统下Nginx安装启动流程: 二、设置Nginx开机自动启动 1、自启动工具下载 2、自启动工具安装 3、把nginx加入到windows服务中 nginx已经是我们日常开发中在常用不过的工具了,简单快捷的安装和配置,大大减少了我们部署调试浪费的时间,本文给各位同学介绍一下

    2024年02月10日
    浏览(55)
  • windows服务器下java程序健康检测及假死崩溃后自动重启应用、开机自动启动

    前两天由于项目需要,一个windows上的批处理任务(kitchen.bat),需要接到mq的消息通知后执行,为了快速实现这里我们通过springboot写了一个jar程序,用于接收mq的消息,并调用bat文件。 调用windows的批处理脚本bat,并支持传参 可根据配置设置并发,同时消费多个mq消息调用多个

    2024年02月12日
    浏览(49)
  • windows10,向日葵,todesk远程控制电脑,通过插座实现远程开机,设置bios通电自动启动电脑后不生效,不成功

    目的是想实现,通过app控制智能插座的通电和断电,来实现远程开电脑, 但是按照网上教程设置bios电源管理,通电后为开机后,不管怎么测试就是不成功, 通过尝试发现是windows10的快速启动功能的问题, 当关机的时候,它实际上是在利用高级休眠功能,这就是此功能还可能

    2024年02月10日
    浏览(173)
  • openSTLinux系统如何配置开机启动自动加载脚本文件连接到某个网络(基于STM32MP1系列)

    在使用pangu开发板过程中,想要配置开发板的USB WiFi模块,利用RTL8188驱动,802.11nWiFi模块,系统自带了WiFi 驱动,只需要在开机后通过wap指令连接指定的WiFi信号即可。 (PS:该WiFi模块只能连接2.4G的AP热点,要注意WiFi类型)。 \\\"wpa\\\" 是 \\\"Wi-Fi Protected Access\\\" 的缩写,是一种用于保护

    2024年02月08日
    浏览(46)
  • 设置软件以管理员权限开机自启动,MemReduct为例

    目录 一.MemReduct 1.简介 2.下载方式 二.问题描述 三.具体操作 1.在windows搜索框搜索\\\"任务计划程序\\\" 并打开  2.在右方操作栏点击创建任务  3.常规选项  4.操作选项  5.触发器选项 6.条件选项 7.启动 支持中文,是一个很方便的内存清理软件,占用空间小,效果好,支持定时清理 通过设

    2024年02月08日
    浏览(58)
  • C#实现软件开机自启动(不需要管理员权限)

    目录 原理简介 使用方法 完整代码 本文参考C#/WPF/WinForm/程序实现软件开机自动启动的两种常用方法,将里面中的第一种方法做了封装成 AutoStart 类,使用时直接两三行代码就可以搞定。 自启动的原理是 将软件的快捷方式创建到计算机的自动启动目录下(不需要管理员权限)

    2024年02月11日
    浏览(55)
  • win10开机自启动

    最近由于项目启动依赖于consul,写完代码之后想启动服务,还要去启动consul,有的时候会忘记所以将consul启动设置为了开机自启 首先将consul的可执行文件放到C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp文件夹下 然后编写启动脚本 写好之后同样放在该目录下 之后开机之后就

    2024年02月15日
    浏览(36)
  • 开机自启动android app

    Android App开机自启动_android 开机自启动-CSDN博客 注意权限问题: 第二种实现方式: 系统桌面应用 问: android的系统桌面应用启动是什么: 答: Android 系统桌面应用是指用户在设备主屏幕上看到的默认启动界面,也称为 \\\" Launcher \\\"。它是 Android 系统的一部分,用于显示应用程序

    2024年01月21日
    浏览(41)
  • Linux如何查看服务启动状态是否开机自动启动

    本文为joshua317原创文章,转载请注明:转载自joshua317博客 Linux如何查看服务启动状态是否开机自动启动 - joshua317的博客 linux中查看服务启动状态是否开机自动启动的方法: 1、打开linux终端; 2、在终端命令行中输入“chkconfig --list servicename”命令查看服务启动状态是否开机自动

    2023年04月09日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包