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

Commit 1f7c37f3 authored by Jooyung Han's avatar Jooyung Han
Browse files

Use {llndk,vndksp}.libraries.txt from VNDK APEX

/system/etc/{llndk,vndksp}.libraries.txt files will be deprecated.
These files can be read from VNDK APEX.

Bug: 145184886
Test: build / boot
Merged-In: Ic6f46033bd525325562e04ef9e8bcb8ebb5b5d41
Change-Id: Ic6f46033bd525325562e04ef9e8bcb8ebb5b5d41
(cherry picked from commit 78396804)
parent a821321b
Loading
Loading
Loading
Loading
+10 −15
Original line number Original line Diff line number Diff line
@@ -61,26 +61,25 @@ enum NativeLibrary {
    VNDKSP = 1,
    VNDKSP = 1,
};
};


static constexpr const char* kNativeLibrariesSystemConfigPath[] = {"/etc/llndk.libraries.txt",
static constexpr const char* kNativeLibrariesSystemConfigPath[] =
                                                                   "/etc/vndksp.libraries.txt"};
        {"/apex/com.android.vndk.v{}/etc/llndk.libraries.{}.txt",
         "/apex/com.android.vndk.v{}/etc/vndksp.libraries.{}.txt"};


static std::string vndkVersionStr() {
static std::string vndkVersionStr() {
#ifdef __BIONIC__
#ifdef __BIONIC__
    std::string version = android::base::GetProperty("ro.vndk.version", "");
    return android::base::GetProperty("ro.vndk.version", "");
    if (version != "" && version != "current") {
        return "." + version;
    }
#endif
#endif
    return "";
    return "";
}
}


static void insertVndkVersionStr(std::string* fileName) {
static void insertVndkVersionStr(std::string* fileName) {
    LOG_ALWAYS_FATAL_IF(!fileName, "fileName should never be nullptr");
    LOG_ALWAYS_FATAL_IF(!fileName, "fileName should never be nullptr");
    size_t insertPos = fileName->find_last_of(".");
    std::string version = vndkVersionStr();
    if (insertPos == std::string::npos) {
    size_t pos = fileName->find("{}");
        insertPos = fileName->length();
    while (pos != std::string::npos) {
        fileName->replace(pos, 2, version);
        pos = fileName->find("{}", pos + version.size());
    }
    }
    fileName->insert(insertPos, vndkVersionStr());
}
}


static bool readConfig(const std::string& configFile, std::vector<std::string>* soNames) {
static bool readConfig(const std::string& configFile, std::vector<std::string>* soNames) {
@@ -103,11 +102,7 @@ static bool readConfig(const std::string& configFile, std::vector<std::string>*
}
}


static const std::string getSystemNativeLibraries(NativeLibrary type) {
static const std::string getSystemNativeLibraries(NativeLibrary type) {
    static const char* androidRootEnv = getenv("ANDROID_ROOT");
    std::string nativeLibrariesSystemConfig = kNativeLibrariesSystemConfigPath[type];
    static const std::string rootDir = androidRootEnv != nullptr ? androidRootEnv : "/system";

    std::string nativeLibrariesSystemConfig = rootDir + kNativeLibrariesSystemConfigPath[type];

    insertVndkVersionStr(&nativeLibrariesSystemConfig);
    insertVndkVersionStr(&nativeLibrariesSystemConfig);


    std::vector<std::string> soNames;
    std::vector<std::string> soNames;