Moving /odm/build.prop to /odm/etc/buid.prop
In device root directory, we have the following symlinks: - /odm/app -> /vendor/odm/app - /odm/bin -> /vendor/odm/bin - /odm/etc -> /vendor/odm/etc ... This allows the Generic System Image (GSI) to be used on both devices: 1) Has a physical odm partition, where those symlink will be hidden when /odm is used as the mount point 2) Has no physical odm partition and fallback to /vendor/odm/. We can't just have the symlink /odm -> /vendor/odm, because the former devices won't have /vendor/odm directory, which leads to mount failure when the mount point /odm is resolved to /vendor/odm. The existing /vendor/odm/build.prop won't be loaded in the latter devices, because there is no symlink - /odm/build.prop -> /vendor/odm/build.prop. Note that init blocks reading through direct symlinks (O_NOFOLLOW) so the above symlink won't work either. This CL moves the odm build.prop to /odm/etc/build.prop for init to load it (symlinks in earlier components of the path will still be followed by O_NOFOLLOW). Bug: 132128501 Test: boot a device and checks /odm/etc/build.prop is loaded Change-Id: I0733c277baa67c549bb45599abb70aba13fbdbcf
This commit is contained in:
parent
b4bd641697
commit
c49655b2a4
2 changed files with 9 additions and 4 deletions
|
@ -885,8 +885,12 @@ void property_load_boot_defaults(bool load_debug_prop) {
|
|||
load_properties_from_file("/system/build.prop", nullptr, &properties);
|
||||
load_properties_from_file("/vendor/default.prop", nullptr, &properties);
|
||||
load_properties_from_file("/vendor/build.prop", nullptr, &properties);
|
||||
load_properties_from_file("/odm/default.prop", nullptr, &properties);
|
||||
load_properties_from_file("/odm/build.prop", nullptr, &properties);
|
||||
if (SelinuxGetVendorAndroidVersion() >= __ANDROID_API_Q__) {
|
||||
load_properties_from_file("/odm/etc/build.prop", nullptr, &properties);
|
||||
} else {
|
||||
load_properties_from_file("/odm/default.prop", nullptr, &properties);
|
||||
load_properties_from_file("/odm/build.prop", nullptr, &properties);
|
||||
}
|
||||
load_properties_from_file("/product/build.prop", nullptr, &properties);
|
||||
load_properties_from_file("/product_services/build.prop", nullptr, &properties);
|
||||
load_properties_from_file("/factory/factory.prop", "ro.*", &properties);
|
||||
|
|
|
@ -158,8 +158,9 @@ static const struct fs_path_config android_files[] = {
|
|||
{ 00750, AID_ROOT, AID_SHELL, 0, "data/nativetest64/*" },
|
||||
{ 00600, AID_ROOT, AID_ROOT, 0, "default.prop" }, // legacy
|
||||
{ 00600, AID_ROOT, AID_ROOT, 0, "system/etc/prop.default" },
|
||||
{ 00600, AID_ROOT, AID_ROOT, 0, "odm/build.prop" },
|
||||
{ 00600, AID_ROOT, AID_ROOT, 0, "odm/default.prop" },
|
||||
{ 00600, AID_ROOT, AID_ROOT, 0, "odm/build.prop" }, // legacy; only for P release
|
||||
{ 00600, AID_ROOT, AID_ROOT, 0, "odm/default.prop" }, // legacy; only for P release
|
||||
{ 00600, AID_ROOT, AID_ROOT, 0, "odm/etc/build.prop" },
|
||||
{ 00444, AID_ROOT, AID_ROOT, 0, odm_conf_dir + 1 },
|
||||
{ 00444, AID_ROOT, AID_ROOT, 0, odm_conf_file + 1 },
|
||||
{ 00444, AID_ROOT, AID_ROOT, 0, oem_conf_dir + 1 },
|
||||
|
|
Loading…
Reference in a new issue