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