summaryrefslogtreecommitdiff
path: root/init/action_parser.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Refactor libinit_test_utils to not use libinit and expose its librariesTom Cherry2020-02-201-1/+1
| | | | | | | | | | | | Users of libinit_test_utils must include all libraries that it uses. If it uses libinit, then there is a large number of libraries that must be included. To avoid this, make libinit_test_utils only use init_common_sources and the small number of required libraries that go along with those sources. Additionally, expose these sources as a default for users of libinit_test_utils. Test: build Change-Id: I224fa7e0590d073e4cd40412b5dcb6f72a64b6bf
* Convert system/core to Result::ok()Bernie Innocenti2020-02-061-4/+5
| | | | | | | | No functionality changes, this is a mechanical cleanup. Test: m Test: cd system/core && atest Change-Id: Ifdaa3ce1947ed578f656d5a446978726eb416c36
* Only allow alphanumerical characters, '-' and '_' in event trigger namesNikita Ioffe2019-10-111-0/+17
| | | | | | | | | This should help in preventing silly typos like "on foo:" Test: atest CtsInitTestCases Test: builds Bug: 135984674 Change-Id: I6e4e18970e957d25dea9f557f0d31a759fbe6150
* init: degeneralize subcontext init into only vendor_initTom Cherry2019-09-181-7/+2
| | | | | | | | | | | | | | This code is more generic than it needs to be and one of the side effects is that an extra init process is forked for odm_init, despite it having the same context as vendor_init. I don't think anything is going to change regarding that soon, so this change stops forking that extra process to save its memory and simplifies the code overall. Bug: 141164879 Test: init still uses vendor_init for vendor_scripts Test: init unit tests Test: init only has one subcontext process Change-Id: I0d224455604a681711e32f89fb20132378f69060
* init: replace Result<Success> with Result<void>Tom Cherry2019-06-101-14/+14
| | | | | | | | | | | Now that Result<T> is actually expected<T, ...>, and the expected proposal states expected<void, ...> as the way to indicate an expected object that returns either successfully with no object or an error, let's move init's Result<Success> to the preferred Result<void>. Bug: 132145659 Test: boot, init unit tests Change-Id: Ib2f98396d8e6e274f95a496fcdfd8341f77585ee
* init: allow vendor init to action on any vendor or odm propertyTom Cherry2018-10-261-0/+12
| | | | | | | | | | | | | | | | | | Partial revert of "init: if vendor_init can read a property, let it be a trigger too" (b35f827c97ceb24e33fb2514ff62c8636bc46f59). We made a mistake when we allowed vendor init to action on any vendor or odm property, since when a new SELinux label is created for a vendor property, vendor_init does not automatically get read permissions for it. Recently, we tried to use read permissions instead of the built-in list in init, but that broke due to the above mistaken. Since we have already launched with these permissions as is, we must restore them. Bug: 118457755 Test: no denials for vendor init actionable properties on crosshatch Change-Id: I7a9a560c9a54a177c6b83d28309e2f288f05d400
* init: if vendor_init can read a property, let it be a trigger tooTom Cherry2018-10-221-10/+6
| | | | | | | | | | | | | | | | | | | | There is a list of 'stable_properties' that vendor_init can use as property triggers for Treble property compliance. This list came about since init parses init scripts before all partitions are mounted and therefore before all property context files are available, such that init cannot use the normal SELinux mechanisms for determining if a given property is vendor_init readable. Currently though, we require all partitions that would contain property context files to be mounted during first stage mount, so we can use the normal SELinux mechanisms here, so this change deprecates the stable_properties list and moves init to use SELinux to determine if a property can be a trigger. Bug: 71814576 Test: vendor_init fails to use non-readable properties as a trigger Test: vendor_init successfully uses readable properties as a trigger Change-Id: I6a914e8c212a3418cbf4a8a07215056aad2e0162
* init: fix typo in error messageTom Cherry2018-07-241-1/+1
| | | | | Test: none Change-Id: Ie8417c7c6e3f6600544006c4a84b5bdfaff9725f
* init; remove dead cruft.Elliott Hughes2018-05-291-4/+0
| | | | | | Bug: N/A Test: builds Change-Id: Ia38ef6959e8615b4f103b924ae51c19f916daa48
* libbase: add host properties support.Elliott Hughes2018-05-241-3/+2
| | | | | | | | Move init and libprocessgroup away from their existing hacks. Bug: N/A Test: ran tests Change-Id: Ifabdd38e0cc4ab2582f1ea59d32159d386f48eb6
* init: add host side parser for initTom Cherry2018-02-281-1/+6
| | | | | | | | | | Create a host side parser for init such that init rc files can be verified for syntax correctness before being used on the device. Bug: 36970783 Test: run the parser on init files on host Change-Id: I7e8772e278ebaff727057308596ebacf28b6fdda
* Move all Action parsing into ActionParserTom Cherry2018-02-141-3/+90
| | | | | | Bug: 36970783 Test: Build Change-Id: Iea2d97fb45c3e88bc83fb72d6fa67049be42cfa9
* Move ActionParser to its own fileTom Cherry2018-02-131-0/+66
Bug: 36970783 Test: build Change-Id: Idd5b923e4789760bb9ef67c10982b2642bc6a31a