History log of /system/core/init/init.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
01b1dee0ab7ad649760f9d8a7cead2a3f6d9cf70 05-Oct-2012 Nick Kralevich <nnk@google.com> init: Set ADDR_COMPAT_LAYOUT before spawning processes.

Some Android programs have problems with memory which grows
from the top down. Temporarily set ADDR_COMPAT_LAYOUT to
avoid breaking those programs.

Bug: 7188322
Change-Id: I61760500e670b4563838c63b82d4a0b6e354a86e
2fec4de5c704afe4dc2a1bb976699a0e363786dd 13-Aug-2012 Kenny Root <kroot@android.com> am 11c783f1: am 9494f297: Merge "Implement SELinux/MAC checks for property service."

* commit '11c783f1ead9f276e8854cb1adaebeed8517e8a1':
Implement SELinux/MAC checks for property service.
605103fb553a8b872aa8dd0aef76ae8b3bfe47fa 13-Aug-2012 Kenny Root <kroot@google.com> resolved conflicts for merge of 4dcd52ab to jb-mr1-dev

Change-Id: Ibd0c03a7883a2e31adab18543c016776b7b36866
63207cd20f2156bec937a85e789f07de0d1afa9d 09-Aug-2012 rpcraig <rpcraig@tycho.ncsc.mil> Implement SELinux/MAC checks for property service.

This is a set of changes to the init property service
implementation to apply a SELinux check over who can
change what properties. Also included control hooks
for the 'ctl' keys.

Change-Id: I5a18809bf5536f6459a36b6bf0d622b9f5061aa0
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
ae6f3d7c05070f7e0e56fe0056c8923c6ee2f473 01-May-2012 Stephen Smalley <sds@tycho.nsa.gov> Add support for reloading policy from /data/system.

To support runtime policy management, add support for reloading
policy from /data/system. This can be triggered by setting the
selinux.loadpolicy property to 1, whether from init.rc after
mounting /data or from the system_server (e.g. upon invocation of
a new device admin API for provisioning policy). ueventd and
installd are restarted upon policy reloads to pick up the new
policy configurations relevant to their operation.

Change-Id: I97479aecef8cec23b32f60e09cc778cc5520b691
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
ff5c802e6ce489a36ac28e3d93b7e8541b3e4d81 08-Aug-2012 Jean-Baptiste Queru <jbq@google.com> am faad67fa: am ef3f7fa3: Merge "Set the SELinux security label on new directories."

* commit 'faad67fac68642ca039fe5c29099acebf546f5ee':
Set the SELinux security label on new directories.
ef3f7fa32b451bd6f180c4c1586a98cee41aa296 08-Aug-2012 Jean-Baptiste Queru <jbq@google.com> Merge "Set the SELinux security label on new directories."
e096e36e50b4b66638ebc4d3c09c2ee35f538dfa 11-Jun-2012 Stephen Smalley <sds@tycho.nsa.gov> Set the SELinux security label on new directories.

Automatically set the SELinux security label on directories created
by init.rc. This avoids the need to separately call restorecon on
each such directory from the init.rc file. Also restorecon /dev
and /dev/socket after initial policy load so that they are labeled
correctly before any other dev nodes or sockets are created.

Change-Id: If6af6c4887cdead949737cebdd673957e9273ead
Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
d97d9074ba818de5af45ce4e0f5c30053ae467d0 14-Jun-2012 Arve Hjønnevåg <arve@android.com> Add watchdogd

"/sbin/watchdogd <interval> <margin>" will open /dev/watchdog, try
to set the timeout to <interval>+<margin> then write to it every
<interval> seconds to reset the watchdog.

Change-Id: I15571980cdb868ec19f20e80bf8274b32107d36d
34f6d9e910824d6af22c71e6e94a8bea5cde16c8 13-Apr-2012 Andrew Flynn <flynn@google.com> Don't set ro.carrier in init.c

It will instead be set using PRODUCT_PROPERTY_OVERRIDES
in makefiles

Change-Id: Idc8b480af4c15e15c2d97cdd82a20f259e027c52
6ebf12fe1bc2de7af4522349973e8bfcc71d6126 26-Mar-2012 Nick Kralevich <nnk@google.com> init: Change umask of forked processes to 077

Modify init to set the umask to 077 when forking processes.
This helps protect against inadvertant information disclosure
in init's child processes.

ueventd: Keep umask at 000. uevent needs to be able to
create device nodes with exactly the permissions it

1) Do an "ls -lR /data /dev" on the device before and after
the umask change and diff the output. Verified by hand
that the permission change wouldn't cause any problems.

2) Verify that package installation works, and the permissions
are as expected, when installing a program from market and
"adb install".

Bug: 3272072
Change-Id: Ie4f7f06c0ee9da8d9b6fce25d71d8991a9bce406
50fb5a69333e4eb0b5fc30fdeae54bc73243061d 18-Mar-2012 Colin Cross <ccross@android.com> init: manually set controlling tty for console services

Normally, calling open on a tty will set that tty as the process
group controlling tty if none already exists. However, if the tty
is /dev/console, the kernel will never automatically set it as the
controlling tty. Call the TIOCSCTTY manually on the fd, which will
always attempt to set it as the controlling tty.

Fixes ctrl-c on the console shell when androidboot.console is not
passed on the kernel command line and the default /dev/console is

Change-Id: I449cc41b47e93ac38ad6987413bb54131e1ec0cd
469b7b2da84a62652342fd2f6006ca452cb1447d 02-Mar-2012 Chris Dearman <chris@mips.com> Fix typo in queue_property_triggers ident

Signed-off-by: Chris Dearman <chris@mips.com>
Change-Id: I5f18ccb0912b9bb89c9f5104f9505c610c109af8
e46f9d510db9351682cf17c49115110870147335 13-Jan-2012 Stephen Smalley <sds@tycho.nsa.gov> Extend init and ueventd for SE Android.

Add SE Android support for init and ueventd.

- Load policy at boot.
- Set the security context for service daemons and their sockets.
- New built-in commands: setcon, setenforce, restorecon, setsebool.
- New option for services: seclabel.

- Set the security context for device directories and nodes.

Change-Id: I98ed752cde503c94d99dfa5b5a47e3c33db16aac
5511c84a50617d1b3c280beb49de38ed1aae21c6 19-Dec-2011 Dima Zavin <dima@android.com> init: export all androidboot cmd line values as ro.boot.xx props

Also, clean up how we initialize the ro.xx properties and process
the kernel command line.

Change-Id: Iedda6c90e31340a189171a44b2767480403354f7
Signed-off-by: Dima Zavin <dima@android.com>
3e7b7739e3d4d7aaaa363645501036dafcc30ed3 16-Dec-2011 Dima Zavin <dima@android.com> init: import the hardware specific init file in init.rc

This removes the hardcoding of the file import in init and instead
allows the init.rc file to fully control what is loaded.

Change-Id: I933e5bbab57f1e8705a370d660f92c6508da94d2
Signed-off-by: Dima Zavin <dima@android.com>
d7634c9cdad7bec39294a993b0bc898eaf709829 16-Dec-2011 Dima Zavin <dima@android.com> init: initialize property area early at boot

The property service is still started later, but the property area
and the initial boot properties are initialized before the init.rc
file is processed. This allows init.rc files to have access to boot
properties during parsing.

Change-Id: Iae9ed1093c821831a864b39ae6bc697e62b94757
Signed-off-by: Dima Zavin <dima@android.com>
a286480f56012abdb4ef4ddab1c19a5c2316b7b8 27-Oct-2011 Ken Sumrall <ksumrall@android.com> Fix the class_reset command

The class_reset command used to reset services that had been set to
"disabled" in the init.rc file to a non-disabled state. Now, if the
service was originally set to "disabled", have the reset command set
it back to disabled. Otherwise, set it to the "reset" state as it
currently does.

Change-Id: I0c10582e46a8e443d4748d9d893ae762b19b653a
2b99543cef1b8b0aa8cca39544939910035117b0 28-Sep-2011 Vladimir Chtchetkine <vchtchetkine@google.com> Pick up on androidboot.hardware kernel cmd option

x86 emulator passes hardware name through the androidboot.hardware kernel cmd option, and
ueventd must pick up on it to locate proper ueventd.rc file for that hardware.

Change-Id: Id61c5b67fe6275a15c7aa62556e0b89eda7968f8
ebf46586f57e580d0195a06c32103ea393314f01 06-Sep-2011 Dima Zavin <dima@android.com> init: do not load default.prop from ramdisk in charger mode

Change-Id: Ic471b891829d7f857674b925c9948954972d9ecb
Signed-off-by: Dima Zavin <dima@android.com>
ca47cef7491caf6072984d9d64c768717baad09a 25-Aug-2011 Dima Zavin <dima@android.com> init: add charge mode handling

Introduces a 'charger' section that is processed when androidboot.mode
supplied on the kernel commandline is "charger".

In this mode, sections such as fs, post-fs, etc are skipped. Only the
'early-init' and 'init' sections of the init rc files are processed before
processing the 'charger' section.

Change-Id: If9eb6334de18f04cbcf2aab784578e2993615242
Signed-off-by: Dima Zavin <dima@android.com>
da04c52ab1036048520fca265cf02b61dca789e0 02-Sep-2011 Dima Zavin <dima@android.com> init/cutils: move list utility code to cutils from init

Change-Id: I357ceee813700297d8343159f22a07659e768d41
Signed-off-by: Dima Zavin <dima@android.com>
8f91282ebe1963b9d27f8779ad1342302b293bd2 01-Sep-2011 Dima Zavin <dima@android.com> init/cutils: move kernel logging interface to libcutils from init

Change-Id: Ia0f91b1fcd6cae69d76bf3dd841340958db938a8
Signed-off-by: Dima Zavin <dima@android.com>
3bea0790e23811d9139f5b39e9b126445fee061c 26-Aug-2011 Dima Zavin <dima@android.com> init: check for list empty when getting commands for action

Change-Id: Id42d6a6b6297919b2e6520e074e31b5e01ae17bc
Signed-off-by: Dima Zavin <dima@android.com>
c21dcef9fecaa224f153af0c5643fca4933bbc7f 26-Jul-2011 Conley Owens <cco3@android.com> am 45e8fc6b: am 8621b5ea: am 212282c3: am 80dbd2a7: Merge "Fix build error in init when building with bootchart"

* commit '45e8fc6bfd9221274f48861287ff7af06ee7a199':
Fix build error in init when building with bootchart
45e8fc6bfd9221274f48861287ff7af06ee7a199 25-Jul-2011 Conley Owens <cco3@android.com> am 8621b5ea: am 212282c3: am 80dbd2a7: Merge "Fix build error in init when building with bootchart"

* commit '8621b5ea475822499128e6f138a9dfc224bbb569':
Fix build error in init when building with bootchart
9ab8190e418c9985ae1b92ad8fa2d20b2ed216e9 14-Jan-2011 Carl-Emil Lagerstedt <carl-emil.lagerstedt@sonyericsson.com> Fix build error in init when building with bootchart

There was a build error in init.c if you enabled bootchart, this
should probably be shipped upstream if not fixed already.

Change-Id: Iea3451c3e15d5cac00c5420d99bfce9a950aaaac
8d48c8e45724c7103f0ace7885d339e49399908b 24-Mar-2011 Brian Swetland <swetland@google.com> defer firmware load until after filesystems are mounted

In some situations a driver could try to request firmware before
/system is mounted. Previously we'd fail the request. Now we
will retry the read-from-filesystem every 100ms until we find the
firmware or we've finished the "fs" and "post-fs" stages of init.

Change-Id: Ie32402f7d41c818bf20f3297286ed5f99705b72c
752923c168009d03e9e00e590155fbd0a2880ccb 04-Dec-2010 Ken Sumrall <ksumrall@android.com> Changes to init to support encrypted filesystems.

These are the changes to init and init.rc necessary to
support booting with and encrypted /data filesystem.
A corresponding change to init.<device>.rc goes along
with this change.

Change-Id: I0c7e2cc39568358014a82e317735c0eae14dd683
d5c8ddfdf3f275226c02dc00ccbe63229acf6786 08-Dec-2010 Iliyan Malchev <malchev@google.com> Revert "Add "slow_start" keyword to init"

This reverts commit 50b3afd9f39619f69dc6f4efc29be88933eb3614.
50b3afd9f39619f69dc6f4efc29be88933eb3614 05-Dec-2010 Paul Eastham <eastham@google.com> Add "slow_start" keyword to init

This keyword will cause init to wait a few seconds before exec'ing
the target binary. Maybe only useful for hacks and debugging.

Change-Id: I85caa0bcbc0be7e48bd21eb9e31e039c0740c8d5
2268718ee2b23936f6db88eff7af03762713c169 18-Nov-2010 Nick Kralevich <nnk@google.com> check the return value of setuid and friends

Under some circumstances, setuid() and family can fail,
returning a non-zero value. (see "man setuid" for details).
If this happens, we want to ensure that init doesn't spawn a
process which has root privileges when it's not suppose to.

Change-Id: Idd03f2c8f82a7eaf6e696b5bcfe308e51ea58b52
cfa0d8439384a1aaa53d31fb720c234cabf796ee 03-Oct-2010 Wink Saville <wink@google.com> Allow AID_RADIO to restart the ril-daemon.

This enhances robustness by allowing the Telephony Framework to restart
ril-daemon if it notices some catastrophic failure.

Added setprop ctl.restart.
Added ril-daemon to setprop control_perms and allow users/groups
with the AID_RADIO ID to control it.

Change-Id: I195abdd754a731ce0b77e8f71ab47fde8c3e7977
64092e852d0879d07ded15c429473c45da389454 01-Oct-2010 Mike Lockwood <lockwood@android.com> am 78ea2374: am 912ff85b: init: Add support for SOCK_SEQPACKET socket type

Merge commit '78ea2374c5c87d7bb58747b1a6173c598f386600'

* commit '78ea2374c5c87d7bb58747b1a6173c598f386600':
init: Add support for SOCK_SEQPACKET socket type
912ff85b035e0e6bc109812c1ea5661ea4df5967 01-Oct-2010 Mike Lockwood <lockwood@android.com> init: Add support for SOCK_SEQPACKET socket type

Change-Id: Ib264ecf9beb2685b070436d2bdec9655c7a31b47
Signed-off-by: Mike Lockwood <lockwood@android.com>
150f19e373f57c245609c2252be257b8a9ab15fd 23-Jun-2010 Nick Kralevich <nnk@google.com> Mount /dev with nosuid

Change-Id: I66c7fcf9b65405dfc12d344ef3ed225d0ad2db84
4ea085064236fc23ff7f8398345b0fa45646ade7 16-Jun-2010 Nick Kralevich <nnk@google.com> Revert "Mount /dev with noexec and nosuid"

This reverts commit 4ec97f2b257f5c9ed7cf6f0245212f4e3eb60c1b.
4ec97f2b257f5c9ed7cf6f0245212f4e3eb60c1b 08-Jun-2010 Nick Kralevich <nnk@google.com> Mount /dev with noexec and nosuid

Change-Id: Iea182c1e6a72c281abd17bf83ff765bb9cb59270
ebd4613bfc8d926503f7de38240529ce0b1997ee 22-Apr-2010 Colin Cross <ccross@android.com> init: Fix init spinning once init.rc is complete

When the init process ran out of actions to execute, cur_action was
NULL and action_queue_empty() was true, but cur_command was still
set. This patch clears cur_command when a new action is retreived,
and only depends on cur_action and action_queue_empty() to determine
the poll timeout.

Change-Id: Iaa95063c8c267a5b1ada9f20363b99c433e61ac4
f83d0b9af5cbe4440cc41ceaa8a7806a13c86282 21-Apr-2010 Colin Cross <ccross@android.com> init: Move uevent handling to an external ueventd process

Change-Id: Iea6c56013062ade633a1754f7bcf8cf09b3dedc1
6310a8261c922533a692fb3e74ece2da98d4bafa 20-Apr-2010 Colin Cross <ccross@android.com> init: Split parser into generic parser and init parser

Change-Id: I451ebc4ff12f2ac660eb533fa10ad561fa25c9dd
3294bbbad9494eb4ca534624b96e39f8ed15aaf2 20-Apr-2010 Colin Cross <ccross@android.com> init: Allow services to start before property triggers are up

Change-Id: I4f87657123bea88b7b5c537781868908d8d66b01
ed8a7d84428ec945c48b6b53dc5a3a18fabaf683 20-Apr-2010 Colin Cross <ccross@android.com> init: Move list and log handling to list.h and log.h

Change-Id: I298f575c590d0f28b7ad78747f3ebdbba56b7a27
ebc6ff105a114ff5b5465e64fa0f3889730da19d 14-Apr-2010 Colin Cross <ccross@android.com> init: Handle commands in event queue loop

Change-Id: I679059dae43143f3c8f16b68de5694539b699e50
3899e9fc01cf608f19f716749c54cc5c4d17e766 14-Apr-2010 Colin Cross <ccross@android.com> init: Move prototypes for util.c into util.h

Change-Id: I46a91849ce5297eb2597dd6134412f817564ec24
9c5366ba55b1553b2d66f48e3d14fbd274a2944d 14-Apr-2010 Colin Cross <ccross@android.com> init: Move signal handling to signal_handler.c

Change-Id: I3a24afa28a1cd279c749d6f384f687b8de56067e
504bc5175a8fe5a2f2552903afee761a86283cf4 14-Apr-2010 Colin Cross <ccross@android.com> init: Move gettime() to util.c

Change-Id: I1df96964763f8baedbc1cea6875d3dfc5e48c065
d11beb2b1516144327c3f730f75e6b4bc65f1374 14-Apr-2010 Colin Cross <ccross@android.com> init: Move property_set_fd to property_service.c

Change-Id: Ic7a19073eae8f353d48cabee80fa9722b35a82b5
ca7648ddfb46347c60014a849b0150a74df4e1d2 14-Apr-2010 Colin Cross <ccross@android.com> init: Move parser prototypes to parser.h

Change-Id: I31db51eb8e8a33a0bd06b41206bc9f9147d16d41
0dd7ca6e87abb689700c5e3a816a949b03b1154b 14-Apr-2010 Colin Cross <ccross@android.com> init: Move device_fd to devices.c

Change-Id: I11ed0f3e1b95d2cff4fdbd80b915c01572f76b0e
a866695ebe3a396a0ec411c0f99e0921c74c0fd2 14-Apr-2010 Colin Cross <ccross@android.com> init: Move keychords to keychords.c

Change-Id: I8fba9f5f73439a451fc961f8111612dff4fb5dfd
f24ed8ca0a13f1b97bd55d10f75a289bf9ccd98d 13-Apr-2010 Colin Cross <ccross@android.com> init: Move mtd functions from init.c to util.c

Change-Id: I04e8f0ae6cc88af974372872e5617d16e0b1a2c8
31712beaf7de127a1249b909cdefffbc25fff076 09-Apr-2010 Colin Cross <ccross@android.com> Move filesystem mounting into a new "fs" init level

Devices with non-MTD storage need to override the filesystem mounting
commands in init.rc. Moving them to a new "fs" init level allows a
custom init.<device>.rc to handle the mounting.

Change-Id: If0e655139b9734650fb798b6eb0a90e2241fc29b
4e221f0077373b37ca70e862eface2987557295b 25-Feb-2010 San Mehat <san@google.com> init: Add support for specifying a services i/o priority

Signed-off-by: San Mehat <san@google.com>
7a36210cdb39bde3a7d73095d5891678685e431f 19-Jan-2010 Mike Lockwood <lockwood@android.com> init: Support bugreports to SD card in user builds if adb is enabled.

The rationale being that we do not want this enabled by default, but
tying it to adb being enabled allows convenient bugreport collection
for savvy users and developers using production devices.

Change-Id: I71535b33f0774faf1975c98d106080f2ff12e349
Signed-off-by: Mike Lockwood <lockwood@android.com>
8c92ba1921fc8dc3fc7cc39ef854e9ee70fafc67 01-Sep-2009 Jean-Baptiste Queru <jbq@google.com> merge from open-source master
dc816d5dcd87a3578e47eade55db80b99b802c62 14-Jan-2009 Ben Gruver <JesusFreke@JesusFreke.com> Allow an onrestart command to stop the current service

For example,

service recovery /sbin/recovery
onrestart start loadkeys
onrestart class_start con
onrestart stop recovery

Previously, if you had a service like the above, the "onrestart stop
recovery" clause would not have any effect, because the restart flag
would be re-set after the stop command had executed.

This is similar to a service with the "oneshot" keyword, with the critical
difference being that it executes the other onrestart commands when the
service dies.
11e1c42df69b15c938aa1b7570e4370e6ab15a86 17-Nov-2008 Jay Freeman (saurik) <saurik@saurik.com> completed implementation of "trigger" for init
96d58f4f521ee4c1fef58efe5c009f1ea523d67c 26-Jul-2009 Jean-Baptiste Queru <jbq@google.com> Merge korg/donut into korg/master
0b5cb96fa46a892fb3662ddf341fdc095dabcd82 20-May-2009 San Mehat <san@google.com> am d4cdd13f: init: Clean up dynamic argument handling for services

Merge commit 'd4cdd13f6f56f3fe8d8511b609e823925fdd83f9'

* commit 'd4cdd13f6f56f3fe8d8511b609e823925fdd83f9':
init: Clean up dynamic argument handling for services
d4cdd13f6f56f3fe8d8511b609e823925fdd83f9 20-May-2009 San Mehat <san@google.com> init: Clean up dynamic argument handling for services

Signed-off-by: San Mehat <san@google.com>
8ad15685e6d3d2251ceac4ac7135397cf6140e1a 20-May-2009 San Mehat <san@google.com> resolved conflicts w/ f24e252903ca0f71c7fbfb135cf17e83e0c2ea90 merge...
f24e252903ca0f71c7fbfb135cf17e83e0c2ea90 19-May-2009 San Mehat <san@google.com> init: Add the ability to start services with dynamic arguments.

To add arguments dynamically to a service, start the service like so:

setprop ctl.start service_to_run:arg1 arg2 arg3...

To start a service with *no* dynamic arguments, start the service normally:

setprop ctl.start service_to_run

Dynamic arguments are only supported on 'oneshot' services

Signed-off-by: San Mehat <san@google.com>
06c6589b1078a73ce25680f951356b1075418441 06-May-2009 Dima Zavin <dima@android.com> am 770354d: init: Fix segfault when log_write() was missing an arg to fo

Merge commit '770354d7e6cd471daed426fcf04bf7246e7cb18b'

* commit '770354d7e6cd471daed426fcf04bf7246e7cb18b':
init: Fix segfault when log_write() was missing an arg to format.
770354d7e6cd471daed426fcf04bf7246e7cb18b 06-May-2009 Dima Zavin <dima@android.com> init: Fix segfault when log_write() was missing an arg to format.

Also, flag log_write() as a printf-like beast to gcc.

Signed-off-by: Dima Zavin <dima@android.com>
dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
e54eebbf1a908d65ee8cf80bab62821c05666d70 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
038862e152b98d0c0f355c6802beaa1ed59cefbe 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> Merge branch 'cupcake'
5ae090ed949cea9d1e7ab1552b455a229f8f9757 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
77d0c65b950570edd5241a8f2ebecfc3acbc5135 19-Dec-2008 Jean-Baptiste Queru <jbq@google.com> Merge commit 'remotes/korg/cupcake'

35237d135807af84bf9b0e5b8d7f8633e58db6f5 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
165de92bf1bca1648b4df3047a8f274e0aff4ca9 23-Nov-2008 Ivan Djelic <ivan.djelic@parrot.com> show error message when exec fails during service startup
4f6e8d7a00cbeda1e70cc15be9c4af1018bdad53 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution