As discussed earlier the app_process(Zygote) is started by the init.rc with the following command -- /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server The syntax to be used is -- app_process [java-options] cmd-dir start-class-name [options] The implementation of this is present in / frameworks / base / cmds / app_process / app_main.cpp This process starts the interpreted runtime, then starts up the application(system-server in this case) arg -Xzygote : Starts in zygote mode arg start-system-server: starts system-server process When starting system server this process: Creates Dalvik Cache Folder maybeCreateDalvikCache() Calls Android Runtime.start, with args "start-system-server" and "abi-list" runtime.start("com.android.internal.os.ZygoteInit", args, zygote); When not starting in Zygote Mode, it just passes the arguements to the application process runtime.s...