Load build sysprops early
*/build.prop files are now loaded much earlier than before; from 'on post-fs' to the time when the property service is started which is before init starts the action loop. This ensures that all processes that are launched by init have a consistent view of system properties. Previously, the processes that started before 'on post-fs' were initially with the small number of sysprops loaded from */default.prop and then suddenly get additional sysprops from */build.prop while they are executing. Bug: 122714998 Test: device boots Change-Id: Ic07528421dfbe8d4f43673cea41175d33cfbf298
This commit is contained in:
parent
91fa140312
commit
3b316ee201
4 changed files with 21 additions and 27 deletions
|
@ -482,9 +482,8 @@ Commands
|
|||
-f: force installation of the module even if the version of the running kernel
|
||||
and the version of the kernel for which the module was compiled do not match.
|
||||
|
||||
`load_all_props`
|
||||
> Loads properties from /system, /vendor, et cetera.
|
||||
This is included in the default init.rc.
|
||||
`load_system_props`
|
||||
> (This action is deprecated and no-op.)
|
||||
|
||||
`load_persist_props`
|
||||
> Loads persistent properties when /data has been decrypted.
|
||||
|
|
|
@ -972,7 +972,7 @@ static Result<Success> do_load_persist_props(const BuiltinArguments& args) {
|
|||
}
|
||||
|
||||
static Result<Success> do_load_system_props(const BuiltinArguments& args) {
|
||||
load_system_props();
|
||||
LOG(INFO) << "deprecated action `load_system_props` called.";
|
||||
return Success();
|
||||
}
|
||||
|
||||
|
|
|
@ -699,22 +699,6 @@ static void update_sys_usb_config() {
|
|||
}
|
||||
}
|
||||
|
||||
void property_load_boot_defaults() {
|
||||
if (!load_properties_from_file("/system/etc/prop.default", NULL)) {
|
||||
// Try recovery path
|
||||
if (!load_properties_from_file("/prop.default", NULL)) {
|
||||
// Try legacy path
|
||||
load_properties_from_file("/default.prop", NULL);
|
||||
}
|
||||
}
|
||||
load_properties_from_file("/product/build.prop", NULL);
|
||||
load_properties_from_file("/product_services/build.prop", NULL);
|
||||
load_properties_from_file("/odm/default.prop", NULL);
|
||||
load_properties_from_file("/vendor/default.prop", NULL);
|
||||
|
||||
update_sys_usb_config();
|
||||
}
|
||||
|
||||
static void load_override_properties() {
|
||||
if (ALLOW_LOCAL_PROP_OVERRIDE) {
|
||||
load_properties_from_file("/data/local.prop", NULL);
|
||||
|
@ -779,12 +763,29 @@ void load_recovery_id_prop() {
|
|||
close(fd);
|
||||
}
|
||||
|
||||
void load_system_props() {
|
||||
void property_load_boot_defaults() {
|
||||
// TODO(b/117892318): merge prop.default and build.prop files into one
|
||||
// TODO(b/122864654): read the prop files from all partitions and then
|
||||
// resolve the duplication by their origin so that RO and non-RO properties
|
||||
// have a consistent overriding order.
|
||||
if (!load_properties_from_file("/system/etc/prop.default", NULL)) {
|
||||
// Try recovery path
|
||||
if (!load_properties_from_file("/prop.default", NULL)) {
|
||||
// Try legacy path
|
||||
load_properties_from_file("/default.prop", NULL);
|
||||
}
|
||||
}
|
||||
load_properties_from_file("/product/build.prop", NULL);
|
||||
load_properties_from_file("/product_services/build.prop", NULL);
|
||||
load_properties_from_file("/odm/default.prop", NULL);
|
||||
load_properties_from_file("/vendor/default.prop", NULL);
|
||||
load_properties_from_file("/system/build.prop", NULL);
|
||||
load_properties_from_file("/odm/build.prop", NULL);
|
||||
load_properties_from_file("/vendor/build.prop", NULL);
|
||||
load_properties_from_file("/factory/factory.prop", "ro.*");
|
||||
load_recovery_id_prop();
|
||||
|
||||
update_sys_usb_config();
|
||||
}
|
||||
|
||||
static int SelinuxAuditCallback(void* data, security_class_t /*cls*/, char* buf, size_t len) {
|
||||
|
|
|
@ -346,12 +346,6 @@ on late-init
|
|||
trigger boot
|
||||
|
||||
on post-fs
|
||||
# Load properties from
|
||||
# /system/build.prop,
|
||||
# /odm/build.prop,
|
||||
# /vendor/build.prop and
|
||||
# /factory/factory.prop
|
||||
load_system_props
|
||||
start vold
|
||||
exec - system system -- /system/bin/vdc checkpoint markBootAttempt
|
||||
|
||||
|
|
Loading…
Reference in a new issue