Android11 init.rc添加开机自启动service

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

         因项目需要,在开机启动的时候需要执行can初始化命令,但是在init.rc里面又不能直接执行shell命令,所以就需要添加一个service在开机的时候执行。

        在device路径下添加可执行的命令并且编译出来,添加main.cpp和Android.mk:

        main.cpp

#include <netdb.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <dirent.h>

#include <sys/socket.h>
#include <arpa/inet.h>
#include <utils/Log.h>


#include <fcntl.h>
#include <assert.h>
#include <termios.h>
#include <string.h>
#include <sys/time.h>
#include <sys/types.h>
#include <errno.h>

int main(){
	//ALOGD("%s: function is runing",__FUNCTION__);
	system("su root ip link set can0 down");
	system("su root ip link set can0 type can bitrate 500000");
	system("su root ip link set can0 up");
	system("su root ip link set can1 down");
	system("su root ip link set can1 type can bitrate 500000");
	system("su root ip link set can1 up");
	//ALOGD("%s: ============= set can0 and can1 up",__FUNCTION__);
	return 0;
}

         Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES := main.cpp
LOCAL_MODULE := can_init
LOCAL_MODULE_TAGS := optional
#LOCAL_C_INCLUDES := $(LOCAL_PATH)/include/
#LOCAL_CFLAGS := -O2 -g -W -Wall
LOCAL_SHARED_LIBRARIES := \
    libcutils \
    liblog

include $(BUILD_EXECUTABLE)

        在device.mk下添加编译规则,将之编译出来

#add can_init
PRODUCT_PACKAGES += can_init

        然后在init.rc里面添加service,开机时自启动:

 on property:sys.boot_completed=1
+    start canstream



+service  canstream   /system/bin/can_init
+    class core
+    disabled
+    oneshot

        添加完之后发现开机时未执行,是因为未添加selinux相关的权限,添加代码如下:

        新建一个can_init.te(具体的selinux权限路径根据你的代码来添加):

--- /dev/null
+++ b/sepolicy/vendor/can_init.te
+type can_init, domain, coredomain;
+type can_init_exec, exec_type, file_type, system_file_type;
+init_daemon_domain(can_init)

        在file_contexts添加(file_contexts路径根据你的项目生效的file_contexts文件添加)

--- a/sepolicy/vendor/file_contexts
+++ b/sepolicy/vendor/file_contexts

+/system/bin/can_init                    u:object_r:can_init_exec:s0

至此,开机时添加的service就完成啦,开机时打印如下文章来源地址https://www.toymoban.com/news/detail-615176.html

06-12 09:00:48.919  1338  1338 D can_init: main: function is runing
06-12 09:00:49.068  1338  1338 D can_init: main:============= set can0 and can1 up

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

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

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

相关文章

  • linux 添加指令到开机启动项目,并托管后台

    在Linux中,您可以通过编辑启动脚本或使用 cron 来实现将用户指令设置为开机自启动并放在后台运行。 使用启动脚本: 创建一个新的启动脚本,例如 /etc/init.d/my_script 。 在脚本中添加您要在开机时执行的指令,例如: 将 用户名 替换为您要以其身份运行指令的用户名,将 您

    2024年02月13日
    浏览(37)
  • Linux:Ubuntu 20.04 —添加开机启动(服务/脚本)

    本文章向大家介绍Linux Ubuntu 20.04 —添加开机启动(服务/脚本),主要包括Linux Ubuntu 20.04 —添加开机启动(服务/脚本)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。 系统启动时需要加载的配置文件 一、修改开机启动文件

    2024年02月10日
    浏览(52)
  • PVE/Debian11设置开机自启动项

    在PVE中想要设置WOL网络唤醒,这其中遇到了debian开机自启动项一直不生效的问题,根据实验怀疑是sh兼容性不好的问题,最后通过使用bash执行解决问题。 Proxmox VE 7.3 基于 Debian 11.5 “Bullseye” 构建,但采用了较新的内核版本:Linux kernel 5.15/5.19,还将重要的软件进行了升级:

    2024年02月07日
    浏览(42)
  • Android APP开机启动,安卓APP开发自启动,安卓启动后APP自动启动 Android让程序开机自动运行APP

    第一步设置获取广播后的业务 第二查权限给APP 理论以上两步做完就可以了。APP也能收到广播信息了, 但是APP没有在桌面启动。 经过再研究,发现要在手机再设置自动开启等业务,以下是小米、魅族的系统设置的一些内容,其它平台自己研究。 这里已经显示收到广播信息  

    2024年02月06日
    浏览(57)
  • Android WiFi Service启动-Android13

    Android WiFi基础概览 AOSP 文档 心主题 WiFi概览 编译生成对应的jar包: \\\"/apex/com.android.wifi/javalib/service-wifi.jar\\\" 相关WiFi服务: WifiService 、 WifiScanningService 、 RttService 、 WifiAwareService 、 WifiP2pService frameworks/base/services/java/com/android/server/SystemServer.java WifiInjector.java : WiFi依赖性注入器。

    2024年01月21日
    浏览(38)
  • Android Service启动ANR原理

        在Service组件StartService()方式启动流程分析文章中,针对Context#startService()启动Service流程分析了源码,其实关于Service启动还有一个比较重要的点是Service启动的ANR,因为因为线上出现了上百例的 \\\"executing service \\\" + service.shortName 的异常。      本文中所有源码都只粘贴关键代

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

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

    2024年01月21日
    浏览(41)
  • RK android 9.0 添加sh脚本开机自动运行

    diff --git a/device.mk b/device.mk old mode 100644 new mode 100755 index 4c698b7..c635798 --- a/device.mk +++ b/device.mk @@ -126,6 +126,8 @@ PRODUCT_COPY_FILES +=      $(call add-to-product-copy-files-if-exists,device/rockchip/common/init.$(TARGET_BOARD_HARDWARE).bootmode.nvme.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.$(TARGET_BOARD_HARDWARE).bootm

    2024年02月08日
    浏览(84)
  • android开机自启动apk的方法

            在Android系统中,开机自启需要在系统启动时启动一个服务或应用程序。为了使应用程序成为开机自启应用程序,您需要完成以下步骤: 1 在应用程序的AndroidManifest.xml文件中,添加以下权限: 2 在应用程序的AndroidManifest.xml文件中,添加以下标记,表示您的应用程序

    2024年01月16日
    浏览(37)
  • Android开机启动执行脚本的实现方法

    Android开机启动执行脚本的实现方法 在Android系统中,我们经常需要在设备开机时执行一些特定的操作,例如启动某个应用程序或执行一段脚本。本文将介绍一种实现在Android设备开机启动时执行脚本的方法。 要实现这个功能,我们需要创建一个初始化脚本,并将其添加到Andr

    2024年02月07日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包