private static void AddSystemLibSoSource()

in java/com/facebook/soloader/SoLoader.java [445:466]


  private static void AddSystemLibSoSource(ArrayList<SoSource> soSources, String[] denyList) {
    String systemLibPaths =
        SysUtil.is64Bit() ? "/system/lib64:/vendor/lib64" : "/system/lib:/vendor/lib";

    String LD_LIBRARY_PATH = System.getenv("LD_LIBRARY_PATH");
    if (LD_LIBRARY_PATH != null && !LD_LIBRARY_PATH.equals("")) {
      systemLibPaths += ":" + LD_LIBRARY_PATH;
    }

    final Set<String> libPathSet = new HashSet<>(Arrays.asList(systemLibPaths.split(":")));
    for (String libPath : libPathSet) {
      // Don't pass DirectorySoSource.RESOLVE_DEPENDENCIES for directories we find on
      // LD_LIBRARY_PATH: Bionic's dynamic linker is capable of correctly resolving dependencies
      // these libraries have on each other, so doing that ourselves would be a waste.
      if (Log.isLoggable(TAG, Log.DEBUG)) {
        Log.d(TAG, "adding system library source: " + libPath);
      }
      File systemSoDirectory = new File(libPath);
      soSources.add(
          new DirectorySoSource(systemSoDirectory, DirectorySoSource.ON_LD_LIBRARY_PATH, denyList));
    }
  }