精华内容
下载资源
问答
  • 由于initrc中支持的命令有限(不能支持system/bin下所有命令),而且不适合写比较复杂的逻辑(如传参、函数块 ),通常把这些功能放在shell脚本里来执行,但是shell脚本又需要放在initrc中来调用执行。因为随着...

           由于initrc中支持的命令有限(不能支持system/bin下所有命令),而且不适合写比较复杂的逻辑(如传参、函数块 ),通常把这些功能放在shell脚本里来执行,但是shell脚本又需要放在initrc中来调用执行。因为随着Android版本更新,selinux的限制越来越多,在initrc中执行shell脚本肯能会遇到很多问题,即使设置selinux 为Permissive 也可能会遇到selinux问题。下面提供两个参考示例供参考

    service test_shell /system/etc/test.sh
        user root
    	disabled
    	oneshot
    	seclabel u:r:init:s0
    
    
    这种是以service的形式执行shell脚本,在需要执行的地方写start test_shell即可。
    
    注意:必须配置seclabel  ,比较方便的办法就是在service中加seclabel u:r:init:s0  借助init的SE标签
    
    也可以在源码中定义。
    
    另外这种写法需要保证脚本具有可执行权限,如果没有可以参考下面的
    
    service test_shell system/bin/sh  /system/etc/test.sh
        user root
    	disabled
    	oneshot
    	seclabel u:r:init:s0

    上面的写法有时可能遇到在initrc执行中被杀的可能,而且无法保证执行时间顺序,下面推荐一种更好的写法

    exec - root root -- /system/etc/test.sh
    
    这种是借用initrc的command exec 来执行,这种写法也必须配置selinux权限
    
    修改file_contexts,添加/system/etc/test.sh       u:object_r:test_sh_exec:s0
    
    
    
    
    test_sh 的Selinux的定义参考
    
    type test_sh, domain, coredomain, mlstrustedsubject;
    type test_sh_exec, exec_type, vendor_file_type, file_type;
    init_daemon_domain(test_sh)
    allow test_sh self:tcp_socket create_stream_socket_perms;
    allow test_sh self:tcp_socket rw_socket_perms;
    allow test_sh self:capability { net_raw };
    allow test_sh port:tcp_socket { name_bind };
    allow test_sh node:tcp_socket { node_bind };
    allow test_sh fwmarkd_socket:sock_file { write };
    allow test_sh shell_exec:file { execute read open execute_no_trans };
    allow test_sh netd:unix_stream_socket { connectto };
    

     

    展开全文
  • init rc中创建文件

    千次阅读 2017-05-17 20:45:21
    android的init rc目前不支持touch: touch /data/misc/logd/kmsg.log log中会报错:  init: /init.rc: 83: invalid keyword 'touch' 可以用copy和write命令创建文件 write /data/non-empty-file  copy /dev/null...

    android的init rc目前不支持touch:

    touch /data/misc/logd/kmsg.log

    log中会报错:

     init: /init.rc: 83: invalid keyword 'touch'


    可以用copy和write命令创建文件

    write/data/non-empty-file 

    copy/dev/null/data/empty-file



    展开全文
  • rc,由于init对其解析的时候要判断他的名字 所以有注意命名方法 比如原来平台的名字叫goldfish,如果你要增加init rc, 名字就要init.goldfish.autotest.rc 也就是init.平台名字.XXXX.rc 否则不会执行...

    如果在root dir增加init。rc,由于init对其解析的时候要判断他的名字

    所以有注意命名方法

    比如原来平台的名字叫goldfish,如果你要增加init rc,

    名字就要init.goldfish.autotest.rc

    也就是init.平台名字.XXXX.rc

    否则不会执行

    展开全文
  • android init and initrc

    2012-06-20 17:41:41
    1、在2.2版本中init.$(ro.hardware).rc是在代码中读取的,而在4.0中通过把import关键字的flag也作为SECTION而在init.rc中import进来的 2、以on 开始到后面的on 或service 之间为该action的COMMAND 3、以service ...
    这几天研究安卓的init程序,发现有几个点需要注意:
    1、在2.2版本中init.$(ro.hardware).rc是在代码中读取的,而在4.0中通过把import关键字的flag也作为SECTION而在init.rc中import进来的
    2、以on 开始到后面的on 或service 之间为该action的COMMAND
    3、以service 开始到后面的on 或service 之间为该service的OPTIONS
    4、非disabled的服务都有一个class类别,通过class_start关键字启动
    5、disabled的服务可以通过设置属性ctl.start servicename启动,通过ctl.stop servicename停止;一个例子为bootanimation,该服务在frameworks/base/services/surfaceflinger/SurfaceFlinger.cpp的readyToRun()里启动,且在bootFinished()里面停止。
    展开全文
  • 在Android开发中,常常需要开机自动启动一些服务,有的希望早点启动...首先了解下init.rc的启动流程 1) early-init a) wait_for_coldboot_done b) property_init c) keychord_int d) console_init e) se...
  • init RC 的讲解

    2014-07-16 17:14:07
    http://my.oschina.net/u/561492/blog/144730
  • android的initrc语法分析

    千次阅读 2013-12-19 20:55:08
    system/core/init/readme.txt(此文也是对init.rc 的解释)内容不同: socket [ [ ] ]  ----------------------------------------------- 注1:另外还讲述了
  • 最近项目碰到一个奇怪的问题,wifi组报告说自己的rc脚本创建目录不成功,提示如下错误 11-19 18:40:57.855 1000 12091 13106 E WifiApBackupRestore: FileWriter exception java.io.FileNotFoundException: /data/...
  • init.rc深入学习

    千次阅读 2017-11-02 17:36:09
    语法部分 actions service options commandscommands initrc的变化 initcpp LOCAL_INIT_RC
  • init.rc语法

    2018-11-19 10:26:59
    initrc脚本的4种类型">init.rc脚本的4种类型 Action(动作) Commands(命令) Services(服务) Options(选项) Action 格式: on < ...
  • android—init.rc的读取

    千次阅读 2016-09-21 17:48:24
    initrc的构成 initrc的读取 initrc中service和action下命令的执行 结构体关系图 init.rc的构成 在系统启动时,内核启动完成后会去启动init程序,在init中会去解析init.rc文件。/* ---system/core/init/init.c--...
  • Android系统init进程启动及init.rc全解析

    万次阅读 多人点赞 2017-11-23 16:14:40
    system/core/init/init.c文件main函数中parse_config_file(init.rc)读取并解析init.rc文件内容。将service信息放置到system/core/init/init_parser.cpp的service_list中 system/core/init/init.c文
  • init.rc 相关语法 Android 启动分析-init进程&init.rc [init.rc] android开机过程执行shell脚本 android下的ramdisk android 开关机动画
  • 1. init 进程是android 启动后由内核启动的第一用户级进程,init 进程是系统的守护进程,init进程有四个作用依次为:子进程终止处理,生成设备驱动节点,分析及运行init.rc 文件和init.*.rc 文件, 初始化属性服务。...
  • init.rc:Android在启动过程中读取的启动脚本文件,主要完成一些初级的初始化,在/system/core/init/init.c中解析。 init.xx.rc:与具体CPU相关的启动脚本,比如对于飞思卡尔的CPU,名字为init.freescale.rc。在...
  • Android的根目录下有一系列非常重要的配置文件,即:init.rc init.xxxxx.rc Android中解析这些配置文件的代码在:system\core\init目录下。 核心文件是init.c,相关的文法说明请参见:readme.txt 本文简单介绍...
  • init.rc 解析

    2019-05-15 10:00:44
    \xxx\out\target\product\xxx\root\init.rc import /init.environ.rc import /init.usb.rc import /init.${ro.hardware}.rc import /init.usb.configfs.rc import /init.${ro.zygote}.rc [ro.hardware]: [xxx]....
  • Android init.rc init.vendor.rc 介绍

    千次阅读 2011-08-05 17:07:18
    init.rcinit.xxxx.rc(硬件平台相关) init.rc是Android自己规定的初始化脚本(Android Init Language, System/Core/Init/readme.txt) 该脚本包含四个类型的声明: ActionsCom
  • init.rc介绍

    2015-04-03 16:05:53
    init.rc介绍 init.rc(system/core/rootdir/init.rc)是由Android Init Language编写(init语言说明) Android init语言关键字定义在system/core/init/keywords.h文件中 init.rc编译到手机中,位于手机系统的根...
  • 了解init.rc

    2019-08-05 17:45:36
    system/core/init/init.c文件main函数中parse_config_file(init.rc)读取并解析init.rc文件内容。将service信息放置到system/core/init/init_parser.cpp的service_list中 system/core/init/init.c文件main函数继续...
  • init.rc简述

    2019-01-03 16:12:07
    init.rc概述 init是由Android的Linux内核启动的第一个第一个进程,这个进程非常特殊,它的PID永远是1,并且这个进程是不会死亡的,如果它死亡,内核就会崩溃,init.rc是一个规定init进程行为和动作的配置文件。...
  • Android init.rc文件简单介绍 init.rc脚本是由Android中linux的第一个用户级进程init进行解析的。 init.rc 文件并不是普通的配置文件,而是由一种被称为“Android初始化语言”(Android Init Language,这里简称为...
  • Android init.rc

    2014-04-10 14:08:55
    1. init.rc import /init.environ.rc import /init.usb.rc import /init.${ro.hardware}.rc import /init.trace.rc
  • 解析init.rc

    千次阅读 2015-10-29 19:20:28
     在 Android中使用启动脚本init.rc,可以在系统的初始化过程中进行一些简单的初始化操作。...(1)android启动文件系统后调用的第一个应用程序是/init,此文件的很重要的内容是解析了init.rcinit.xxx.rc

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,947
精华内容 5,978
关键字:

initrc