History log of /system/core/init/property_service.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
75801ab5e333a844a68f2d9d85abd883696262fd 12-Jun-2017 Hung-ying Tyan <tyanh@google.com> Load /prop.default in recovery mode

Bug: 37815285
Bug: 62525809
Test: Tested with ag/2398663 and ag/2400523. Booted pixel phones,
checked the location of prop.default, verified the symlink,
checked a few properties via adb shell and manually tested
a few apps.
Booted to recovery and ran 'adb sideload' successfully.
Change-Id: I034b700fcd60b0104873131e94864b16ef4bd9f6
/system/core/init/property_service.cpp
12ea2d12ef3f708832facef96f5cf9bd84894928 13-Jun-2017 Hung-ying Tyan <tyanh@google.com> Revert "Revert "Load default prop from /system/etc/prop.default""

This reverts commit 98a73a2ce10df46bc8d095413b415e284206836b.

Bug: 37815285
Bug: 62525809
Test: Tested with ag/2398663 and ag/2400524. Booted pixel phones,
checked the location of pro.default, verified the symlink
at /default.prop, checked a few properties via adb shell and
manually tested a few apps.
Booted to recovery mode and ran 'adb sideload' successfully.
Change-Id: I407412a7002b898ffb352cb5f331cab9c15be39a
/system/core/init/property_service.cpp
98a73a2ce10df46bc8d095413b415e284206836b 12-Jun-2017 Tao Bao <tbao@google.com> Revert "Load default prop from /system/etc/prop.default"

This reverts commit 810d71b0050bb94fe9bbcd02368dafd52cebdeb7.

init fails to read default.prop under recovery:
init: Couldn't load properties from /default.prop: Too many symbolic links encountered

Bug: 62525809
Change-Id: I1f84a18e545e1307dcb230be51606cca731667f9
/system/core/init/property_service.cpp
810d71b0050bb94fe9bbcd02368dafd52cebdeb7 02-Jun-2017 Hung-ying Tyan <tyanh@google.com> Load default prop from /system/etc/prop.default

/default.prop is moved to /system/etc/prop.default for full Treblized
devices. Modifies property_service to load it from there first.

Bug: 37815285
Test: Tested with ag/2371424. Booted pixel phones, checked the location
of pro.default, verified the symlink at /default.prop, checked a
few properties via adb shell and manually tested a few apps.

Change-Id: I485231f21fc86b0aec58edf867e229a31e77d85e
/system/core/init/property_service.cpp
5543b0e8489a3280ad9ee0455bbcfcd75beebc5f 30-May-2017 Tom Cherry <tomcherry@google.com> init: allow ':' in property names

Bug: 62114389
Test: boot bullhead, get/set properties with ':' via command line
Test: trigger an init trigger with a property containing a ':'
Change-Id: Ib51853a1ef9d4f79d510c8175c0d9684e2025e23
(cherry picked from commit 1369379e33e89f034bc7e94b28d5cd240a2fdefe)
/system/core/init/property_service.cpp
03bcaec5a0323cefb91c3b4631a1e464bf595579 24-Apr-2017 Jaekyun Seok <jaekyun@google.com> Update persist.sys.usb.config on runtime

persist.sys.usb.config values can't be combined on build-time when
property files are split into each partition.
So we need to apply the same rule of
build/make/tools/post_process_props.py on runtime.

Test: building succeeded and tested on sailfish.
Bug: 37617113
Bug: 37648659
Merged-In: If1e4279f05d74eccf5ce23eef41a466b7d8e3bde
Merged-In: I1e5ad9da360bfb3cb4970e12a76522fd0a5126b8

Change-Id: I78cdffee446d3ae6a89f138faed5f3149e4b507d
(cherry picked from commit 0cf3a07e143c1ed4348d1181e9e1453590eed1b3)
/system/core/init/property_service.cpp
5ceb7b3ebde818eaa3efe21b40d3481a4b653751 18-Apr-2017 Tom Cherry <tomcherry@google.com> init: handle sys.powerctl immediately

Currently if a process sets the sys.powerctl property, init adds this
property change into the event queue, just like any other property.
The actual logic to shutdown the device is not executed until init
gets to the action associated with the property change.

This is bad for multiple reasons, but explicitly causes deadlock in
the follow scenario:

A service is started with `exec` or `exec_start`
The same service sets sys.powerctl indicating to the system to
shutdown
The same service then waits infinitely

In this case, init doesn't process any further commands until the exec
service completes, including the command to reboot the device.

This change causes init to immediately handle sys.powerctl and reboot
the device regardless of the state of the event queue, wait for exec,
or wait for property conditions.

Bug: 37209359
Bug: 37415192

Test: Init reboots normally
Test: Update verifier can reboot the system
Change-Id: Iff2295aed970840f47e56c4bacc93001b791fa35
(cherry picked from commit 98ad32a967079be80a101458d8a29d7ecefbb547)
/system/core/init/property_service.cpp
e249097f6d85be2680b9a2898ff67548d47f9a70 29-Mar-2017 Tom Cherry <tomcherry@google.com> init: replace property_get with its android::base equivalent

Slowly try to decouple property_service.cpp from the rest of init.

Test: Boot bullhead
Change-Id: I267ae0b057bca0bf657b97cb8bfbb18199282729
(cherry picked from commit ccf23537eeacfa47e5f18dd3b75089886d177c1b)
/system/core/init/property_service.cpp
af5102a4f0c537d7b8f7a1fa3abc0c407a2fa26d 29-Mar-2017 Tom Cherry <tomcherry@google.com> init: remove unused cutils includes

Test: Boot bullhead
Change-Id: I629f9c3863f00fa38f87a68442c2380d28764718
(cherry picked from commit 1ec1bd918ccebf64aaa40b5ef1c1a497c75aa85e)
/system/core/init/property_service.cpp
c9a1842d319fc10681e7bb3ee66f4b365632cdf9 09-Mar-2017 Bowgo Tsai <bowgotsai@google.com> init: replacing fs_mgr_read_fstab() with fs_mgr_read_fstab_default()

The original default /fstab.{ro.hardware} might be moved to
/vendor/etc/. or /odm/etc/. Use the new API to get the default
fstab instead of using the hard-coded /fstab.{ro.hardware}.

Bug: 35811655
Test: boot marlin with /vendor/etc/fstab.marlin

Change-Id: I8a9c70eda7f68b174ec355910d0fa1eb18a46e21
/system/core/init/property_service.cpp
404906d59add52c1345302e2d13c1f9c2fec8664 01-Mar-2017 Keun-young Park <keunyoung@google.com> use ro.persistent_properties.ready for persistent props ready

- for security reason, only notify ready state instead of
passing time info to hidl clients

Bug: 35178781
Bug: 34274385
Test: reboot

Change-Id: I2d64bd6da81139945bd0224079af9376f1d90da7
/system/core/init/property_service.cpp
7d3202650d8c8ef9d982159f5451f5ba2eb18a20 18-Feb-2017 Keun-young Park <keunyoung@google.com> set ro.boottime.persistent_properties when persisted props are restored

- allows components relying on persisted props to wait for this property.

bug: 35178781
Test: reboots
Change-Id: I06cbf2a6b375654fcc277a2699fceeb23846a241
/system/core/init/property_service.cpp
b005d908167c9b44847ff490c66a90e029bcb5e4 22-Feb-2017 Elliott Hughes <enh@google.com> Address property service DoS.

Bug: http://b/35166374
Test: ran new test
Change-Id: I94cf5750f0d2dc87f4a118b2c63b16255ef30fd2
/system/core/init/property_service.cpp
795798d62cc42b1d04fe830877960b153ec43733 28-Jan-2017 Elliott Hughes <enh@google.com> bionic and init don't need to share knowledge of property file locations.

So move them into init.

Bug: http://b/33926793
Test: boots
Change-Id: I5a9601180df589b8c87ac8195a02ee24b531d4da
/system/core/init/property_service.cpp
27c052263c827150b1d371c72abee5974c000ac2 26-Jan-2017 James Hawkins <jhawkins@google.com> boottime/init: Report ro.boottime.init* properties in milliseconds.

* Nanosecond precision ended up being harder to grok.
* This change modifies the Timer class to have duration_ms instead of
duration_ns.

Bug: 34466121
Test: adb logcat | grep bootstat
Change-Id: Ibd1c27dc3cb29d838a956e342281b2fb98d752a6
/system/core/init/property_service.cpp
ca2da60206063f077a73a08e262c94b377b6c929 25-Jan-2017 Robert Sesek <rsesek@google.com> Ensure property_set connection sockets are CLOEXEC.

When handling a property control message to start a service, the
connection socket was being left open. The child socket FD would then be
inherited by the service from init as "/null".

Bug: 34698883

Test: adb shell start webview_zygote32; adb shell ls -l /proc/<pid>/fd,
no "/null" FD open.

Change-Id: I25f34e1bfc1414e6143acf23414b05f5a241cace
/system/core/init/property_service.cpp
c9bb0338bcb0cbf4425eef7bf04fe6cb61c767d4 24-Jan-2017 Dimitry Ivanov <dimitry@google.com> Revert "Revert "New protocol for property_service""

This reverts commit 70c4ecf2b562ec643c270d65e0585fe8506d064c.
Bug: http://b/33926793
Bug: http://b/34670529
Test: run bionic-unit-tests --gtest_filter=prop*

Change-Id: I75b28146805ff37fbdcf0543ccb515ee5895eb2a
/system/core/init/property_service.cpp
70c4ecf2b562ec643c270d65e0585fe8506d064c 24-Jan-2017 Dimitry Ivanov <dimitry@google.com> Revert "New protocol for property_service"

This reverts commit dee4bd236b706e229d4eb579613f4de3095ee33a.
Bug: http://b/33926793
Bug: http://b/34670529

Change-Id: Ife3a5a471ee29cb12c2c41efef885ba40b8970e6
/system/core/init/property_service.cpp
dee4bd236b706e229d4eb579613f4de3095ee33a 19-Jan-2017 Dimitry Ivanov <dimitry@google.com> New protocol for property_service

New protocol assumes that there is no limit on name or value
and effectively removed limit on property name length.

It also send back a uint32_t with error code (or 0 on success)

Bug: http://b/33926793
Test: mm, boot, run bionic-unit-tests --gtest_filter=prop*
Change-Id: Iac6290398ddc495e03f8fbbc3a79e923eff5df6f
/system/core/init/property_service.cpp
de21de7a420e5b946757f5abefb6e1dd6f1db2b1 17-Jan-2017 Jaekyun Seok <jaekyun@google.com> Load default/build props from each partition

The following files will be loaded additionally.
- /odm/default.prop and /vendor/default.prop for default props.
- /odm/build.prop for build props.

The props files must follow the following priority order.
- /default.prop > /odm/default.prop > /vendor/default.prop
- /system/build.prop > /odm/build.prop > /vendor/buid.prop

Test: tested default/build prop files with enabling early mount, but
didn't test files of odm partition because odm partition doesn't
exist now.
Bug: 34116668
Change-Id: I946d076dae38f2288865dd986fb16d801d4abcc0
/system/core/init/property_service.cpp
4f9158119b51f6d6f828bbd7b6b76cff355a98fc 05-Dec-2016 Elliott Hughes <enh@google.com> The "net.change" property is no longer needed.

bionic was the only listener, and it was doing nothing useful when the
property changed, so we've removed that listener.

Bug: http://b/33308258
Test: DNS still works
Change-Id: I15292e8e58e6b87cdad8f73e449ccaf334dff68b
/system/core/init/property_service.cpp
331cf2fb7c16b5b25064f8d2f00284105a9b413f 29-Nov-2016 Elliott Hughes <enh@google.com> Replace the "coldboot" timeout with a property.

Also rename init's existing boot-time related properties so they're
all "ro.*" properties.

Example result:

# Three properties showing when init started...
[ro.boottime.init]: [5294587604]
# ...how long it waited for ueventd...
[ro.boottime.init.cold_boot_wait]: [646956470]
# ...and how long SELinux initialization took...
[ro.boottime.init.selinux]: [45742921]

# Plus one property for each service, showing when it first started.
[ro.boottime.InputEventFind]: [10278767840]
[ro.boottime.adbd]: [8359267180]
[ro.boottime.atfwd]: [10338554773]
[ro.boottime.audioserver]: [10298157478]
[ro.boottime.bootanim]: [9323670089]
[ro.boottime.cameraserver]: [10299402321]
[ro.boottime.cnd]: [10335931856]
[ro.boottime.debuggerd]: [7001352774]
[ro.boottime.debuggerd64]: [7002261785]
[ro.boottime.drm]: [10301082113]
[ro.boottime.fingerprintd]: [10331443314]
[ro.boottime.flash-nanohub-fw]: [6995265534]
[ro.boottime.gatekeeperd]: [10340355242]
[ro.boottime.healthd]: [7856893380]
[ro.boottime.hwservicemanager]: [7856051088]
[ro.boottime.imscmservice]: [10290530758]
[ro.boottime.imsdatadaemon]: [10358136702]
[ro.boottime.imsqmidaemon]: [10289084872]
[ro.boottime.installd]: [10303296020]
[ro.boottime.irsc_util]: [10279807632]
[ro.boottime.keystore]: [10305034093]
[ro.boottime.lmkd]: [7863506714]
[ro.boottime.loc_launcher]: [10324525241]
[ro.boottime.logd]: [6526221633]
[ro.boottime.logd-reinit]: [7850662702]
[ro.boottime.mcfg-sh]: [10337268315]
[ro.boottime.media]: [10312152687]
[ro.boottime.mediacodec]: [10306852530]
[ro.boottime.mediadrm]: [10308707999]
[ro.boottime.mediaextractor]: [10310681177]
[ro.boottime.msm_irqbalance]: [7862451974]
[ro.boottime.netd]: [10313523104]
[ro.boottime.netmgrd]: [10285009351]
[ro.boottime.oem_qmi_server]: [10293329092]
[ro.boottime.per_mgr]: [7857915776]
[ro.boottime.per_proxy]: [8335121605]
[ro.boottime.perfd]: [10283443101]
[ro.boottime.qcamerasvr]: [10329644772]
[ro.boottime.qmuxd]: [10282346643]
[ro.boottime.qseecomd]: [6855708593]
[ro.boottime.qti]: [10286196851]
[ro.boottime.ril-daemon]: [10314933677]
[ro.boottime.rmt_storage]: [7859105047]
[ro.boottime.servicemanager]: [7864555881]
[ro.boottime.ss_ramdump]: [8337634938]
[ro.boottime.ssr_setup]: [8336268324]
[ro.boottime.surfaceflinger]: [7866921402]
[ro.boottime.thermal-engine]: [10281249924]
[ro.boottime.time_daemon]: [10322006542]
[ro.boottime.ueventd]: [5618663938]
[ro.boottime.vold]: [7003493920]
[ro.boottime.wificond]: [10316641073]
[ro.boottime.wpa_supplicant]: [18959816881]
[ro.boottime.zygote]: [10295295029]
[ro.boottime.zygote_secondary]: [10296637269]

Bug: http://b/31800756
Test: boots
Change-Id: I094cce0c1bab9406d950ca94212689dc2e15dba5
/system/core/init/property_service.cpp
a8d8434c42b27f0186be7ecd78c2acc9d459b068 15-Nov-2016 Paul Lawrence <paullawrence@google.com> Add flags to restorecon_recursive to traverse filesystems

Use to solve the problem of tracefs conditionally being mounted
under debugfs and needing restorecon'd without boot performance
penalty.

Also move skip-ce to a flag for consistency.

Test: Check that trace_mount has correct attributes after boot
Bug: 32849675
Change-Id: Ib6731f502b6afc393ea5ada96fa95b339f14da49
/system/core/init/property_service.cpp
f655480b48b75e0ec295a2468cf3dd22ccb92ddd 20-Sep-2016 Iliyan Malchev <malchev@google.com> init: allow '.' and '@' in service names

Services implementing HIDL HALs must be named the same as the HIDL
package, e.g. android.hardware.nfc@1.0. Allow init to accept names
containing '.' and '@'.

Also combined logic for legal property names and legal service names.

Bug: 31458381
Bug: 32109611
Test: Tested creating service nfc@1.0-service which creates property
'init.svc.nfc@1.0-service' with and without this change. This service
successfully started only with this change.

Change-Id: Ie7a4310742bc03498d774d37b3b5fafa7c6068cc
Signed-off-by: Iliyan Malchev <malchev@google.com>
/system/core/init/property_service.cpp
5a7ad84edeaa6a777635b3c036c7dc2f2ee86d6e 30-Sep-2016 Elliott Hughes <enh@google.com> Log failed load_properties_from_file calls.

These events are _somewhat_ normal, in that not all devices have all
partitions, but not logging anything makes it unnecessarily hard for
folks to debug simple failures.

Bug: http://b/31186390
Test: booted, checked dmesg
Change-Id: I403377c585ea35cfe73b0bed9443b75e3a84dc8d
/system/core/init/property_service.cpp
3dcfa3fb1cec36b21ad026c618c85790a2353f72 23-Aug-2016 Elliott Hughes <enh@google.com> Most accept/accept4 calls in system/core don't actually want the remote address.

So don't write the extra code for it or waste the kernel's time
copying it around.

Change-Id: I93de64064c2d4fe58ba5b5322cfa69bf31a76dad
/system/core/init/property_service.cpp
f86b5a6b90619e02d1d034ef7b0adc3b439f4abb 25-Jun-2016 Elliott Hughes <enh@google.com> Move init to libbase logging.

Change-Id: Ibfbefeff587a69e948978a037c555fd12a5ade6a
/system/core/init/property_service.cpp
8e1dce8ba01034a263b3f6f2d77e1dd109214563 07-Apr-2016 William Roberts <william.c.roberts@intel.com> property_service: drop unused header

Remove android_filesystem_config.h since it was not being used.

Change-Id: I691513d50a3fdb7563a63aee7551137ba983825c
Bug: 27999086
Signed-off-by: William Roberts <william.c.roberts@intel.com>
/system/core/init/property_service.cpp
3d1dff22311bb6b3c01115f0c4400dcdc37c35c3 08-Mar-2016 Janis Danisevskis <jdanis@google.com> Leftovers of the SELinux policy update mechanism

Remove references to SELinux policy files in /data/security
from libselinux/android.c. In the process all code that is
apparently related to handling an alternate policy and/or
reloading the policy has been removed.

Bug: 26544104
Change-Id: I47bf76ac3c26c5d71f92a21ffac2b17ba14262ea
/system/core/init/property_service.cpp
c787cf291ac8ef343dea81ca696b028c6974e0b2 11-Jan-2016 Tom Cherry <tomcherry@google.com> Remove special case handling of "ro." properties permissions

Currently, properties that begin with "ro." are special cased to skip
over the "ro." part of the prefix before matching with entries in
property_contexts. This is not strictly needed however and it is
causing complications with the separated prop files work from Bug
21852512, so it is now removed.

Bug 26425619

Change-Id: I3cd14fa2176f96b3931e5f6a50c4a7bcd3af3da6
/system/core/init/property_service.cpp
1563d6546cd1d329c6ee64288f1915e9fd284ea9 08-Dec-2015 Tom Cherry <tomcherry@google.com> Remove property_area_initialized

This is deadcode as property_init() will only ever be called once and
the only remaining caller of properties_initialized() is
Service::NotifyStateChange() which can only be called after properties
have been initialized.

Change-Id: Ie071af84fcdbead72d259890fc8fb8db624282e7
/system/core/init/property_service.cpp
c68998441cdf32159912704fdd264b4750390012 08-Dec-2015 Tom Cherry <tomcherry@google.com> Merge "Remove ANDROID_PROPERTY_WORKSPACE"
4f71319df011d796a60a43fc1bc68e16fbf7d321 05-Dec-2015 Elliott Hughes <enh@google.com> Track rename of base/ to android-base/.

Change-Id: Idf9444fece4aa89c93e15640de59a91f6e758ccf
/system/core/init/property_service.cpp
265f525e21d1dea3c09678a545c2df324736a490 22-Sep-2015 Tom Cherry <tomcherry@google.com> Remove ANDROID_PROPERTY_WORKSPACE

Bug 23290008

Change-Id: I95babe735444ada10c67594ace700cae5d1ec0b3
/system/core/init/property_service.cpp
6036114f93cbe0072f4e9ba57b22e433ef8afaf4 02-Dec-2015 Tom Cherry <tomcherry@google.com> Abort if __system_property_area_init fails

If __system_property_area_init() fails, there is a fundamental issue
with the system and we should abort from init.

Bug: 21852512
Change-Id: I05d7978ba3bcc347027a6d9443de7cdd229033d2
/system/core/init/property_service.cpp
545b7c9e395fcbf4f9747b0a311abd909ad59cc3 10-Oct-2015 Nick Kralevich <nnk@google.com> am 2fb90dc8: Merge changes from topic \'userspace-audit\'

* commit '2fb90dc8b2b590e674c5e433e8bf3d3f08a887c8':
debuggerd: audit pid, uid and gid on SE Linux denial
property_service: log pid,uid and gid of setprop client
2fb90dc8b2b590e674c5e433e8bf3d3f08a887c8 10-Oct-2015 Nick Kralevich <nnk@google.com> Merge changes from topic 'userspace-audit'

* changes:
debuggerd: audit pid, uid and gid on SE Linux denial
property_service: log pid,uid and gid of setprop client
d7aea443d9bc0b1f37a2c31d0d476d61ff41fb66 02-Oct-2015 William Roberts <william.c.roberts@intel.com> property_service: log pid,uid and gid of setprop client

When auditing setprop denials, it is often unclear of who the process is
in a multi-process domain. To help identify the invoker, log the pid, uid,
and gid of the caller.

Before:
avc: denied { set } for property=wifi.xxx ...

After:
avc: denied { set } for property=wifi.xxx pid=30691 uid=123 gid=345 ...

Change-Id: I5cdcb3d18fbd52e0987b5e1497b9f6620c6c742a
Signed-off-by: William Roberts <william.c.roberts@intel.com>
/system/core/init/property_service.cpp
62b3f91d142e8c0b698729d3d7f3f4a9b8924c2f 24-Jul-2015 Yabin Cui <yabinc@google.com> am bff40697: am addf7a96: Merge "init: Let property_get return std::string."

* commit 'bff406978aad1a599d01f539d0a9b5718aaceca3':
init: Let property_get return std::string.
0ff8590e78d32a38169f1a1f0156d5287f9d6162 24-Jul-2015 Yabin Cui <yabinc@google.com> resolved conflicts for merge of bff40697 to mnc-dr-dev-plus-aosp

Change-Id: I7d7a614a5eb987ef6aecd32ed15a6eaa43e93957
74edcea90e31a3795e58aa1b2bbe96032f0bcd61 24-Jul-2015 Yabin Cui <yabinc@google.com> init: Let property_get return std::string.

Bug: 22654233

Change-Id: Id6091f58432f75e966b9871256049fbe17766c10
/system/core/init/property_service.cpp
c1fa34b9f600c827769b4401d8b12e7c587b68f4 13-Jul-2015 Paul Lawrence <paullawrence@google.com> am d5ef9841: Merge "Change init sequence to support file level encryption" into mnc-dr-dev

* commit 'd5ef984195779aa9e27d7baabdd751d641eea1a0':
Change init sequence to support file level encryption
948410a4936fda5348304af9711db932926bcc1a 01-Jul-2015 Paul Lawrence <paullawrence@google.com> Change init sequence to support file level encryption

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
/system/core/init/property_service.cpp
e8308f852c867bc676e71875ea57de022464ea09 07-Jul-2015 Paul Lawrence <paullawrence@google.com> am 81046166: Merge "Revert "Change init sequence to support file level encryption"" into mnc-dev

* commit '8104616696ac5e806b16a393ea02c4f5d8efc328':
Revert "Change init sequence to support file level encryption"
c011b031c988038f81c72875fdd6ac7349774f35 07-Jul-2015 Paul Lawrence <paullawrence@google.com> am 81046166: Merge "Revert "Change init sequence to support file level encryption"" into mnc-dev

* commit '8104616696ac5e806b16a393ea02c4f5d8efc328':
Revert "Change init sequence to support file level encryption"
437bc5dceca1608456c1c40b694645bc2d100ad4 07-Jul-2015 Paul Lawrence <paullawrence@google.com> Revert "Change init sequence to support file level encryption"

This reverts commit d815178b7512cb44d8b5f234e3f823b5a3e44dea.

Change-Id: I7e3f55d3092fcd04ea9f62f1971c9d42570f096c
/system/core/init/property_service.cpp
22d0ee6a25b3bedd6c3cd52473df1404fce8615f 06-Jul-2015 Paul Lawrence <paullawrence@google.com> am a65e402b: Merge "Change init sequence to support file level encryption" into mnc-dev

* commit 'a65e402b613e927697d35e7936c6d80908d77e88':
Change init sequence to support file level encryption
d3669ff27f782ce1da324f0a6043204a3a4e9f3f 06-Jul-2015 Paul Lawrence <paullawrence@google.com> am a65e402b: Merge "Change init sequence to support file level encryption" into mnc-dev

* commit 'a65e402b613e927697d35e7936c6d80908d77e88':
Change init sequence to support file level encryption
d815178b7512cb44d8b5f234e3f823b5a3e44dea 01-Jul-2015 Paul Lawrence <paullawrence@google.com> Change init sequence to support file level encryption

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
/system/core/init/property_service.cpp
746d5cd66ae3c5c6ee422d45be08dcd4403b6d24 13-Jun-2015 Nick Kralevich <nnk@google.com> am a27dca0f: am 60c5a460: Merge "Remove calls to is_selinux_enabled()"

* commit 'a27dca0f7a5d6c1f79aaf213a6b26428e4ad855e':
Remove calls to is_selinux_enabled()
4d87095ebfefdb9e641492462f0a0e21d5b96ecf 13-Jun-2015 Nick Kralevich <nnk@google.com> Remove calls to is_selinux_enabled()

d34e407aeb5898f19d4f042b7558420bbb3a1817 removed support for
running with SELinux completely disabled. SELinux must either be
in permissive or enforcing mode now.

Remove unnecessary calls to is_selinux_enabled(). It always returns
true now.

Change-Id: Ife3156b74b13b2e590afe4accf716fc7776567e5
/system/core/init/property_service.cpp
76417519ec7b361604f4977b9ad238d0a276c49d 09-Jun-2015 Jeff Sharkey <jsharkey@android.com> New "selinux.restorecon" control property.

This new property is used as a control verb for running a recursive
restorecon at the path contained in the property value.

Shifts both SELinux actions to occur before the actual property set
occurs, so setters can watch for completion.

Bug: 21121357
Change-Id: I3db3eb876ae66e144b3bfd648349b66a028511fd
/system/core/init/property_service.cpp
cce7e93b287835ffe9cdc3dad3fac52972d84560 12-May-2015 Tom Cherry <tomcherry@google.com> Fix insmod module size

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)
/system/core/init/property_service.cpp
eaa3b4ec6f79fe06163b8dd6fe8ba2581d3b9c0b 12-May-2015 Tom Cherry <tomcherry@google.com> Fix insmod module size

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().

Change-Id: Ie9d9a7adcd33b66621726aef20c4b8cc51c08be7
/system/core/init/property_service.cpp
cb3fce80fafa2848fd4962d9f242c21eef3d82f9 08-May-2015 Andres Morales <anmorales@google.com> load ro.recovery_id property from recovery partition

Change-Id: I9dc1f325e353375d9c1c8ed949636e2404601076
(cherry picked from commit db5f5d43679546ecde2b85151c0a8b8ccd605b07)
/system/core/init/property_service.cpp
db5f5d43679546ecde2b85151c0a8b8ccd605b07 08-May-2015 Andres Morales <anmorales@google.com> load ro.recovery_id property from recovery partition

Change-Id: I9dc1f325e353375d9c1c8ed949636e2404601076
/system/core/init/property_service.cpp
dff18174d2779d65815a5b03956a30c13dd8e71c 08-May-2015 Andres Morales <anmorales@google.com> stop including rootdir build.prop

merged with default.prop

Change-Id: I18fcd37ddc63e3607278d0741181d0779118132d
/system/core/init/property_service.cpp
5147eacad19810200d6ba9a868250d854a3bfc8c 08-May-2015 Andres Morales <anmorales@google.com> stop including rootdir build.prop

merged with default.prop

Change-Id: I18fcd37ddc63e3607278d0741181d0779118132d
/system/core/init/property_service.cpp
929f4070767d1e4806c058849178afa13d9ded1e 25-Apr-2015 Elliott Hughes <enh@google.com> Switch init to epoll.

Not just because it's what the cool kids are doing --- it also lets us
simplify the inner loop and decouple it from whatever systems want to
be woken to perform some activity if there's data to be read on some fd.

Currently this is just used to clean up the existing signal handling,
keychord, and property service code.

Change-Id: I4d7541a2c4386957ad877df69e3be08b96a7dec5
/system/core/init/property_service.cpp
c6c26ed781d9ae1ba388cebba63532d2ecda3227 25-Apr-2015 Elliott Hughes <enh@google.com> Clean up property service initialization.

All the code that was being delayed does is create a socket. We can
do that straight away, avoid the overhead, and simplify our main loop.

The keychord fd, on the other hand, seems a little tricky. It looks
like /dev/keychord isn't immediately available, at least not on N9;
we have to wait for ueventd to set us up the bomb.

Change-Id: I020e75b8e4b233497707f0a3cbbb6038b714161f
/system/core/init/property_service.cpp
95f709a9f59ce79c65a9419d4227e877f3780ec7 16-Apr-2015 Elliott Hughes <enh@google.com> Don't try to read /system/default.prop.

It doesn't exist. We use /system/build.prop.

Change-Id: Ie635f9b3cc65de807f128339199b853db5a8eb2f
/system/core/init/property_service.cpp
da40c00137f75543a69972f1be506e2d14a41845 28-Mar-2015 Elliott Hughes <enh@google.com> Log more timing information from init.

Also make important events in init's life NOTICE rather than INFO,
and ensure that NOTICE events actually make it to the kernel log.

Also fix the logging so that if you have a printf format string
error, the compiler now catches it.

Also give messages from init, ueventd, and watchdogd distinct tags.
(Previously they'd all call themselves "init", and dmesg doesn't
include pids, so you couldn't untangle them.)

Also include the tag in SELinux messages.

Bug: 19544788
Change-Id: Ica6daea065bfdb80155c52c0b06f346a7df208fe
/system/core/init/property_service.cpp
930974cedf7d07a789f5d3d77f14abd2d0ed7d79 23-Mar-2015 Elliott Hughes <enh@google.com> Add missing parenthesis in init log message.

Change-Id: Iddcd8a002bfc692b1e70d59fa8c6530306c500fa
/system/core/init/property_service.cpp
cd67f00e18de1c8d48ddb082ecb902fc42c2bacc 21-Mar-2015 Elliott Hughes <enh@google.com> Always use strerror to report errno.

Change-Id: Icd18e4bd7dc093c18967f45b99cd451359457b03
/system/core/init/property_service.cpp
81399e1e0e9189b1b87531bfb566ba5386ab567f 10-Mar-2015 Elliott Hughes <enh@google.com> Use unique_ptr to call closedir.

Change-Id: I8f572a06ce59283e5bd444ae0491dea71b0ea304
/system/core/init/property_service.cpp
db3f267c99411b10144998c6c1f1a6288d0191bc 20-Mar-2015 Elliott Hughes <enh@google.com> Clean up property setting code.

In particular, ensure that all property_set failures are reported.

Change-Id: Iab94a28bcba2346868c0f39bcfe26e55a2c55562
/system/core/init/property_service.cpp
c007bc3856a4cf86b8f610eb045f26a9dedc2894 16-Mar-2015 Dan Albert <danalbert@google.com> Revert "Revert "Create libbase.""

This reverts commit a7870d88167f619e758b5bcd15b410d16da7c16b.
/system/core/init/property_service.cpp
a7870d88167f619e758b5bcd15b410d16da7c16b 16-Mar-2015 Nicolas Geoffray <ngeoffray@google.com> Revert "Create libbase."

Breaks internal master.

This reverts commit 98ff77204cef9bb8f0f27420833233622060a09e.

Change-Id: I18dc6021cb43efff8aa88486c2d980dc2b8eedba
/system/core/init/property_service.cpp
98ff77204cef9bb8f0f27420833233622060a09e 14-Mar-2015 Dan Albert <danalbert@google.com> Create libbase.

Move StringPrintf and the string based file I/O from libutils to
libbase.

Change-Id: I0297a6063874b9d92100e0dd5123fddfbda932fe
/system/core/init/property_service.cpp
f682b4786a4093efb23bf80d69bf80eb274b145b 06-Feb-2015 Elliott Hughes <enh@google.com> Clean up reading and writing in init.

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
/system/core/init/property_service.cpp
c0e919c92062360a69b771722677d041c9998403 04-Feb-2015 Elliott Hughes <enh@google.com> Stop using #if for conditional compilation.

Use regular 'if' to prevent bitrot.

Also remove remaining typedefs.

Change-Id: I2e6ca928e2db29b88b643cf990ff05cfb0be94a6
/system/core/init/property_service.cpp
f3cf438714aa1284d8a58e2f3b108ba93f6d3abb 04-Feb-2015 Elliott Hughes <enh@google.com> Build init as C++.

This is just the minimal change to keep it building.

Change-Id: I245c5b8413a1db114576c81462eb5737f5ffcef2
/system/core/init/property_service.cpp