platform_system_core/rootdir
Martijn Coenen f0bc58a42d Support for stopping/starting post-data-mount class subsets.
On devices that use FDE and APEX at the same time, we need to bring up a
minimal framework to be able to mount the /data partition. During this
period, a tmpfs /data filesystem is created, which doesn't contain any
of the updated APEXEs. As a consequence, all those processes will be
using the APEXes from the /system partition.

This is obviously not desired, as APEXes in /system may be old and/or
contain security issues. Additionally, it would create a difference
between FBE and FDE devices at runtime.

Ideally, we restart all processes that have started after we created the
tmpfs /data. We can't (re)start based on class names alone, because some
classes (eg 'hal') contain services that are required to start apexd
itself and that shouldn't be killed (eg the graphics HAL).

To address this, keep track of which processes are started after /data
is mounted, with a new 'mark_post_data' keyword. Additionally, create
'class_reset_post_data', which resets all services in the class that
were created after the initial /data mount, and 'class_start_post_data',
which starts all services in the class that were started after /data was
mounted.

On a device with FBE, these keywords wouldn't be used; on a device with
FDE, we'd use them to bring down the right processes after the user has
entered the correct secret, and restart them.

Bug: 118485723
Test: manually verified process list
Change-Id: I16adb776dacf1dd1feeaff9e60639b99899905eb
2019-04-26 11:54:19 +02:00
..
avb Adding GSI public keys 2019-03-30 03:07:31 +00:00
etc Fix a warning on namespace.media.link.default.shared_libs 2019-04-23 14:56:21 -07:00
Android.mk Adding adb_debug.prop into debug ramdisk 2019-04-23 11:13:46 +08:00
OWNERS rootdir: add ccross to OWNERS. 2018-10-15 14:18:04 -07:00
adb_debug.prop Adding adb_debug.prop into debug ramdisk 2019-04-23 11:13:46 +08:00
asan.options Include asan options from data partition. 2017-08-09 15:32:23 -07:00
asan_extract.rc Asan_extract: Use sys.powerctl 2017-04-19 18:32:27 -07:00
asan_extract.sh Asan_extract: Use sys.powerctl 2017-04-19 18:32:27 -07:00
fsverity_init.sh Initialize fs-verity keys in shell script 2019-03-22 09:18:00 -07:00
init-debug.rc init-debug.rc: don't mount debugfs 2017-03-14 21:56:24 -07:00
init.environ.rc.in Add an env variable for the tzdata module root 2019-03-12 16:52:36 +00:00
init.rc Support for stopping/starting post-data-mount class subsets. 2019-04-26 11:54:19 +02:00
init.usb.configfs.rc Remove sys.usb.ffs.mtp.ready property 2018-03-22 11:35:20 -07:00
init.usb.rc emulator: not start adbd upon ro.kernel.qemu=1 2018-02-03 17:22:15 -08:00
init.zygote32.rc Don't defer zygote 2019-03-07 22:21:32 +09:00
init.zygote32_64.rc Don't defer zygote 2019-03-07 22:21:32 +09:00
init.zygote64.rc Don't defer zygote 2019-03-07 22:21:32 +09:00
init.zygote64_32.rc Don't defer zygote 2019-03-07 22:21:32 +09:00
ld_config_backward_compatibility_check.py Restore "Check if current ld.config.txt files is backward compatible" 2018-09-11 09:45:09 +09:00
ueventd.rc ueventd.rc: Move device-specific entries to /vendor/ueventd.rc. 2019-01-06 16:15:07 -08:00
update_and_install_ld_config.mk Fix sed command on Mac builds 2019-03-21 10:16:06 -07:00