94ee4e690dc4e529a27561b9e0d1e52a0dddc7d5 |
|
24-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
Remove target_sdk_version parameter Since linker-namespaces are enabled for all target_sdk_versions and there is no longer need in workarounds in libnativeloader - remove unused target_sdk_version parameter for internal calls. This also brings libnativeloader closer to aosp/master Bug: http://b/26040253 Change-Id: I7d6f6ac31be0dca5f3c3f6ea20e6cc87ce3a3c7f
/system/core/libnativeloader/native_loader.cpp
|
ade364b4566212a0c16920443a84aa85ac31f781 |
|
13-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
Set parent namespace for linker-namespaces This change allows applications to share RTLD_GLOBAL native libraries between namespaces associated with different classloaders. The rule is - if a library is GLOBAL within namespace associated with parent classloader, it is shared with namespace associated with this classloader Note that the sharing happens on create_namespace event, which is tied to createClassloader in case of application classloaders created by the framework, for custom application classloaders it is tied to first loadLibrary() event. Bug: http://b/28560538 Bug: https://code.google.com/p/android/issues/detail?id=208458 Change-Id: I7ee701166f8ec5eff033b7acc0f80c7aa4ec5bda (cherry picked from commit 24db75c1ce7ff8376a475214b059b9a37ac07936)
/system/core/libnativeloader/native_loader.cpp
|
25df4bff44a0d1a342dc45521bf7e860b3fef947 |
|
17-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
Pass permitted_path to the linker as is. Now that we have the fixed list of whitelisted libraries there is no longer need to check if java_permitted_path is nullptr. In fact checking it prevents custom classloaders created by apps from loading libraries using absolute path. Bug: http://b/28659864 Change-Id: I1bfc16a573b090f70f078ecccd0e4016939a5dc0 (cherry picked from commit b31caa95ec1ab9da7b300544e9716c1cac92d8f8)
/system/core/libnativeloader/native_loader.cpp
|
c337cae9adcb538a4562641f97bdde933d085a82 |
|
10-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
Move linker-namespace functions declarations They are intended for platform use only and we shouldn't have them in the public header file. This CL moves them to libnativeloader private header file. Bug: http://b/28174921 Change-Id: I01cf446d2d8d7cf6f9e31130aa3d4e54fbbbb9fc (cherry picked from commit 6796522256b4cd861d3ebaf8264bd272b3c7441f)
/system/core/libnativeloader/native_loader.cpp
|
d0b1531929d76411d964d4077d441d751e2c01fb |
|
11-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
nativeloader: Ignore empty java_permitted_path Passing empty permitted path should result in no-op. This addresses review comment on CL with commit f334cbf0e1425633bef96a21b0ce9e30f4c6ffa9 Bug: http://b/28639227 Change-Id: I4a4540e522e90a145a374939921932c86f35e88d
/system/core/libnativeloader/native_loader.cpp
|
f334cbf0e1425633bef96a21b0ce9e30f4c6ffa9 |
|
10-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
Extend white-listed directories to include /mnt/expand Apps on sdcard live under /mnt/expand and therefore this directory should be under linker namespaces permitted_path. Bug: http://b/28639227 Change-Id: I462f9f23656c95d9c2a48bb3f513abcd9d08f340
/system/core/libnativeloader/native_loader.cpp
|
cf9892b6d1b0138bdf2341aaa0670c43af27cb85 |
|
09-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
nativeloader: Fix the case of search_path == null When user creates custom classloader which does not extend BaseDexClassLoader the librarySearchPath gets set to null by java.lang.Runtime.doLoad(). This patch makes nativeloader correctly handle it. Bug: http://b/28659864 Change-Id: I1b61c6bc952984d7c49775a9178fc3270948e62a (cherry picked from commit 8a0425b86acd4f20ef68ef350ac32e1c5057c558)
/system/core/libnativeloader/native_loader.cpp
|
7d02829636cfb4d23c5665b1481ccb3d20f27b56 |
|
06-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
Add public libs from an environment variable This is enabled only for builds with ro.debuggable=1 It is intended for use only in tests using dalvikvm and needing access to platform libraries. Bug: http://b/28449304 Change-Id: I402457d0da542996ccf265aeaa305f09881e4333 (cherry picked from commit 4ddabd01bf361cadb33baa7213e2ca5129b938f0)
/system/core/libnativeloader/native_loader.cpp
|
09a516bf161c5cabdaa3a67df5aa7fbac667f5f9 |
|
03-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
nativeloader: Add CloseNativeLibrary() method This method is called by art on UnloadNativeLibraries() Bug: http://b/28406866 Change-Id: Ibccff93c83d6ccd3d0a1c0294a64b09281b4e05e
/system/core/libnativeloader/native_loader.cpp
|
be4ca3afc0636b314d676480156eb6977739dd00 |
|
02-May-2016 |
Dimitry Ivanov <dimitry@google.com> |
nativeloader: Add Reset capabilities In the case when VM is restarted all weak references from the old VM become invalid. In such event NativeLoader needs to clear the list of classloaders from old VM. Bug: http://b/28453840 Bug: http://b/28449304 Change-Id: I2268c1e21cf940c57ddc5f0312f56b71aa702134
/system/core/libnativeloader/native_loader.cpp
|
0b5651e1588c2fee6a587314993a166a77068974 |
|
22-Apr-2016 |
Dimitry Ivanov <dimitry@google.com> |
native_loader: Use ANDROID_ROOT environment variable Replace "/system" with ANDROID_ROOT environment variable. Bug: http://b/28320913 Bug: http://b/28082914 Change-Id: Ib039722cb059bae1635b45f6af20ef0180e83ba9 (cherry picked from commit 7e8cee8fb2e3d92e60554296eebe9d1e75cfd473)
/system/core/libnativeloader/native_loader.cpp
|
5539db0b4f915bf15de742d1378904a553dc80dc |
|
21-Apr-2016 |
Dimitry Ivanov <dimitry@google.com> |
Enable namespaces for all target sdk versions We previously relied on the fact that target sdk version 0 implies system_server, which is not true, target sdk version may be set to 0 for other apps and it means 1 - the earliest version of android. This change enables namespaces for apps targeting all sdk version and for system_server. Bug: http://b/27702070 Change-Id: I16fbdeb6868c7035aec71132c80c150c08ea2cc3 (cherry picked from commit 213676b88019016f8c968a05c50a196e2aaaeff8)
/system/core/libnativeloader/native_loader.cpp
|
3150fa25140fd5e2d66569841bd8e8eba07adb27 |
|
15-Apr-2016 |
Alex Light <allight@google.com> |
Remove workaround for libart greylist. Bug: 27775991 Change-Id: I77f03b95f70957df58e666b011a07cfc2a33b480
/system/core/libnativeloader/native_loader.cpp
|
b614045894c99fb1d35179d3e0a0bab0d5dec666 |
|
07-Apr-2016 |
Dimitry Ivanov <dimitry@google.com> |
Allow vendors to extend the list of public libs native_loader adds libraries specified in the (optional) file: /vendor/etc/public.libraries.txt to the list of public native libraries. Bug: http://b/27073931 Change-Id: I927193cce99d48c3395bd0e6c373ae9fad0f13f4 (cherry picked from commit 617f495cf7a8e07b433058fb7f4c7611b584fda9)
/system/core/libnativeloader/native_loader.cpp
|
4f8bb2577a7394f7c9ba0e4530f6374b8cbf20fa |
|
30-Mar-2016 |
Dimitry Ivanov <dimitry@google.com> |
Adjust check for target_sdk_version for workarounds target_sdk_version=0 is a valid version, it basically means 1 (the very first version of android) not current one. Bug: http://b/27702070 Change-Id: Ib7843718f364b975e1d09a05377bf8580b407d9d
/system/core/libnativeloader/native_loader.cpp
|
7f9a1aaf05dda20904f08a667dadcf555a41477e |
|
22-Mar-2016 |
Dimitry Ivanov <dimitry@google.com> |
A workaround for apps using custom classloaders Allow custom classloaders to load native libraries from anywhere under /data Bug: http://b/27588281 Change-Id: Idb87b33361903f52b734ddd0ceaabe1ff9c281eb
/system/core/libnativeloader/native_loader.cpp
|
4b0e963872715775a63f36b385150cba4801b1d0 |
|
15-Mar-2016 |
Dimitry Ivanov <dimitry@google.com> |
Move list of public libraries to a config file This list contains libraries that should directly or indirectly be accessible to apps for the platform. Note that this list is not device specific but rather device class specific. For now we have 2 separate lists; one for Android Phones and Tablets, and another one for Android Wear devices. Bug: http://b/27546414 Bug: http://b/22548808 Change-Id: I83de5e3cf67392d0e9af66f70123898bd5997146
/system/core/libnativeloader/native_loader.cpp
|
9c0a2029771846ecea9121cf249169e581f6f7f5 |
|
16-Mar-2016 |
Dimitry Ivanov <dimitry@google.com> |
Revert "libnativeloader: Make webviewchromium so file optional" This reverts commit 75dda7551f6a3499c0c45ed0f9530353c7616357. Bug: http://b/27546414
/system/core/libnativeloader/native_loader.cpp
|
75dda7551f6a3499c0c45ed0f9530353c7616357 |
|
16-Mar-2016 |
Prashant Malani <pmalani@google.com> |
libnativeloader: Make webviewchromium so file optional Not all android devices ship with Webview. The requirement of libwebviewchromium_plat_support.so to be loaded while initializing the android namespace is therefore liable to cause a crash on devices that don't support or use Webview. Therefore, this patch makes this requirement conditional, but enabled by default. To remove the dependency, device make files should add the following: TARGET_IGNORE_WEBVIEW_CHROMIUM := true Bug: 27336841 Bug: 27546414 Change-Id: Iaec1b58236356d981504ea8f716413ea334ca4f4
/system/core/libnativeloader/native_loader.cpp
|
5f28b8460d9e53c5ccbe154ec244c9ae56b4a97c |
|
04-Mar-2016 |
Dimitry Ivanov <dimitry@google.com> |
Handle the case when libart.so is not in use In the case when libartd.so is used libart.so does not have to be included in the public namespace. Bug: http://b/27496326 Change-Id: I464bafec1d9da5c3f3f03fef02af3f34bf377297
/system/core/libnativeloader/native_loader.cpp
|
34d5a20c8bb57adae8711c7f9d90a77fbd4043c7 |
|
29-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
Fix locking of libnativeloader This commit fixes race condition introduced in d047c925af62e1fe28fcd1c1940df4afe18d458a Bug: http://b/27189432 Bug: http://b/22548808 Change-Id: I5d94f130937f18d3443878b3521715a8f87427e0
/system/core/libnativeloader/native_loader.cpp
|
d047c925af62e1fe28fcd1c1940df4afe18d458a |
|
23-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
Added function to explicitly initialize a namespace This change replaces lazy get-or-create logic for linker namespaces with the explicit one. ApplicationLoaders.getClassLoader(..) is now resposible for the namespace initialization for PathClassLoaders. Bug: http://b/27189432 Bug: http://b/22548808 Change-Id: Ife987c3ca1db33a47c20f363a5ed61512be8b5a7
/system/core/libnativeloader/native_loader.cpp
|
426799d77014888315233253e96277bef13158eb |
|
22-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
Add PreloadPublicNativeLibraries function Shift responsibility of preloading native libraries to the user of the library. This lets applications that do not use jni but depend on libnative_loader.so to avoid unnecessary preloads of public libraries which could be expensive. Bug: http://b/27245894 Change-Id: I12a8100de5da639c068769bca21ecebff2b2d538
/system/core/libnativeloader/native_loader.cpp
|
2f9cd05c47e7739cda5f931c120cc1f55e2a9e82 |
|
24-Feb-2016 |
Jesse Hall <jessehall@google.com> |
Merge "native_loader: add libvulkan.so to public native library list" into nyc-dev
|
dee3d96c01d6de65b3d890012162a367bb6918b7 |
|
24-Feb-2016 |
Jesse Hall <jessehall@google.com> |
native_loader: add libvulkan.so to public native library list Change-Id: I2228af5ec4b815631a9c5ca745718807d58028a3
/system/core/libnativeloader/native_loader.cpp
|
f44ecde58832372ca0edf053eeee44ad56f69944 |
|
22-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
nativeloader: Export FindNamespaceByClassLoader Bug: http://b/27189432 Change-Id: Ib80dcce949276ee620f601c47b20f783708e8e85 (cherry picked from commit 0cd10d83e4e14300d03a60f28547b90d0c805579)
/system/core/libnativeloader/native_loader.cpp
|
c914ebd4841ba9e5b8f446dfc5b6dfeecb56531f |
|
22-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
nativeloader: refactor FindNamespaceByClassLoader method FindNamespaceByClassLoader returns android_namespace_t* to make it suitable for exporting this functionality. Bug: http://b/27189432 Change-Id: Ifef3de753192178e0184fb114596fe956fde2826 (cherry picked from commit 34fa704df45c5f74aeb5230e4bf3930585cf32fb)
/system/core/libnativeloader/native_loader.cpp
|
dab56737ca898d913c79c4ded76d78d8b3f5ffa3 |
|
18-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
Limit libart.so visibility to apps targeting <= M Add libart.so to the list of public libraries only for apps targeting android M and below. Bug: http://b/27210062 Bug: http://b/26436837 Change-Id: I1ed3b0335a343044a76273741ea8770dcce12ebe
/system/core/libnativeloader/native_loader.cpp
|
d68c8e9f84557484ef3e8a3ee03398d22f109fa8 |
|
10-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
Preload public native libraries Preload libraries needed by the public namespace at the earlier stage. This saves time on InitPublicNamespace and saves memory because the libraries are linked before zygote fork. Bug: http://b/26409579 Change-Id: I59153a4180b930f31b542d8d2cb17b5d63c36774
/system/core/libnativeloader/native_loader.cpp
|
4e9bda387315c88326813b9d13265bccaa22ceaf |
|
02-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
Merge "Include icu4c libraries to the list of public libs" am: 17e33647f0 am: 819da66bec * commit '819da66bec28c31d564ba695d4d32f1a4727cad1': Include icu4c libraries to the list of public libs
|
c24ca894f541c78c661ad40ec9bcf78384f2b26d |
|
02-Feb-2016 |
Dimitry Ivanov <dimitry@google.com> |
Include icu4c libraries to the list of public libs Note that with this change the linker will ignore icu libraries provided by an app because public libraries are always provided by system. At this point it does not affect any apps because before Marshmallow all of them were getting platform version of icu4c libs anyways (they will be getting their own copy of the library only in Marshmallow release). Bug: http://b/26217329 Bug: http://b/26929349 Change-Id: I681cab43c9f28ec22319d9f0424bd3df00743a5f
/system/core/libnativeloader/native_loader.cpp
|
73d2bc07b25e8ee0794e6b63f331a72de631b1be |
|
26-Jan-2016 |
Dimitry Ivanov <dimitry@google.com> |
Add libcamera2ndk.so to the list of public libraries Bug: http://b/23012001 Change-Id: If5bfd9ea15fcfe508aee4731d7f84fe517bfb43e
/system/core/libnativeloader/native_loader.cpp
|
e803dd8aec98aa8e2c0679affd3cb661719e6f84 |
|
14-Jan-2016 |
Dimitry Ivanov <dimitry@google.com> |
Merge "Add libRS.so to the list of public libraries" am: ebe04a9b89 am: 108eaa1429 * commit '108eaa1429ec7cffd5aa38a97674fb3565ad581e': Add libRS.so to the list of public libraries
|
cdb6fee17c29dd6b2c84fdb05dbcc382e24e67c0 |
|
14-Jan-2016 |
Dimitry Ivanov <dimitry@google.com> |
Add libRS.so to the list of public libraries Bug: http://b/26509995 Change-Id: I8c0ae3629928171d229a901cfc997780665e3ae8
/system/core/libnativeloader/native_loader.cpp
|
6082622b1805e925412100c736fb98143d9390d7 |
|
12-Jan-2016 |
Dimitry Ivanov <dimitry@google.com> |
Merge "Make libwebviewchromium_plat_support.so public" am: cd60e4bdd6 am: ce292ad06c * commit 'ce292ad06ccd38beaa2d7bf8add13dbdf01f91e5': Make libwebviewchromium_plat_support.so public
|
3d5a43449f414cde4b7602a20b764f28c58dd740 |
|
11-Jan-2016 |
Dimitry Ivanov <dimitry@google.com> |
Add libart.so to the list of public libraries This is a temporary workaround for apps relying on libart internal state. Bug: http://b/26436837 Change-Id: Ibd6a766c3c8edebe885d897565a72a7a407828c3
/system/core/libnativeloader/native_loader.cpp
|
90bf68e8d1388ecf0ff24de4e408ff35d0532730 |
|
08-Jan-2016 |
Dimitry Ivanov <dimitry@google.com> |
Make libwebviewchromium_plat_support.so public Add libwebviewchromium_plat_support.so to the list of public libraries. Bug: http://b/26461431 Change-Id: I958a1182198bf59d9b6fc818953212ce505d6bdd
/system/core/libnativeloader/native_loader.cpp
|
619ffb4f5bec53adcd0b204c61c0e4d1d6ab529e |
|
16-Dec-2015 |
Dimitry Ivanov <dimitry@google.com> |
Revert "Temporary disable linker-namespaces" This reverts commit c18ac7cd2bc6214745b91d74e249962ce9ff7d26.
/system/core/libnativeloader/native_loader.cpp
|
d2a6220001c9693664f8cf514f0653a4e1b859ea |
|
15-Dec-2015 |
Dimitry Ivanov <dimitry@google.com> |
Add parameter for shared namespaces Shared namespaces are used for bundled app classloaders. Bug: http://b/22548808 Bug: http://b/26165097 Change-Id: I163033f70c50ef9ddb4164676c033ab30748964e (cherry picked from commit ef4639c1a5159726797dec719d84e3a88e96f8a0)
/system/core/libnativeloader/native_loader.cpp
|
c18ac7cd2bc6214745b91d74e249962ce9ff7d26 |
|
12-Dec-2015 |
Dimitry Ivanov <dimitry@google.com> |
Temporary disable linker-namespaces Bug: http://b/26164393 Change-Id: If6277407a6a5a4da9e3ad01dc45f57a7fc9954e4
/system/core/libnativeloader/native_loader.cpp
|
0d6e59407d7b57805a72fe4d3df03c5249ea7ae8 |
|
08-Dec-2015 |
Dimitry Ivanov <dimitry@google.com> |
Apply permitted path to the classloader-namespace Bug: http://b/25853516 Bug: http://b/22548808 Change-Id: I283e6ee8d743bc3ab41aab9f36af0abbe729943f
/system/core/libnativeloader/native_loader.cpp
|
8b0471462e5bb9e81652a1a53cc786df9848feef |
|
08-Dec-2015 |
Elliott Hughes <enh@google.com> |
Track rename of base/ to android-base/. Change-Id: I974d67b6568e913bfb7700d952be55b4073388ee
/system/core/libnativeloader/native_loader.cpp
|
ac1b1919f8d655f652e77f59cc52813199085cd9 |
|
01-Dec-2015 |
Dimitry Ivanov <dimitry@google.com> |
Native loader as a separate library Extracted native loader to separate library in order to be able to reuse it for NativeActivities related native code in libandroid_runtime.so Bug: http://b/22548808 Change-Id: Ibcf5ddcdc5aba22e32e4b72887840e9c171c1986
/system/core/libnativeloader/native_loader.cpp
|