本次系列的內(nèi)容如下:
Android啟動流程——1 序言、bootloader引導(dǎo)與Linux啟動
Android系統(tǒng)啟動——2 init進(jìn)程
Android系統(tǒng)啟動——3 init.rc解析
Android系統(tǒng)啟動——4 zyogte進(jìn)程
Android系統(tǒng)啟動——5 zyogte進(jìn)程(Java篇)
Android系統(tǒng)啟動——6 SystemServer啟動
Android系統(tǒng)啟動——7 附錄1:Android屬性系統(tǒng)
Android系統(tǒng)啟動——8 附錄2:相關(guān)守護(hù)進(jìn)程簡介
在init.rc
中定義了很多系統(tǒng)的守護(hù)進(jìn)程,這里主要是做一些簡單的介紹
一、uevent
負(fù)責(zé)相應(yīng)uevent事件,創(chuàng)建設(shè)備節(jié)點(diǎn)文件:
代碼在init.rc 550行
550service ueventd /sbin/ueventd
551 class core
552 critical
553 seclabel u:r:ueventd:s0
二、console
包含常用的shell命令、如ls、cd等
代碼在init.rc 574行
574service console /system/bin/sh
575 class core
576 console
577 disabled
578 user shell
579 group shell log
580 seclabel u:r:shell:s0
三、adbd
abd的守護(hù)進(jìn)程:
代碼在init.rc 585行
585# adbd is controlled via property triggers in init.<platform>.usb.rc
586service adbd /sbin/adbd --root_seclabel=u:r:su:s0
587 class core
588 socket adbd stream 660 system system
589 disabled
590 seclabel u:r:adbd:s0
四、servicemanager
binder的服務(wù)總管,負(fù)責(zé)binder服務(wù)的注冊和查找
代碼在init.rc 602行
602service servicemanager /system/bin/servicemanager
603 class core
604 user system
605 group system
606 critical
607 onrestart restart healthd
608 onrestart restart zygote
609 onrestart restart media
610 onrestart restart surfaceflinger
611 onrestart restart drm
五、vold
負(fù)責(zé)完成系統(tǒng)USB存儲卡等擴(kuò)展存儲自動掛載的守護(hù)進(jìn)程
代碼在init.rc 613行
613service vold /system/bin/vold \
614 --blkid_context=u:r:blkid:s0 --blkid_untrusted_context=u:r:blkid_untrusted:s0 \
615 --fsck_context=u:r:fsck:s0 --fsck_untrusted_context=u:r:fsck_untrusted:s0
616 class core
617 socket vold stream 0660 root mount
618 socket cryptd stream 0660 root mount
619 ioprio be 2
六、netd
Android 網(wǎng)絡(luò)守護(hù)進(jìn)程
代碼在init.rc 621行
621service netd /system/bin/netd
622 class main
623 socket netd stream 0660 root system
624 socket dnsproxyd stream 0660 root inet
625 socket mdns stream 0660 root system
626 socket fwmarkd stream 0660 root inet
七、debuggerd
負(fù)責(zé)異常退出的診斷。如果偵測到程序崩潰,debuggerd將把崩潰時的進(jìn)程狀態(tài)信息輸出到文件和串口中,供開發(fā)人員分析和調(diào)試使用:
代碼在init.rc 628行
628service debuggerd /system/bin/debuggerd
629 class main
630 writepid /dev/cpuset/system-background/tasks
631
632service debuggerd64 /system/bin/debuggerd64
633 class main
634 writepid /dev/cpuset/system-background/tasks
八、ril-deamon
手機(jī)底層的通信系統(tǒng)的守護(hù)進(jìn)程
代碼在init.rc 636行
636service ril-daemon /system/bin/rild
637 class main
638 socket rild stream 660 root radio
639 socket sap_uim_socket1 stream 660 bluetooth bluetooth
640 socket rild-debug stream 660 radio system
641 user root
642 group radio cache inet misc audio log
九、surfaceflinger:
負(fù)責(zé)合成系統(tǒng)所有顯示圖層的服務(wù)進(jìn)程
代碼在init.rc 644行
644service surfaceflinger /system/bin/surfaceflinger
645 class core
646 user system
647 group graphics drmrpc
648 onrestart restart zygote
649 writepid /dev/cpuset/system-background/tasks
十、media:
系統(tǒng)多媒體部分的守護(hù)進(jìn)程,包含了audio、mediaplayer以及camera 等系統(tǒng)服務(wù)
代碼在init.rc 656行
656service media /system/bin/mediaserver
657 class main
658 user media
659 group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc mediadrm
660 ioprio rt 4
十一、bootanim:
播放開機(jī)動畫的進(jìn)程
代碼在init.rc 644行
676service bootanim /system/bin/bootanimation
677 class core
678 user graphics
679 group graphics audio
680 disabled
681 oneshot
十二、installd:
Android的安裝服務(wù)守護(hù)進(jìn)程
687service installd /system/bin/installd
688 class main
689 socket installd stream 600 system system
上一篇文章 Android系統(tǒng)啟動——7 附錄1:Android屬性系統(tǒng)