summaryrefslogtreecommitdiffstats
path: root/init/init_parser.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove an unused #include of <sys/_properties.h>.Elliott Hughes2014-06-301-3/+0
| | | | | Bug: 15704351 Change-Id: I7841da7176d0638ae6737fe719cd187892bc38e6
* Improve init's debug printing.Riley Andrews2014-06-261-0/+3
| | | | | | | | | | | | | + Make prints of rc commands significantly more verbose. All commands will log all arguments, file/line number of the command, return value, and parent action which triggered the command. init: command 'mount tmpfs tmpfs /mnt/obb mode=0755,gid=1000' action=init status=0 (/init.rc:89) init: command 'setprop net.tcp.default_init_rwnd 60' action=boot status=0 (/init.rc:403) Change-Id: I5498c7258e4891706be4a12546df4231d14d86c4
* Add ability to boot from charger mode.Riley Andrews2014-06-201-0/+1
| | | | | | | | | Add the ability to boot up directly from charger mode, instead of forcing charger mode to initiate a full restart to launch 'full' android. This should shave a few seconds off of boot time on supported devices (just manta for now). Change-Id: Ieec4494d929e92806e039f834d78b9002afd15c4
* correct the setenv option judging conditionGavin.Chang2014-05-161-1/+1
| | | | Change-Id: I10ed6275374f572da639f26611f607bf7607905c
* init: add 'enable <service>' to negate "service <service>... disabled"JP Abgrall2014-05-031-0/+1
| | | | | | | | | | | enable <servicename> Turns a disabled service into an enabled one as if the service did not specify disabled in the rc file. It will also start the service if needed. Bug: 14472973 Change-Id: Id0b49cc687a2bc74f6f92e066c617724cc94908d Signed-off-by: JP Abgrall <jpa@google.com>
* init: limit visibility of init_parser.c helpersGreg Hackmann2013-11-251-5/+5
| | | | | | | To prevent clashing with forthcoming changes to uevent_parser.c Change-Id: I2ee183261c7f43e0e4104a16a280c7ee73d7df96 Signed-off-by: Greg Hackmann <ghackmann@google.com>
* am 2f924ebe: am a94d2b39: Merge "Add a restorecon_recursive built-in command ↵Nick Kralevich2013-10-101-0/+1
|\ | | | | | | | | | | | | to init." * commit '2f924ebe0b0891dba1996c246839427b23705018': Add a restorecon_recursive built-in command to init.
| * Add a restorecon_recursive built-in command to init.Stephen Smalley2013-10-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | Functionally equivalent to the restorecon -R toolbox command. A use case is given by: I48eaa2b9901ac8c978192c14493ba1058a089423 Also, fix error handling and documentation for restorecon command. Change-Id: Ia7fbcc82645baf52c6bff0490d3492f458881cbb Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
* | am 0b7d588d: am f2c4c4ad: Merge "init: Fix queue_all_property_triggers with ↵Benoit Goby2013-09-241-2/+4
|\ \ | |/ | | | | | | | | | | nonexistent properties" * commit '0b7d588d531691904530ba57d772b31fb24ed343': init: Fix queue_all_property_triggers with nonexistent properties
| * init: Fix queue_all_property_triggers with nonexistent propertiesBenoit Goby2013-09-241-2/+4
| | | | | | | | | | | | | | | | | | | | | | Don't queue actions for "on property=*" if the property does not exist. This fixes these errors on boot: init: property 'sys.powerctl' doesn't exist while expanding '${sys.powerctl}' init: powerctl: cannot expand '${sys.powerctl} Change-Id: I3bd354d73a860f856be5df2c654f940445f9efd9
* | am 0cbaed42: am a8ba1f2f: Merge "Add support for socket security context ↵Colin Cross2013-08-231-1/+3
|\ \ | |/ | | | | | | | | | | specification." * commit '0cbaed4211b514dd2aaa4d28f8936ba58e83c6a5': Add support for socket security context specification.
| * Add support for socket security context specification.Stephen Smalley2013-08-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add an optional argument to the socket option for specifying a SELinux security context for the socket. Normally the socket security context is automatically computed from the service security context or set using the seclabel option, but this facility allows dealing with two scenarios that cannot be addressed using the existing mechanisms: 1) Use of logwrapper to wrap a service. In this case, init cannot determine the service security context as it does not directly execute it and we do not want logwrapper to run in the same domain as the service. 2) Situations where a service has multiple sockets and we want to label them distinctly. Change-Id: I7ae9088c326a2140e56a8044bfb21a91505aea11 Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
| * init: switch property_get to use __system_property_getColin Cross2013-06-171-8/+8
| | | | | | | | | | | | (cherry picked from commit 2deedfe0b1ac86ebd62d19cf7da9e7dcb508ab09) Change-Id: If3fba2cc1dd5c167b0924ddfe42dbe2e6387208a
| * init: prevent action being added to the action_queue twiceColin Cross2013-06-101-1/+6
| | | | | | | | | | | | | | | | | | | | Property triggers may cause an action to be queued twice, resulting in a loop in the action queue. Keep actions that are not on the queue in the list_empty state (act->qlist->next == act->qlist), and only add them to the list if they are in that state. Bug: 8335133 Change-Id: I3a3ec18176cf19cbaa3a45220a03c7560eacfe79
* | Add swapon_all to init's builtin commandsKen Sumrall2013-07-091-0/+1
| | | | | | | | | | | | For enabling swap devices found in the fstab file Change-Id: Iec4fd4d208df3d7a161a90d95f8606e8b516334a
* | init: switch property_get to use __system_property_getColin Cross2013-06-171-8/+8
| | | | | | | | Change-Id: I4fc0502a1a5b331087618a4d2e3d90948743d7bd
* | am 43329bc1: am 8a387870: Revert "Reload policy after setting up the data ↵gcondra@google.com2013-05-201-1/+0
|\ \ | | | | | | | | | | | | | | | | | | partition." * commit '43329bc1c99c0f5f3670a8aaab39e54df34819a1': Revert "Reload policy after setting up the data partition."
| * | Revert "Reload policy after setting up the data partition."repo sync2013-05-171-1/+0
| | | | | | | | | | | | This reverts commit fee250d27a9c03af1ba439047b976d89563b1887.
* | | am 63577d92: am fee250d2: Reload policy after setting up the data partition.gcondra@google.com2013-04-301-0/+1
|\ \ \ | |/ / | | | | | | | | | * commit '63577d9280e7919bfb7221030d211b833e66bb1e': Reload policy after setting up the data partition.
| * | Reload policy after setting up the data partition.repo sync2013-04-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This forces a policy reload + fixcon to deal with dynamically delivered policy changing labels on device nodes. It's implemented as a new keyword in init. Bug: 8702843 Change-Id: I803cf1ecf6ff8318ce25dcc5cda4f292adc9738c
* | | Make init handle rebootsNick Kralevich2013-04-231-0/+2
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the responsibility for rebooting the system from the reboot command to init. Init is in a better position to take actions to bring the system down cleanly, including making sure filesystems are mounted read-only. The only UIDs which can perform an init triggered reboot are root, system, and shell. Modify the reboot command so that it calls into init to perform the reboot. The reboot command no longer requires CAP_SYS_BOOT. Remove the -n reboot option and code which supports it. Anyone needing to do an unclean shutdown can just do a 'echo c > /proc/sysrq-trigger'. Modify adb so that it calls into init to perform a shutdown. Bug: 8646621 Change-Id: I84c0513acb549720cb0e8c9fcbda0050f5c396f5
* | init: prevent action being added to the action_queue twiceColin Cross2013-03-071-1/+6
|/ | | | | | | | | | Property triggers may cause an action to be queued twice, resulting in a loop in the action queue. Keep actions that are not on the queue in the list_empty state (act->qlist->next == act->qlist), and only add them to the list if they are in that state. Bug: 8335133 Change-Id: I3a3ec18176cf19cbaa3a45220a03c7560eacfe79
* Remove HAVE_SELINUX guardsKenny Root2012-10-161-2/+0
| | | | Change-Id: I8272c573b3c5dc663203bafab68fad5e94d89364
* Change init to use libfs_mgr to mount filesystems.Ken Sumrall2012-05-011-0/+1
| | | | | | | | The new fs_mgr library moves much of the knowledge of what filesystems to mount into a new fstab.<device> file, and just calls one function to mount all the filesystems. Change-Id: If3db37530a0676000cba3e679db27aca734227e5
* Extend init and ueventd for SE Android.Stephen Smalley2012-02-011-0/+15
| | | | | | | | | | | | | | | Add SE Android support for init and ueventd. init: - 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. ueventd: - Set the security context for device directories and nodes. Change-Id: I98ed752cde503c94d99dfa5b5a47e3c33db16aac
* init: use init's property expansion code for setprop/writeDima Zavin2012-01-111-1/+1
| | | | | Change-Id: I3c284860cc8d5106ac2b086e62baeb6263873935 Signed-off-by: Dima Zavin <dima@android.com>
* init: delay importing files until after parsing the current fileDima Zavin2012-01-111-20/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | If we process the import directive inline, then the ordering of the commands for the "on xxx" sections would be a little unexpected. The init.rc files do not really have an implied order as to which section appears and gets processed first. The init code itself provides that ordering explicitly. For the user, the expectation is that if both the current file and the imported file define a section (e.g. "on init"), then the commands in the current file will be executed first, and then the ones from the imported file(s). The current implementation did not do that. It processed the import directive inline, and thus the imported (i.e. dependent) files would appear first in the command lists for the sections. This created unintended side effects and the solution would have been to try and put the import lines somewhere in the middle of the init file. This would be difficult to notice and hard to extract the dependencies. To solve this, we add the imports to a list for each file being parsed and process the list after finishing parsing the file. This provides predictable order for imports and provides a logical flow from the user perspective: the currently parsed file gets to run its commands before the files being imported. Change-Id: I06dc35ff286314060e16b18923683cd2787269de Signed-off-by: Dima Zavin <dima@android.com>
* init: allow init file imports to use properties in namesDima Zavin2012-01-111-5/+136
| | | | | | | | | | | | | Adds new property syntax in init files during init file filename expansion during the import command: ${prop.name} So, one can do: import /init.${ro.hardware}.usb.rc Should convert other usages of property names to use the new function. Change-Id: I9205d7d7a2da620bc8e6b89ac0eb554fad53ded3 Signed-off-by: Dima Zavin <dima@android.com>
* Fix the class_reset commandKen Sumrall2011-10-261-0/+1
| | | | | | | | | | 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
* init/cutils: move list utility code to cutils from initDima Zavin2011-09-021-1/+1
| | | | | Change-Id: I357ceee813700297d8343159f22a07659e768d41 Signed-off-by: Dima Zavin <dima@android.com>
* init: Fix the init.rc import commandMike Lockwood2011-06-091-0/+8
| | | | | Change-Id: I8a91c3f7d1ca31e137d9043bb7f56e4a44fb63df Signed-off-by: Mike Lockwood <lockwood@android.com>
* init: Allow wildcards in property triggers by using * for property valueMike Lockwood2011-06-091-2/+4
| | | | | | | | | | | | | | | | For example, the following trigger will fire when the sys.foo property is set to any value: on property:sys.foo=* write /data/foo hello It is also possible to refer to the property within the trigger actions: on property:sys.foo=* write /data/foo $sys.foo Change-Id: If78d20a532f77e17aa5703d53be581ad6736cbcf Signed-off-by: Mike Lockwood <lockwood@android.com>
* Load the persistent properties after decrypting the /data partitionKen Sumrall2011-03-101-0/+1
| | | | | | | | | | | | Fix for bug 3415286. The persistent properties are normally read early in the boot process after /data is mounted. However, for an encrypted system, at that point /data is a tmpfs ramdisk. This change adds a new command to init (load_persist_props) to read the persistent properties, and adds an action to init.rc to load the persistent properties. This action is triggered by setting a property in vold, but that's in a different CL. Change-Id: I74b3057974ee6029c29d956b76fef5566700d471
* Add the commands rm and rmdir to init.Ken Sumrall2011-01-181-0/+2
| | | | | | | rm only removes a single non-directory directory entry (no -r support) rmdir removes a single empty directory Change-Id: I49702b02ba98a177027b126268c2c2846f968195
* init: Fix parser line numberingBruce Beare2011-01-071-1/+2
| | | | Change-Id: I1ac481a2cef749b26c73bc9e6a212e6ace7a0ae2
* Changes to init to support encrypted filesystems.Ken Sumrall2010-12-181-0/+1
| | | | | | | | | 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
* Revert "Add "slow_start" keyword to init"Iliyan Malchev2010-12-081-4/+0
| | | | This reverts commit 50b3afd9f39619f69dc6f4efc29be88933eb3614.
* Add "slow_start" keyword to initPaul Eastham2010-12-041-0/+4
| | | | | | | 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
* init: Add support for SOCK_SEQPACKET socket typeMike Lockwood2010-10-011-2/+3
| | | | | Change-Id: Ib264ecf9beb2685b070436d2bdec9655c7a31b47 Signed-off-by: Mike Lockwood <lockwood@android.com>
* init: Split parser into generic parser and init parserColin Cross2010-04-211-0/+669
Change-Id: I451ebc4ff12f2ac660eb533fa10ad561fa25c9dd