android11-开机自启脚本

1. 编写myshell脚本

diff --git a/device/rockchip/rk356x/ok3568_r/myshell.sh b/device/rockchip/rk356x/ok3568_r/myshell.sh
new file mode 100644
index 0000000000..c78b6d93bd
--- /dev/null
+++ b/device/rockchip/rk356x/ok3568_r/myshell.sh
@@ -0,0 +1,4 @@
+#!/vendor/bin/sh
+
+echo "1.sh finished" > /dev/console

2. 拷贝myshell脚本

diff --git a/device/rockchip/rk356x/ok3568_r/ok3568_r.mk b/device/rockchip/rk356x/ok3568_r/ok3568_r.mk
index 66a21909d2..317d9096cd 100644
--- a/device/rockchip/rk356x/ok3568_r/ok3568_r.mk
+++ b/device/rockchip/rk356x/ok3568_r/ok3568_r.mk
@@ -45,7 +45,9 @@ PRODUCT_PROPERTY_OVERRIDES += persist.wifi.sleep.delay.ms=0
 PRODUCT_PROPERTY_OVERRIDES += persist.bt.power.down=true
 
 PRODUCT_COPY_FILES += \
-    $(LOCAL_PATH)/bootanimation.zip:system/media/bootanimation.zip
+    $(LOCAL_PATH)/bootanimation.zip:system/media/bootanimation.zip \
+    $(LOCAL_PATH)/myshell.sh:$(TARGET_COPY_OUT_VENDOR)/bin/myshell.sh
 
 PRODUCT_PACKAGES += \
     watchdogtest \

3. 编写selinux类型强制规则

diff --git a/device/rockchip/common/sepolicy/vendor/myshell.te b/device/rockchip/common/sepolicy/vendor/myshell.te
new file mode 100644
index 0000000000..eeb52cb9ac
--- /dev/null
+++ b/device/rockchip/common/sepolicy/vendor/myshell.te
@@ -0,0 +1,11 @@
+type myshell, domain;
+type myshell_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(myshell)
+
+allow myshell vendor_shell_exec:file rx_file_perms;
+allow myshell vendor_toolbox_exec:file rx_file_perms;
+allow myshell console_device:chr_file { open write };
+allow myshell myshell:capability { sys_module };
+allow myshell vendor_file:system { module_load };
+

4. 编写selinux安全上下文

diff --git a/device/rockchip/common/sepolicy/vendor/file_contexts b/device/rockchip/common/sepolicy/vendor/file_contexts
index df2a46abdc..53f21d46c6 100644
--- a/device/rockchip/common/sepolicy/vendor/file_contexts
+++ b/device/rockchip/common/sepolicy/vendor/file_contexts
@@ -238,3 +238,4 @@
 #flash_img
 /vendor/bin/flash_img.sh u:object_r:vendor_install_recovery_exec:s0
 
+/vendor/bin/myshell.sh    u:object_r:myshell_exec:s0

5. 编写myshell服务并启动myshell服务

diff --git a/system/core/rootdir/init.rc b/system/core/rootdir/init.rc
index a9af0b094d..02610df121 100644
--- a/system/core/rootdir/init.rc
+++ b/system/core/rootdir/init.rc
@@ -978,11 +978,20 @@ on property:vold.decrypt=trigger_shutdown_framework
     class_reset_post_data core
     class_reset_post_data hal
 
+service myshell /vendor/bin/myshell.sh
+    class main
+    user root
+    group root
+    disabled
+    oneshot
+
 on property:sys.boot_completed=1
     bootchart stop
     # Setup per_boot directory so other .rc could start to use it on boot_completed
     exec - system system -- /bin/rm -rf /data/per_boot
     mkdir /data/per_boot 0700 system system encryption=Require key=per_boot_ref
+    start myshell
+
 
 # system server cannot write to /proc/sys files,
 # and chown/chmod does not work for /proc/sys/ entries.

6. 编译烧写镜像测试

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/259775.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ThinkPad E550c

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:…

C语言—每日选择题—Day56

指针相关博客 打响指针的第一枪:指针家族-CSDN博客 深入理解:指针变量的解引用 与 加法运算-CSDN博客 第一题 1. 以下叙述中正确的是() A:\0 表示字符 0 B:"a" 表示一个字符常量 C:表…

C++内存布局(一)

温故而知新,本文浅聊和回顾下C内存布局的知识。 一、c内存布局 C的内存布局主要包括以下几个部分: 代码段:存储程序的机器代码。.数据段:存储全局变量和静态变量。数据段又分为初始化数据段(存储初始化的全局变量和…

JVM基础原理篇-透彻理解类加载子系统(学习笔记)

一、从Hello World轻松理解类加载的基本过程 1.类加载子系统整体工作过程 大白话: 符号引用 - 相当于建房子的图纸,在字节码文件中 直接引用 - 建房子,在Java的内存模型中 这里需要注意下面的代码 这里为什么先在静态代码块给a赋值20&#xf…

(四)pytorch图像识别实战之用resnet18实现花朵分类(代码+详细注解)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、关于这个实战的一些知识点Q1:图像识别实战常用模块解读Q2:数据增强Q3:迁移学习Q4:平均全局池化Q5:设置哪些层需要训练时…

MongoDB的原子操作findAndReplace、findOneAndDelete和deleteMany

本文主要介绍MongoDB的原子操作findAndReplace、findOneAndDelete和deleteMany。 目录 MongoDB的原子操作一、findAndReplace二、findOneAndDelete三、deleteMany MongoDB的原子操作 MongoDB的原子操作指的是在单个操作中对数据库的数据进行读取和修改,并确保操作是…

JaCoCo 统计度量

1、JaCoCo: 一个判断算2个Branch,最后一个括号算一行 2、IDEA:一个判断算一个Branch,最后一个括号不算一行

代码随想录算法训练营Day5 | 454.四数相加||、383.赎金信、35.三个之和、18.四数之和

LeetCode 454 四数相加 || 本题思路: 如果使用暴力的话就是 4 层 for 循环,这个时间复杂度就是 O(n^4) 了。 所以我们可以使用 map ,来解决这道题,和之前的两数之和一样,之前是 遍历一个,存进去一个。 如果…

一个真正的软件测试从业人员必备技能有哪些?

协同开发能力: 1. 项目管理(SVN、Git) 2. 数据分析能力(Fiddler、Charles、浏览器F12)。 接口测试: 1. 概念及接口测试原理概念(概念、接口测试原理) 2. 接口测试工具&#xff…

AWS向量数据库Amazon OpenSearch Service使用测评

前言 在大模型盛行的当今,选择适宜的数据库显得尤为重要。因为你需要面对海量训练数据,快速的检索至关紧要,以及对于存储的要求也是至关重要的。对于海量的数据查询和存储是需要巨大的算力支持。向量数据库常用在一些图像文本或者视频的生成…

硬件基础集线器、交换机、路由器原理

OSI七层模型 OSI介绍 OSI (Open System Interconnect)模型全称为开放式通信系统互连参考模型,是国际标准化组织 ( ISO ) 提出的一个试图使各种计算机在世界范围内互连为网络的标准框架 OSI将计算机网络体系结构划分为七层,每一…

【SQL】根据年份,查询每个月的数据量

根据年份,查询每个月的数据量 一种 WITH Months AS (SELECT 1 AS Month UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION…

Dokit 开源库:简化 Android 应用开发的利器

Dokit 开源库:简化 Android 应用开发的利器 一、Dokit 简介二、Dokit 功能三、Dokit 使用3.1 DoKit Android 最新版本3.2 DoKit Android 接入步骤 四、总结 在 Android 应用开发过程中,我们经常需要处理调试、性能优化和用户体验等方面的问题。然而&…

Java精品项目源码新基于协同过滤算法的旅游推荐系统(编号V69)

Java精品项目源码新基于协同过滤算法的旅游推荐系统(编号V69) 大家好,小辰今天给大家介绍一个基于协同过滤算法的旅游推荐系统

linux ARM64 处理器内存屏障

一、内存类型: ARMv8架构将系统中所有的内存,按照它们的特性,划分成两种,即普通内存和设备内存。并且它们是互斥的,也就是说系统中的某段内存要么是普通内存,要么是设备内存,不能都是。 1&…

动力电池系统介绍(十四)——热管理系统

动力电池系统介绍(十四) 一、梗概二、座舱热管理(汽车空调)2.1 空调制冷2.2 空调制热2.2.1 传统燃油汽车空调制热2.2.2 新能源汽车空调制热 三、动力系统热管理3.1 燃油车发动机热管理3.1.1 冷却系统3.1.2 润滑系统3.1.3 进排气系…

C++ Lambda表达式基础用法

语法 C11标准lambda表达式的语法非常简单,定义如下,并且语法规定lambda表达式如果存在说明符,那么形参列表不能省略。标准还规定能捕获的变量必须是一个自动存储类型。简单来说就是非静态的局部变量、非全局变量。 定义:[ captu…

纳米流体传热与计算机模拟

纳米流体传热与计算机模拟 一、引言 纳米流体传热是一个研究领域,主要关注纳米尺度下流体的传热特性和机制。由于纳米流体的尺寸较小,其传热行为与传统尺度下的流体有很大不同。近年来,随着计算机技术的飞速发展,计算机模拟成为…

TensorFlow(2):Windows安装TensorFlow

1 安装python环境 这一步请自行安装,这边不做介绍。 2 安装anaconda 下载路径:Index of /,用户自行选择自己的需要的版本。 3 环境配置 3.1 anaconda环境配置 找到设置,点击系统->系统信息->高级系统设置->环境变量…

Github 2023-12-19开源项目日报 Top10

根据Github Trendings的统计,今日(2023-12-19统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4Rust项目2非开发语言项目2C#项目1TypeScript项目1 Avalonia: 跨平台UI框架和Avalonia XPF 创建周…