`
folksy
  • 浏览: 160219 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android——init.rc脚本

阅读更多

http://java-admin.iteye.com/blog/927081

Android——init.rc脚本

 

在Android中使用启动脚本init.rc,可以在系统的初始化中进行简单的操作。

init.rc启动脚本路径:system/core/rootdir/init.rc

内容:

  • Commands:命令
  • Actions:动作
  • Triggers:触发条件
  • Services:服务
  • Options:选项
  • Properties:属性

Commands是一些基本操作。如:

    mkdir /system
    mkdir /data 0771 system system
    mkdir /persist 0771 system system
    devwait /dev/block/mmcblk0p12
    mount ext3 /dev/block/mmcblk0p

Action表示一系列命令,通常在Triggers中调用,如:


    on init           //表示一个触发条件

    sysclktz 0

    loglevel 3

    # setup the global environment
    export PATH /sbin:/system/sbin:/system/bin:/system/xbin
    export LD_LIBRARY_PATH /system/lib
    export ANDROID_BOOTLOGO 1

Services通常表示启动一个可执行程序,Options是服务的附加内容,用于配合服务使用。

    service vold /system/bin/vold      //vold是服务名称,/system/bin/vold是所对应的可执行程序。
    socket vold stream 0660 root mount   //socket是配合服务使用的选项
    ioprio be 2

    service netd /system/bin/netd
    socket netd stream 0660 root system

配合服务使用的选项有socket,user,group,oneshot。

oneshot表示该服务只启动一次,而如果没有oneshot选项,这个可执行程序将一直存在——如果可执行程序被杀死,则会重新启动。

Properties是系统中使用的一些值,可以进行设置和读写。

    setprop ro.HIDDEN_APP_MEM 5120         //setprop用于设置属性
    setprop ro.CONTENT_PROVIDER_MEM 5632
    setprop ro.EMPTY_APP_MEM 6144

    ...

    on property:ro.kernel.qemu=1       //on property用于判断属性
    start adbd

这里的属性在整个android系统运行中都是一致的。

init脚本的关键字可以参考init进程中的system/core/init/keyword.h文件。如:

KEYWORD(chroot,      COMMAND, 1, do_chroot)     //chroot是命令,do_chroot()是调用的函数,这个函数在init进程中的system/core/init/builtins.c文件中定义。

 

init.rc使用方法,见说明文件system/core/init/readme.txt

分享到:
评论
1 楼 ihopethatwell 2012-10-11  
修改/data/data 权限,修改那几处?

相关推荐

    Android init.rc文件简单介绍

    它是一个特殊的脚本文件,由Android初始化语言(Android Init Language,AIL)编写,被系统第一个用户级进程——init进程解析执行。由于init.rc在ROM中是只读的,任何对它的修改都不会持久,除非对Android的ROM或...

    android系统从init进程开始到systemserver启动详细流程

    - **init.rc文件结构**:`init.rc`文件采用了自定义的脚本语言(通常称为AIL语言),具有简单的语法结构,支持定义服务、动作、条件语句等。 - **解析流程**: - `init`进程调用`init_parse_config_file`函数来...

    android wifi移植

    通过合理配置`BoardConfig.mk`、编写正确的`init.sun4i.rc`脚本以及适当调整Linux层和Android层的相关文件,可以实现不同Wi-Fi模块在A1X平台上的成功移植。这一过程虽然复杂,但对于嵌入式开发人员来说是非常重要的...

    android 核心分析之------Android 启动过程详解

    `init.rc`文件是Android自定义的初始化脚本语言的一部分,用于定义四种类型的声明:`Actions`、`Commands`、`Services`和`Options`。通过解析这些脚本,`init`进程能够启动所需的服务。例如,`servicemanager`负责...

    andriod开机流程

    Linux内核启动后,会运行第一个用户空间程序——`init`进程。这个进程的源代码位于`platform/system/core/init/init.c`。`init`进程主要任务是初始化系统环境,包括设置标准输入输出、日志系统,并读取配置文件进行...

    android framework

    Init进程启动后会根据init.rc和init.xxx.rc脚本文件创建几个基本的服务,例如servicemanager和zygote。 2. Native服务启动:此步骤涉及框架层中用C/C++编写的原生服务的启动,如系统框架中定义的Native服务。 3. ...

    android 开机启动源代码

    在`init.rc`文件中,Android定义了多个启动阶段,例如`early-init`, `post-fs-data`, `sysinit`, `late_start`等,每个阶段都会启动特定的服务或脚本。这些服务包括系统核心服务(如SystemServer、Zygote等)和硬件...

    2014.04-Android系统BOOT分区病毒检测与清除1

    这个进程会设置文件系统,挂载必要的目录,如/dev、/proc和/sys,并执行init.rc脚本,这是Android系统启动的关键步骤。脚本中包含了启动服务、设置权限等操作。 在Android启动过程中,Zygote进程被创建,它是所有...

    Android Launch Process(安卓系统启动过程)

    - **init.rc脚本执行**:init进程会读取并执行`/init.rc`脚本,该脚本定义了一系列系统服务的启动顺序和条件。例如,它会启动`ServiceManager`、`MediaServer`等守护进程。 - **启动zygote进程**:与普通Linux系统...

    android 底层开发原理ppt

    首先,Bootloader负责加载内核到内存,然后内核初始化硬件并启动第一个用户空间进程——init。Init进程根据`init.rc`配置文件启动其他系统服务,如Zygote(Java运行时的父进程),System Server(管理核心系统服务)...

    gradle-2.14-rc-1-all.zip

    "gradle-2.14-rc-1-all.zip" 文件是Gradle的一个特定版本——2.14 release candidate 1的完整包,包含了所有必要的组件,供开发者下载和安装。 Gradle的核心特性包括: 1. **基于Groovy的领域特定语言(DSL)**:...

    zte3760安卓配置

    3. **脚本**:如`init.ril.rc`,定义了RIL服务的启动、停止和重启脚本。 4. **测试工具**:用于调试和验证RIL功能的命令行工具。 5. **文档**:说明如何集成和配置RIL到Android系统中。 配置RIL_ZTE_ME3760的过程...

    DM3730调试心得之CEMEK.pdf

    这个模块在编译完成后会放置于`system/ti-dsp/`目录下,通过Android系统的初始化脚本`init.rc`进行加载。加载命令示例如下: ``` insmod /system/ti-dsp/cmemk.ko "phys_start=0x84f00000 phys_end=0x85900000 ...

    adb开机自启

    1. **修改系统启动脚本**:在Android系统的/system/etc/init目录下,可以找到一系列的init*.rc文件,这些是系统的启动脚本。你需要在其中一个合适的启动阶段(如boot或sysinit)添加启动ADB的服务命令。 2. **创建...

Global site tag (gtag.js) - Google Analytics