Loading init/README.md +9 −9 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ modes. The three default paths should be used for the normal boot process. The intention of these directories is: 1. /system/etc/init/ is for core system items such as SurfaceFlinger, MediaService, and logcatd. SurfaceFlinger, MediaService, and logd. 2. /vendor/etc/init/ is for SoC vendor items such as actions or daemons needed for core SoC functionality. 3. /odm/etc/init/ is for device manufacturer items such as Loading @@ -72,7 +72,7 @@ system macro, LOCAL\_INIT\_RC, that handles this for developers. Each init .rc file should additionally contain any actions associated with its service. An example is the logcatd.rc and Android.mk files located in the An example is the userdebug logcatd.rc and Android.mk files located in the system/core/logcat directory. The LOCAL\_INIT\_RC macro in the Android.mk file places logcatd.rc in /system/etc/init/ during the build process. Init loads logcatd.rc during the mount\_all command and Loading Loading @@ -317,7 +317,7 @@ runs the service. See the below section on debugging for how this can be used. `socket <name> <type> <perm> [ <user> [ <group> [ <seclabel> ] ] ]` > Create a unix domain socket named /dev/socket/_name_ and pass its fd to the > Create a UNIX domain socket named /dev/socket/_name_ and pass its fd to the launched process. _type_ must be "dgram", "stream" or "seqpacket". User and group default to 0. 'seclabel' is the SELinux security context for the socket. It defaults to the service security context, as specified by Loading Loading @@ -506,10 +506,10 @@ Commands > Attempt to mount the named device at the directory _dir_ _flag_s include "ro", "rw", "remount", "noatime", ... _options_ include "barrier=1", "noauto\_da\_alloc", "discard", ... as a comma separated string, eg: barrier=1,noauto\_da\_alloc a comma separated string, e.g. barrier=1,noauto\_da\_alloc `parse_apex_configs` > Parses config file(s) from the mounted APEXes. Intented to be used only once > Parses config file(s) from the mounted APEXes. Intended to be used only once when apexd notifies the mount event by setting apexd.status to ready. `restart <service>` Loading Loading @@ -572,7 +572,7 @@ Commands `symlink <target> <path>` > Create a symbolic link at _path_ with the value _target_ `sysclktz <mins_west_of_gmt>` `sysclktz <minutes_west_of_gmt>` > Set the system clock base (0 if system clock ticks in GMT) `trigger <event>` Loading Loading @@ -725,7 +725,7 @@ Comparing two bootcharts A handy script named compare-bootcharts.py can be used to compare the start/end time of selected processes. The aforementioned grab-bootchart.sh will leave a bootchart tarball named bootchart.tgz at /tmp/android-bootchart. If two such barballs are preserved on the host machine under different If two such tarballs are preserved on the host machine under different directories, the script can list the timestamps differences. For example: Usage: system/core/init/compare-bootcharts.py _base-bootchart-dir_ _exp-bootchart-dir_ Loading Loading @@ -773,7 +773,7 @@ If it is required to debug a service from its very start, the `sigstop` service This option will send SIGSTOP to a service immediately before calling exec. This gives a window where developers can attach a debugger, strace, etc before continuing the service with SIGCONT. This flag can also be dynamically controled via the ctl.sigstop_on and ctl.sigstop_off properties. This flag can also be dynamically controlled via the ctl.sigstop_on and ctl.sigstop_off properties. Below is an example of dynamically debugging logd via the above: Loading Loading
init/README.md +9 −9 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ modes. The three default paths should be used for the normal boot process. The intention of these directories is: 1. /system/etc/init/ is for core system items such as SurfaceFlinger, MediaService, and logcatd. SurfaceFlinger, MediaService, and logd. 2. /vendor/etc/init/ is for SoC vendor items such as actions or daemons needed for core SoC functionality. 3. /odm/etc/init/ is for device manufacturer items such as Loading @@ -72,7 +72,7 @@ system macro, LOCAL\_INIT\_RC, that handles this for developers. Each init .rc file should additionally contain any actions associated with its service. An example is the logcatd.rc and Android.mk files located in the An example is the userdebug logcatd.rc and Android.mk files located in the system/core/logcat directory. The LOCAL\_INIT\_RC macro in the Android.mk file places logcatd.rc in /system/etc/init/ during the build process. Init loads logcatd.rc during the mount\_all command and Loading Loading @@ -317,7 +317,7 @@ runs the service. See the below section on debugging for how this can be used. `socket <name> <type> <perm> [ <user> [ <group> [ <seclabel> ] ] ]` > Create a unix domain socket named /dev/socket/_name_ and pass its fd to the > Create a UNIX domain socket named /dev/socket/_name_ and pass its fd to the launched process. _type_ must be "dgram", "stream" or "seqpacket". User and group default to 0. 'seclabel' is the SELinux security context for the socket. It defaults to the service security context, as specified by Loading Loading @@ -506,10 +506,10 @@ Commands > Attempt to mount the named device at the directory _dir_ _flag_s include "ro", "rw", "remount", "noatime", ... _options_ include "barrier=1", "noauto\_da\_alloc", "discard", ... as a comma separated string, eg: barrier=1,noauto\_da\_alloc a comma separated string, e.g. barrier=1,noauto\_da\_alloc `parse_apex_configs` > Parses config file(s) from the mounted APEXes. Intented to be used only once > Parses config file(s) from the mounted APEXes. Intended to be used only once when apexd notifies the mount event by setting apexd.status to ready. `restart <service>` Loading Loading @@ -572,7 +572,7 @@ Commands `symlink <target> <path>` > Create a symbolic link at _path_ with the value _target_ `sysclktz <mins_west_of_gmt>` `sysclktz <minutes_west_of_gmt>` > Set the system clock base (0 if system clock ticks in GMT) `trigger <event>` Loading Loading @@ -725,7 +725,7 @@ Comparing two bootcharts A handy script named compare-bootcharts.py can be used to compare the start/end time of selected processes. The aforementioned grab-bootchart.sh will leave a bootchart tarball named bootchart.tgz at /tmp/android-bootchart. If two such barballs are preserved on the host machine under different If two such tarballs are preserved on the host machine under different directories, the script can list the timestamps differences. For example: Usage: system/core/init/compare-bootcharts.py _base-bootchart-dir_ _exp-bootchart-dir_ Loading Loading @@ -773,7 +773,7 @@ If it is required to debug a service from its very start, the `sigstop` service This option will send SIGSTOP to a service immediately before calling exec. This gives a window where developers can attach a debugger, strace, etc before continuing the service with SIGCONT. This flag can also be dynamically controled via the ctl.sigstop_on and ctl.sigstop_off properties. This flag can also be dynamically controlled via the ctl.sigstop_on and ctl.sigstop_off properties. Below is an example of dynamically debugging logd via the above: Loading