这是 Android 15 64 位系统核心进程 Zygote 的启动配置文件(init.rc 语法),Zygote 是所有 Android 应用进程和系统服务进程的父进程,是 Android 框架层的核心起点。
代码所在路径:
Android15/system/core/rootdir/init.zygote64.rc
bash
service zygote /system/bin/app_process64 -Xzygote /system/bin --zygote --start-system-server --socket-name=zygote
class main
priority -20
user root
group root readproc reserved_disk
socket zygote stream 660 root system
socket usap_pool_primary stream 660 root system
onrestart exec_background - system system -- /system/bin/vdc volume abort_fuse
onrestart write /sys/power/state on
# NOTE: If the wakelock name here is changed, then also
# update it in SystemSuspend.cpp
onrestart write /sys/power/wake_lock zygote_kwl
onrestart restart audioserver
onrestart restart cameraserver
onrestart restart media
onrestart restart --only-if-running media.tuner
onrestart restart netd
onrestart restart wificond
onrestart restart vendor.input-default
task_profiles ProcessCapacityHigh MaxPerformance
critical window=${zygote.critical_window.minute:-off} target=zygote-fatal
1. 服务定义核心行
service zygote /system/bin/app_process64 -Xzygote /system/bin --zygote --start-system-server --socket-name=zygote
service zygote:定义一个名为zygote的系统服务/system/bin/app_process64:64 位 Zygote 的可执行程序(app_process 是 ART 虚拟机启动入口)- 启动参数详解:
-Xzygote:标记以 Zygote 模式启动 ART 虚拟机/system/bin:虚拟机运行目录--zygote:核心标识,启用 Zygote 孵化进程模式--start-system-server:Zygote 启动后自动孵化 SystemServer(Android 系统服务管家)--socket-name=zygote:指定进程通信 Socket 名称
2. 服务分类与优先级
class main # 归属核心服务组,系统启动时必须启动
priority -20 # 最高优先级(Linux优先级:-20最高,19最低)
Zygote 是系统最核心进程,必须分配最高 CPU 优先级,保证响应速度。
3. 运行权限
user root # 以root用户运行
group root readproc reserved_disk # 附加用户组:root、进程读取、磁盘预留权限
Zygote 需要 root 权限才能创建应用进程、管理 Socket、操作系统文件。
4. IPC Socket 进程间通信(核心功能)
socket zygote stream 660 root system
socket usap_pool_primary stream 660 root system
Android 系统通过Socket与 Zygote 通信,请求孵化新应用进程:
zygote:传统 Zygote 通信 Socketusap_pool_primary:Android 12 + 新增,预孵化应用进程池(USAP),加速应用启动
stream:TCP 流 Socket660:权限(读写权限,仅所有者和组可访问)root system:Socket 归属 root 用户、system 组
5. onrestart:Zygote 重启时执行的动作
Zygote 是critical 关键进程,崩溃后系统会自动重启,重启时必须同步重启所有依赖的系统服务:
# 后台执行:终止FUSE文件系统
onrestart exec_background - system system -- /system/bin/vdc volume abort_fuse
# 唤醒系统,防止休眠
onrestart write /sys/power/state on
# 持有唤醒锁,保证重启过程不被休眠打断
onrestart write /sys/power/wake_lock zygote_kwl
# 重启核心系统服务
onrestart restart audioserver # 音频服务
onrestart restart cameraserver # 相机服务
onrestart restart media # 多媒体服务
onrestart restart --only-if-running media.tuner # 仅运行时重启调谐器服务
onrestart restart netd # 网络管理
onrestart restart wificond # WiFi管理
onrestart restart vendor.input-default # 输入设备服务
✅ 关键逻辑:Zygote 崩溃 = 整个 Java 框架层崩溃,所以必须重启所有音视频、网络、输入相关服务。
6. 性能配置(Android 10+ 新特性)
task_profiles ProcessCapacityHigh MaxPerformance
绑定系统性能配置文件:
ProcessCapacityHigh:高算力分配MaxPerformance:最大性能模式强制 Zygote 使用最高性能,加速应用进程孵化。
7. 关键进程保护策略(Android 15 核心配置)
critical window=${zygote.critical_window.minute:-off} target=zygote-fatal
这是 Android 关键进程守护机制:
critical:标记 Zygote 为系统关键进程window:崩溃重启保护窗口(默认关闭)target=zygote-fatal:Zygote 反复崩溃时,触发zygote-fatal故障,系统会重启或上报致命错误
核心总结:Zygote 到底做什么?
- 启动 ART 虚拟机,初始化 Java 运行环境
- 孵化 SystemServer(系统所有服务:AMS、WMS、PMS 等)
- 孵化所有应用进程(每打开一个 App,都是 Zygote fork 出来的)
- 拥有最高优先级 + root 权限,是 Android 框架层的根进程
- 崩溃会触发系统级重启,并连带重启所有依赖服务
总结
- 这是Android 15 64 位 Zygote 主进程 的 init 启动配置,是 Android 系统的进程之母
- 核心作用:启动 SystemServer + 孵化所有应用进程
- 配置包含:最高权限、最高优先级、进程通信 Socket、重启依赖服务、性能优化、关键进程保护
- Zygote 崩溃 = Android Java 框架层崩溃,系统会强制重启恢复