6

Ice Cream Sandwich 中 init.*.rc 的行为似乎发生了变化。以前,我可以在启动时使用如下条目启动服务:

service my_kool_service /system/bin/my_kool_service

我确实找到了这篇文章,它暗示了要更改为:

service my_kool_service /system/bin/my_kool_service
    class main

那么什么是class main,为什么它是必要的?

该文档确实讨论了class选项”,但没有提供有关默认行为或观察到的更改的详细信息。

当前的 ICS init rc 语言是否正式或以其他方式记录在任何地方?

谢谢你。

4

3 回答 3

4

如前所述,本自述init.rc文件中有记录。service 选项用于对服务进行分组,并分别与命令和一起启动和停止它们。classclass_startclass_stop

特别是 classes coremainlate_start在 Android 3.0 及更高版本中用于加密(请参阅“ Android 3.0 中的加密实现说明”中的“Android 加密的工作原理”部分)。特别是,引用该文件:

核心服务启动后永远不会关闭。输入磁盘密码后关闭主要服务,然后重新启动。直到 /data 被解密和挂载后,late_start 服务才会启动。

于 2013-10-17T09:57:32.357 回答
3

如果在特定类中添加服务,则可以调用 start_class 启动服务。例如,如果您有 10 个在类 test 下的服务,那么通过调用 start_class test,如果它们还没有运行,您可以启动所有 10 个在类 test 下的服务。同样适用于停止所有服务也...

有关 init.rc 语言的更多详细信息,请参阅以下链接 https://github.com/android/platform_system_core/blob/master/init/readme.txt

我希望它会有所帮助.. :)

于 2012-06-29T07:05:41.560 回答
1

class core - 总是先启动,在大多数情况下不能在没有严重后果的情况下关闭 class main - 负责服务。可以重新启动,但只有在绝对需要 的情况下才可以延迟启动- 在整个系统启动并开始对用户可用之前发生。

于 2016-02-17T11:24:08.653 回答