Android系统库豁免列表

Android系统库豁免列表,第1张

概述 在bionic/linker/linker.cpp中有一个系统库函数的豁免列表,但是只有targetsdkversion小于24才能被豁免。staticboolis_exempt_lib(android_namespace_t*ns,constchar*name,constsoinfo*needed_by){staticconstchar*constkLibraryExemptList[]={"liba

 在bionic/linker/linker.cpp中有一个系统库函数的豁免列表,但是只有target sdk version小于24才能被豁免。

static bool is_exempt_lib(androID_namespace_t* ns, const char* name, const soinfo* needed_by) {  static const char* const klibraryExemptList[] = {    "libandroID_runtime.so",    "libbinder.so",    "libcrypto.so",    "libcutils.so",    "libexpat.so",    "libgui.so",    "libmedia.so",    "libnativehelper.so",    "libssl.so",    "libstagefright.so",    "libsqlite.so",    "libui.so",    "libutils.so",    nullptr  };  // If you're targeting N, you don't get the exempt-List.  if (get_application_target_sdk_version() >= 24) {    return false;  }  // if the library needed by a system library - implicitly assume it  // is exempt unless it is in the List of shared librarIEs for one or  // more linked namespaces  if (needed_by != nullptr && is_system_library(needed_by->get_realpath())) {    return !maybe_accessible_via_namespace_links(ns, name);  }  // if this is an absolute path - make sure it points to /system/lib(64)  if (name[0] == '/' && dirname(name) == kSystemlibDir) {    // and reduce the path to basename    name = basename(name);  }  for (size_t i = 0; klibraryExemptList[i] != nullptr; ++i) {    if (strcmp(name, klibraryExemptList[i]) == 0) {      return true;    }  }  return false;}

 

总结

以上是内存溢出为你收集整理的Android系统库豁免列表全部内容,希望文章能够帮你解决Android系统库豁免列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1042745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存