Android 부팅 프로세스 소개

3979 단어
일반적으로 전원을 켜는 과정은 크게 세 단계로 나눌 수 있습니다.
1. OS 레벨,bootloader에서 linuxkernel을 불러온 후,kernel을 초기화하고built-in 드라이버를 불러옵니다.Kernel이 켜진 후 init 프로세스를 불러오고user-space로 전환한 후kernel의 순서 프로세스 (sequence) 를 끝내고 스케줄 모드 (process scheduling) 에 들어갑니다.
2. Android-level, init process에서 시작하여 init를 읽습니다.rc, Native 서비스가 시작되고 중요한 외부 프로그램, 예를 들어 서비스 관리자, Zygote 및 System Server를 시작합니다.
3. Zygote-Mode, Zygote가 System Server를 시작한 후 Zygote Mode에 들어가서 Socket에서 명령을 기다립니다.그러면 사용자가 데스크탑 환경(Home Screen)을 볼 수 있습니다.데스크톱 환경은 Launcher라는 애플리케이션이 제공합니다.
참고: Zygote는 주로 System 서버를 시작하고 android 프로그램(APK)을 실행합니다.System 서버를 성공적으로 시작하면 socket 방식으로 모니터 (모니터 android apps/prcesses)
init. 보기rc 파일은 서비스 관리자를 먼저 시작한 다음zygote를 시작합니다.
service ueventd /sbin/ueventd
    class core
    critical

service console /system/bin/sh
    class core
    console
    disabled
    user shell
    group log
service adbd /sbin/adbd
    class core
    disabled
service servicemanager /system/bin/servicemanager
    class core
    user system
    group system
    critical
    onrestart restart zygote
    onrestart restart media
    onrestart restart surfaceflinger
    onrestart restart drm

service vold /system/bin/vold
    class core
    socket vold stream 0660 root mount
    ioprio be 2

service netd /system/bin/netd
    class main
    socket netd stream 0660 root system
    socket dnsproxyd stream 0660 root inet
    socket mdns stream 0660 root system

service debuggerd /system/bin/debuggerd
    class main
service surfaceflinger /system/bin/surfaceflinger
    class main
    user system
    group graphics
    onrestart restart zygote

service zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server
    class main
    socket zygote stream 660 root system
    onrestart write /sys/android_power/request_state wake
    onrestart write /sys/power/state on
    onrestart restart media
    onrestart restart netd

service drm /system/bin/drmserver
    class main
    user drm
    group drm system inet drmrpc sdcard_r

service media /system/bin/mediaserver
    class main
    user media
    group audio camera inet net_bt net_bt_admin net_bw_acct drmrpc system
    ioprio rt 4

service bootanim /system/bin/bootanimation
    class main
    user graphics
    group graphics
    disabled
    oneshot

service dbus /system/bin/dbus-daemon --system --nofork
    class main
    socket dbus stream 660 bluetooth bluetooth
    user bluetooth
    group bluetooth net_bt_admin

service bluetoothd /system/bin/bluetoothd -n
    class main
    socket bluetooth stream 660 bluetooth bluetooth
    socket dbus_bluetooth stream 660 bluetooth bluetooth
    # init.rc does not yet support applying capabilities, so run as root and
    # let bluetoothd drop uid to bluetooth with the right linux capabilities
    group bluetooth net_bt_admin misc
    disabled

service installd /system/bin/installd
    class main
    socket installd stream 600 system system

service flash_recovery /system/etc/install-recovery.sh
    class main
    oneshot
service racoon /system/bin/racoon
    class main
    socket racoon stream 600 system system
    # IKE uses UDP port 500. Racoon will setuid to  after binding the port.
    group  net_admin inet
    disabled
    oneshot

service mtpd /system/bin/mtpd
    class main
    socket mtpd stream 600 system system
    user 
    group  net_admin inet net_raw
    disabled
    oneshot

service keystore /system/bin/keystore /data/misc/keystore
    class main
    user keystore
    group keystore drmrpc
    socket keystore stream 666

service dumpstate /system/bin/dumpstate -s
    class main
    socket dumpstate stream 0660 shell log
    disabled
    oneshot

service sshd /system/bin/start-ssh
    class main
    disabled

service mdnsd /system/bin/mdnsd
    class main
    user mdnsr
    group inet net_raw
    socket mdnsd stream 0660 mdnsr inet
    disabled
    oneshot

service vtserver /system/bin/vtserver
    user root
    disabled
    oneshot

좋은 웹페이지 즐겨찾기