summaryrefslogtreecommitdiffstats
path: root/init/builtins.cpp
Commit message (Collapse)AuthorAgeFilesLines
* init: Allow devices to opt-out of fsck'ing on power offChristopher R. Palmer2016-05-161-0/+2
| | | | | | | | On the zenfone2 the fsck code patch kills alls processes. This causes watchdogd to get killed which then causes the system to emergency reboot instead of powering off. Change-Id: Ibcc74825df6571caa70e2dde7766a72b7749581b
* Use fsck.f2fs -a instead of -f for faster bootYusuke Sato2016-05-051-1/+70
| | | | | | | | | | | | | | | | | | and run fsck with -f on clean shutdown instead. With -f, fsck.f2fs always performs a full scan of the /data partition regardless of whether the partition is clean or not. The full scan takes more than 2 seconds on volantis-userdebug and delays the OS boot. With -a, the command does almost nothing when the partition is clean and finishes within 20-30ms on volantis-userdebug. When the partition has an error or its check point has CP_FSCK_FLAG (aka "need_fsck"), the command does exactly the same full scan as -f to fix it. Bug: 21853106 Change-Id: I126263caf34c0f5bb8f5e6794454d4e72526ce38
* init: Fix derp in property name for rebooting to charger hookChristopher R. Palmer2016-03-131-1/+1
| | | | Change-Id: Ibfee73723d778f16f8e407380083bf3a2667a7a4
* init: Add a hook to turn a shutdown into a rebootChristopher R. Palmer2016-03-121-0/+3
| | | | | | | | | | | | | Intel bootloaders have not yet been made android friendly. When the bootloader is told to shutdown it will shutdown. Android expects the bootloader to actually shutdown if there is no charger connected and otherwise to enter charging mode. Add a hook to init that allows healthd to determine what a shutdown should do. When the property is specified, any request to shutdown will instead trigger a restart into the specified mode. Change-Id: Ie96fb58ecb9a4e8ffe7e73e590483b5323e40b74
* init: Fire a trigger when a class is started/stoppedSteve Kondik2015-11-111-4/+16
| | | | | | | * This allows us to react to these events without messing with the master config. Change-Id: Ifc72efc7b4cc0718838c711395f5fdc3b043827a
* Merge tag 'android-6.0.0_r26' into cm-13.0Ricardo Cerqueira2015-11-051-7/+20
|\ | | | | | | | | | | Android 6.0.0 release 26 Change-Id: I93d1e3767cbacab2b18cff360065c91b9eaf1d96
| * Merge "Set up user directory crypto in init." into mnc-dr-devPaul Crowley2015-07-131-5/+18
| |\
| | * Set up user directory crypto in init.Paul Crowley2015-06-231-5/+18
| | | | | | | | | | | | | | | | | | | | | (cherry-picked from commit b94032b79c3cded501e2d5f7c328cf8c0c3911c4) Bug: 19704432 Change-Id: Ife4928ffbee39c8ae69e6ba66d9ce5ef5a0beb76
| * | Change init sequence to support file level encryptionPaul Lawrence2015-07-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | File level encryption must get the key between mounting userdata and calling post_fs_data when the directories are created. This requires access to keymaster, which in turn is found from a system property. Split property loaded into system and data, and load in right order. Bug: 22233063
* | | init: powerctl: Reject "keys*" reboot reason unless in recoveryDavid Ng2015-10-061-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | Reject all reboot reason starting with "keys" unless in recovery mode. This avoids mission mode, non-root (e.g. shell) users for triggering privileged reboot modes. Change-Id: I3727d0a92627a6cdf5f762ac61625c30bfa88946
* | | init: Add support for fast factory boot mode(ffbm)Ameya Thakur2015-10-061-4/+10
|/ / | | | | | | | | | | | | We now boot into ffbm mode based on the value of the ro.bootmode property. Change-Id: Id1cd3d13182479cc9272bb4b3fb74a99083a3cff
* | Revert "Change init sequence to support file level encryption"Paul Lawrence2015-07-071-2/+2
| | | | | | | | | | | | This reverts commit d815178b7512cb44d8b5f234e3f823b5a3e44dea. Change-Id: I7e3f55d3092fcd04ea9f62f1971c9d42570f096c
* | Change init sequence to support file level encryptionPaul Lawrence2015-07-061-2/+2
|/ | | | | | | | | | | File level encryption must get the key between mounting userdata and calling post_fs_data when the directories are created. This requires access to keymaster, which in turn is found from a system property. Split property loaded into system and data, and load in right order. Bug: 22233063 Change-Id: I8a6c40d44e17de386417a443c9dfc3b4e7fe59a5
* DO NOT MERGE Securely encrypt the master keyPaul Lawrence2015-05-291-32/+26
| | | | | | | | | | | | | | | | | | | | | | (chery-picked from commit 806d10be2336f32cdca16c2540cbf3d548f2fec7) Move all key management into vold Reuse vold's existing key management through the crypto footer to manage the device wide keys. Use ro.crypto.type flag to determine crypto type, which prevents any issues when running in block encrypted mode, as well as speeding up boot in block or no encryption. This is one of four changes to enable this functionality: https://android-review.googlesource.com/#/c/148586/ https://android-review.googlesource.com/#/c/148604/ https://android-review.googlesource.com/#/c/148606/ https://android-review.googlesource.com/#/c/148607/ Bug: 18151196 Change-Id: I6a8a18f43ae837e330e2785bd26c2c306ae1816b
* Fix insmod module sizeTom Cherry2015-05-121-5/+2
| | | | | | | | | | | | | read_file() used to append a new line character to the end of the buffer it returns, because parse_config() isn't able to cope with input that's not '\n'-terminated. Fix read_file() to be less insane, and push the workarounds into the parse_config() callers. Longer term we should rewrite parse_config(). Bug: http://b/21079470 Change-Id: Ie9d9a7adcd33b66621726aef20c4b8cc51c08be7 (cherry picked from commit eaa3b4ec6f79fe06163b8dd6fe8ba2581d3b9c0b)
* Enable property expansion for insmodEmmanuel Berthier2015-05-121-1/+10
| | | | | | | | | | | Useful for dynamic kernel module location. This permits to use init rule like: insmod ${persist.modules.location}/<module_name> Change-Id: If7479bdcb4e69ea7666f52a0075c785be025c2e9 Signed-off-by: Emmanuel Berthier <emmanuel.berthier@intel.com> (cherry picked from commit ac41230cbc10bae95a049282238adb03605579c2)
* Revert "Revert "Remove now-unusable 'setcon' command.""Elliott Hughes2015-04-241-9/+0
| | | | | | | | | | This reverts commit b862bd00a4192d48c3ae82156d8c35b32283e9e4. This change was fine but an earlier change it depended on was broken. That change has been fixed and resubmitted. Bug: http://b/19702273 Change-Id: I17e565721026e48e2a73526f729f2481d4d6edb5
* Revert "Remove now-unusable 'setcon' command."Nick Kralevich2015-04-241-0/+9
| | | | | | | | Temporarily revert because device isn't booting. This reverts commit 7b15ac99f3bfef33c82ea109487c99a77b41ebfb. Change-Id: Ice986bac62e20c70f7bedf1744a617b97392ae8c
* Remove now-unusable 'setcon' command.Elliott Hughes2015-04-231-9/+0
| | | | | Bug: http://b/19702273 Change-Id: Icd340c80ba074476dcc63f1c1dd5c61a5c768893
* Merge "Set verity mode as the verified property value"Sami Tolvanen2015-04-071-2/+3
|\
| * Set verity mode as the verified property valueSami Tolvanen2015-03-311-2/+3
| | | | | | | | | | | | | | Set the verity mode as the value for partition.%s.verified to make it easier for userspace to determine in which mode dm-verity was started. Change-Id: Icc635515f8a8ede941277aed196867351d8387cb
* | Remove execonce.Elliott Hughes2015-04-031-62/+0
| | | | | | | | | | | | Use 'exec' instead. Change-Id: I1320d1971f7cd8b23753c27aa87089006e112a11
* | Revert "Revert "Adding e4crypt support""Paul Lawrence2015-03-311-1/+53
|/ | | | | | | | Fix build break caused by original change This reverts commit 84b0bab58fcc7f225e9a17a15c531b0c2fc509c5. Change-Id: I99fbd7c3d1ed92db1f546033c8493bb71a327924
* Always use strerror to report errno.Elliott Hughes2015-03-201-1/+1
| | | | Change-Id: Icd18e4bd7dc093c18967f45b99cd451359457b03
* Clean up property setting code.Elliott Hughes2015-03-201-45/+22
| | | | | | In particular, ensure that all property_set failures are reported. Change-Id: Iab94a28bcba2346868c0f39bcfe26e55a2c55562
* Add init command to set verified propertiesSami Tolvanen2015-03-191-0/+24
| | | | | | | | | | Add a command that updates dm-verity state and sets partition.%.verified properties used by adb remount. This is needed in init since fs_mgr cannot set properties: I6a28cccb1ccce960841af20a4b20c32d424b5524 Change-Id: I0fdf5bc29c56690dcadff9d0eb216d3c68483538
* Remove chroot from init.Elliott Hughes2015-03-181-6/+0
| | | | | | This is not obviously useful. Let's wait until we have an actual need. Change-Id: I2c75c96314b281e89df25b6ed202b3dd5dfdaf15
* Remove chdir from init.Elliott Hughes2015-03-151-6/+0
| | | | Change-Id: Ib2880c6cb18db613deac04ee3b06b9719f5248b9
* Remove obsolete setkey.Elliott Hughes2015-03-131-23/+0
| | | | | | It's undocumented and unused. Change-Id: I685dc900adbc14f2e8b4eeebb1e4d111782f141d
* Remove getsebool/setsebool from init and toolbox.Stephen Smalley2015-03-131-28/+0
| | | | | | | | | These were leftovers from the SELinux boolean support that was originally merged. Since Android prohibits SELinux policy booleans, we can just drop it. Change-Id: I02f646a7d8db65e153702205b082b87a73f60d73 Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
* builtins: remove setenforce commandNick Kralevich2015-03-111-9/+0
| | | | | | | | Adding "setenforce 0" to init.rc isn't a supported way to turn off SELinux, and doesn't work with AOSP SELinux policy. Remove the code from init. Change-Id: If8c8149560789c9a7ba518a0a100e6033bb68898
* Merge "Implement exec."Elliott Hughes2015-03-111-3/+8
|\
| * Implement exec.Elliott Hughes2015-02-251-3/+8
| | | | | | | | Change-Id: I20329bc9b378479d745b498d6a00eca0872cd5ab
* | Add init support for dm-verity logging modeSami Tolvanen2015-03-041-0/+14
|/ | | | | | | | | | Add a built-in command for loading verity state. If dm-verity will be started in logging mode, trigger verity-logging. Needs changes from Ibb82953594d234f81ad21c40f524190b88e4ac8f Change-Id: I5af4918f2f14fdd4d07f51c55837e08111fd3748
* Move sprintf to snprintf.Yabin Cui2015-02-171-2/+2
| | | | | Bug: 19340053 Change-Id: Id0d866e6195ed4752b4be6081eeb2aab8b1dbe9a
* Bump do_write buffer sizeJohan Redestig2015-02-071-1/+1
| | | | | | | | | | | | | | | | In the case of do_write (write to generic file) there is really no relation to the PROP_VALUE_MAX limitation of system properties. The current value, 92, is not so much for writing to files so bump it a bit. Ideally there should not be any low hard limit in this case. Either expand_props should allocate the output buffer or take the output fd and to streaming write. Such a change is rather invasive though and at this point in time it seems reasonable that one dont want more than 256 character strings in the init files. Change-Id: I846a282ae4e747e6171eef38b302b46287951451
* Clean up reading and writing in init.Elliott Hughes2015-02-061-37/+8
| | | | | | | | | | | | | This isn't particularly useful in and of itself, but it does introduce the first (trivial) unit test, improves the documentation (including details about how to debug init crashes), and made me aware of how unpleasant the existing parser is. I also fixed a bug in passing --- unless you thought the "peboot" and "pm" commands were features... Bug: 19217569 Change-Id: I6ab76129a543ce3ed3dab52ef2c638009874c3de
* Use TEMP_FAILURE_RETRY, always build bootchart.cpp.Elliott Hughes2015-02-041-6/+4
| | | | | | | | Also switch the revision parsing over to sscanf as promised. I haven't done the hardware parsing because I don't yet know whether we actually need to keep the space-stripping code. Change-Id: Ic33378345cd515cb08d00c543acf44eb72673396
* Build init as C++.Elliott Hughes2015-02-041-0/+951
This is just the minimal change to keep it building. Change-Id: I245c5b8413a1db114576c81462eb5737f5ffcef2