Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 361210e5 authored by Jooyung Han's avatar Jooyung Han
Browse files

Activate apexes in /system_ext/apex, /vendor/apex

As VNDKs can be installed /system_ext/apex or /vendor/apex,
otapreopt_chroot activates apexes in those directories as well.

Bug: 137802149
Bug: 140136207
Test: m otapreopt_chroot
Change-Id: I11e3310d83a53759339ae5e86c19c49736a5f71d
parent 1a4c7aee
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -61,11 +61,15 @@ static void CloseDescriptor(const char* descriptor_string) {

static std::vector<apex::ApexFile> ActivateApexPackages() {
    // The logic here is (partially) copied and adapted from
    // system/apex/apexd/apexd_main.cpp.
    // system/apex/apexd/apexd.cpp.
    //
    // Only scan the APEX directory under /system (within the chroot dir).
    // Only scan the APEX directory under /system, /system_ext and /vendor (within the chroot dir).
    std::vector<const char*> apex_dirs{apex::kApexPackageSystemDir, apex::kApexPackageSystemExtDir,
                                       apex::kApexPackageVendorDir};
    for (const auto& dir : apex_dirs) {
        // Cast call to void to suppress warn_unused_result.
    static_cast<void>(apex::scanPackagesDirAndActivate(apex::kApexPackageSystemDir));
        static_cast<void>(apex::scanPackagesDirAndActivate(dir));
    }
    return apex::getActivePackages();
}