所有Android Init语言的列表是什么;触发器';?

所有Android Init语言的列表是什么;触发器';?,android,triggers,init,Android,Triggers,Init,在/init.rc和其他Android init Language.rc文件中,可以有“actions”部分以“on”开头,以便在init进程中发生事件时执行一系列命令。所有“触发器”的列表是什么?似乎可以看到一些特定的关键字触发器,如“boot”、“init”、“fs”、“early init”和“post fs data”。这是完整的清单吗?在代码的某个地方?(除了关键字触发器外,还有一些表达式触发器,请参见下文。) 我见过一些关键字触发器,如果能知道它们被调用的时间和原因,那就太好了: b

在/init.rc和其他Android init Language.rc文件中,可以有“actions”部分以“on”开头,以便在init进程中发生事件时执行一系列命令。所有“触发器”的列表是什么?似乎可以看到一些特定的关键字触发器,如“boot”、“init”、“fs”、“early init”和“post fs data”。这是完整的清单吗?在代码的某个地方?(除了关键字触发器外,还有一些表达式触发器,请参见下文。)

我见过一些关键字触发器,如果能知道它们被调用的时间和原因,那就太好了:

boot
early-init
init
fs
post-fs-data
charger
nonencrypted  
除关键字外,表达式的Exmaple还包括:

property:ro.factory.tool=1     -- when a property is set to a value
device-added-<path>  -- Triggered when a node is added when the equipment
device-removed-<path>  -- When the device is removed to add nodes
service-exited-<name>
property:ro.factory.tool=1——当属性设置为值时
已添加设备---在设备运行时添加节点时触发
移除设备---移除设备以添加节点时
服务已退出-
注意:在撰写本文时,所有链接都指向AOSP android-5.1.1R18

触发器可以由开发人员(设备维护人员)定义,因此我们不希望找到完整的列表。但是,假设您对默认情况下AOSP中包含的内容最感兴趣,下面是流程:

通过
action\u为每个触发器()处理的操作:

  • early init
  • init
  • 充电器
    后期初始化
  • 如果
    charger
    是遇到的最后一个触发器,则这是AOSP定义列表的末尾。制造商可以从这里补充关闭模式充电的后续操作

    如果
    late init
    是遇到的最后一个触发器,则Android()中包含的默认init.rc将开始运行以下触发器:

    # Mount filesystems and start core system services.
    on late-init
        trigger early-fs
        trigger fs
        trigger post-fs
        trigger post-fs-data
    
        # Load properties from /system/ + /factory after fs mount. Place
        # this in another action so that the load will be scheduled after the prior
        # issued fs triggers have completed.
        trigger load_all_props_action
    
        # Remove a file to wake up anything waiting for firmware.
        trigger firmware_mounts_complete
    
        trigger early-boot
        trigger boot
    

    您还可以使用adb将其列在已连接的电话/模拟器上:

    $ adb shell dmesg | grep "processing action"
    [    4.376074] init: processing action 0x35480 (init)
    [    4.440537] init: processing action 0x38c58 (init)
    [    4.450009] init: processing action 0x35708 (early-fs)
    [    5.531812] init: processing action 0x39c38 (console_init)
    [    5.575831] init: processing action 0x2de70 (fs)
    [    5.597799] init: processing action 0x35890 (fs)
    [    7.089157] init: processing action 0x2df58 (post-fs)
    [    7.091550] init: processing action 0x38cb8 (post-fs)
    [    7.091818] init: processing action 0x2e288 (post-fs-data)
    [    7.100189] init: processing action 0x39c80 (property_service_init)
    [    7.110080] init: processing action 0x39cc8 (signal_init)
    [    7.110177] init: processing action 0x39d10 (check_startup)
    [    7.110248] init: processing action 0x2ea18 (boot)
    [    7.126205] init: processing action 0x397e0 (boot)
    [    8.183090] init: processing action 0x39d58 (queue_property_triggers)
    [    8.183232] init: processing action 0x2f8f8 (nonencrypted)
    [    8.183810] init: processing action 0x2fd98 (property:ro.debuggable=1)
    [    8.184463] init: processing action 0x328f8 (property:sys.usb.config=none)
    [   14.438626] init: processing action 0x2ffd0 (property:sys.sensors=1)
    [   28.192393] init: processing action 0x31860 (property:sys.boot_completed=1)
    

    有几个大家都知道的关键字,但是如果您想查看正在设置的属性(以及其他默认设置的属性)的列表,请尝试以下adb命令:

    $ adb shell getprop
    [alsa.mixer.capture.headset]: [Capture]
    [alsa.mixer.capture.master]: [Capture]
    [alsa.mixer.playback.headset]: [Headphone]
    [alsa.mixer.playback.master]: [Playback]
    [alsa.mixer.playback.speaker]: [Playback]
    [back_camera_name]: [ov5640_mipi]
    [back_camera_orient]: [0]
    [camera.disable_zsl_mode]: [1]
    [dalvik.vm.dexopt-flags]: [m=y]
    [dalvik.vm.heapgrowthlimit]: [64m]
    [dalvik.vm.heapmaxfree]: [8m]
    [dalvik.vm.heapminfree]: [512k]
    [dalvik.vm.heapsize]: [384m]
    [dalvik.vm.heapstartsize]: [8m]
    [dalvik.vm.heaptargetutilization]: [0.75]
    [dalvik.vm.jniopts]: [warnonly]
    [dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
    [debug.egl.hw]: [1]
    [debug.force_rtl]: [0]
    [debug.sf.enable_hgl]: [1]
    [debug.sf.showfps]: [0]
    [dev.bootcomplete]: [1]
    [dhcp.eth0.result]: [failed]
    [front_camera_name]: [ov5642_camera,ov5640_camera]
    [front_camera_orient]: [0]
    [gsm.current.phone-type]: [1]
    [gsm.network.type]: [Unknown]
    [gsm.operator.alpha]: []
    [gsm.operator.iso-country]: []
    [gsm.operator.isroaming]: [false]
    [gsm.operator.numeric]: []
    [gsm.ril.delay]: [15]
    [gsm.sim.state]: [NOT_READY]
    [hwc.enable_dither]: [1]
    [hwc.stretch.filter]: [1]
    [init.svc.adbd]: [running]
    [init.svc.bootanim]: [stopped]
    [init.svc.console]: [running]
    [init.svc.debuggerd]: [running]
    [init.svc.dhcpcd_eth0]: [stopped]
    [init.svc.drm]: [running]
    [init.svc.fuse_extsd]: [running]
    [init.svc.healthd]: [running]
    [init.svc.installd]: [running]
    [init.svc.keystore]: [running]
    [init.svc.media]: [running]
    [init.svc.netd]: [running]
    [init.svc.sdcard]: [running]
    [init.svc.servicemanager]: [running]
    [init.svc.surfaceflinger]: [running]
    [init.svc.ueventd]: [running]
    [init.svc.uim]: [stopped]
    [init.svc.vold]: [running]
    [init.svc.wifi_mac]: [stopped]
    [init.svc.zygote]: [running]
    [media.omxgm.enable-player]: [1]
    [media.omxgm.enable-record]: [1]
    [media.omxgm.enable-scan]: [1]
    [net.bt.name]: [Android]
    [net.change]: [net.qtaguid_enabled]
    [net.hostname]: [android-c49d34ff0fbd9f6]
    [net.qtaguid_enabled]: [1]
    [net.tcp.buffersize.default]: [4096,87380,110208,4096,16384,110208]
    [net.tcp.buffersize.edge]: [4093,26280,35040,4096,16384,35040]
    [net.tcp.buffersize.ethernet]: [524288,2097152,4194304,524288,2097152,4194304]
    [net.tcp.buffersize.evdo]: [4094,87380,262144,4096,16384,262144]
    [net.tcp.buffersize.gprs]: [4092,8760,11680,4096,8760,11680]
    [net.tcp.buffersize.hsdpa]: [4094,87380,262144,4096,16384,262144]
    [net.tcp.buffersize.hspa]: [4094,87380,262144,4096,16384,262144]
    [net.tcp.buffersize.hspap]: [4094,87380,1220608,4096,16384,1220608]
    [net.tcp.buffersize.hsupa]: [4094,87380,262144,4096,16384,262144]
    [net.tcp.buffersize.lte]: [524288,1048576,2097152,262144,524288,1048576]
    [net.tcp.buffersize.umts]: [4094,87380,110208,4096,16384,110208]
    [net.tcp.buffersize.wifi]: [524288,1048576,2097152,262144,524288,1048576]
    [persist.service.bdroid.bdaddr]: [22:22:12:0c:fb:0d]
    [persist.sys.dalvik.vm.lib]: [libdvm.so]
    [persist.sys.profiler_ms]: [0]
    [persist.sys.usb.config]: [mtp,adb]
    [qemu.hw.mainkeys]: [1]
    [ro.FSL_AAC_PARSER]: [1]
    [ro.FSL_ASF_PARSER]: [0]
    [ro.FSL_AVI_PARSER]: [1]
    [ro.FSL_FLAC_PARSER]: [1]
    [ro.FSL_FLV_PARSER]: [1]
    [ro.FSL_MKV_PARSER]: [1]
    [ro.FSL_MPG2_PARSER]: [1]
    [ro.FSL_REAL_PARSER]: [0]
    [ro.adb.secure]: [1]
    [ro.allow.mock.location]: [1]
    [ro.baseband]: [unknown]
    [ro.board.platform]: [imx6]
    [ro.boot.bootdev]: [mmcblk3]
    [ro.boot.hardware]: [freescale]
    [ro.boot.serialno]: [19b80271c6]
    [ro.bootloader]: [unknown]
    [ro.bootmode]: [unknown]
    [ro.build.characteristics]: [tablet]
    [ro.build.date.utc]: [1484264053]
    [ro.build.date]: [Thu Jan 12 17:34:13 CST 2017]
    [ro.build.description]: [nitrogen6x-eng 4.4.3 2.0.1-ga 20160816 dev-keys]
    [ro.build.display.id]: [nitrogen6x-eng 4.4.3 2.0.1-ga 20160816 dev-keys]
    [ro.build.fingerprint]: [boundary/nitrogen6x/nitrogen6x:4.4.3/2.0.1-ga/20160816:eng/dev-keys]
    [ro.build.host]: [fbd-HP-ZBook-15]
    [ro.build.id]: [2.0.1-ga]
    [ro.build.product]: [nitrogen6x]
    [ro.build.tags]: [dev-keys]
    [ro.build.type]: [eng]
    [ro.build.user]: [fbd]
    [ro.build.version.codename]: [REL]
    [ro.build.version.incremental]: [20160816]
    [ro.build.version.release]: [4.4.3]
    [ro.build.version.sdk]: [19]
    [ro.carrier]: [unknown]
    [ro.config.alarm_alert]: [Alarm_Classic.ogg]
    [ro.config.notification_sound]: [OnTheHunt.ogg]
    [ro.crypto.state]: [unencrypted]
    [ro.debuggable]: [1]
    [ro.factorytest]: [0]
    [ro.hardware]: [freescale]
    [ro.kernel.android.checkjni]: [1]
    [ro.opengles.version]: [196608]
    [ro.product.board]: []
    [ro.product.brand]: [boundary]
    [ro.product.cpu.abi2]: [armeabi]
    [ro.product.cpu.abi]: [armeabi-v7a]
    [ro.product.device]: [nitrogen6x]
    [ro.product.locale.language]: [en]
    [ro.product.locale.region]: [US]
    [ro.product.manufacturer]: [boundary]
    [ro.product.model]: [NITROGEN6X]
    [ro.product.name]: [nitrogen6x]
    [ro.revision]: [405522]
    [ro.ril.wake_lock_timeout]: [300]
    [ro.runtime.firstboot]: [582594834]
    [ro.secure]: [0]
    [ro.serialno]: [19b80271c6]
    [ro.sf.hwrotation]: [0]
    [ro.sf.lcd_density]: [160]
    [ro.tether.denied]: [false]
    [ro.wifi.channels]: []
    [ro.zygote.disable_gl_preload]: [true]
    [rw.VIDEO_RENDER_NAME]: [video_render.surface]
    [service.bootanim.exit]: [1]
    [sys.boot_completed]: [1]
    [sys.emulated.battery]: [1]
    [sys.interactive]: [active]
    [sys.sysctl.extra_free_kbytes]: [12000]
    [sys.usb.config]: [mtp,adb]
    [sys.usb.state]: [mtp,adb]
    [system_init.startsurfaceflinger]: [0]
    [vold.post_fs_data_done]: [1]
    [wifi.ap.interface]: [wlan0]
    [wifi.interface]: [wlan0]
    [wlan.interface]: [wlan0]
    

    我在Boundary Devices的Sabrelite板上运行Android 4.4.2。有关getprop adb命令,请参见链接。有关更多信息,请参阅此页。

    我知道这已经晚了,但如果有人仍然面临问题,我决定回答。 在早期初始化时- Set init及其分叉的儿童oom_adj 为所有初始化进程设置安全上下文。 在初始化时- 建立全球环境 创建悬置点 在fs上- 装载mtd分区 发布fs- 更改系统目录的权限 发布fs数据- 更改/数据文件夹和子文件夹的权限 开机时- 基本网络初始化,内存管理 服务服务经理 启动system manager以管理所有本机服务,如位置、音频、共享首选项等。 服务合子- 将合子作为应用程序启动


    上述信息的来源是

    查找所有这些标准触发器的最有效方法是对中的所有
    *.rc
    文件执行单词“trigger”的grep


    请参阅AOSP代码的system/core/init文件夹中的自述文件。您可以在这里找到有关android init的所有详细信息


    Android O OS自述文件链接:

    因为它位于方法
    am.QueueEventTrigger()
    (init再次被重写为C++)。这并没有回答问题,文档中没有列出触发器
    grep trigger rootdir/*