Commit graph

18 commits

Author SHA1 Message Date
Dimitry Ivanov
617f495cf7 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
2016-04-06 18:24:08 -07:00
Dimitry Ivanov
d1fdb98830 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
(cherry picked from commit 4b0e963872)
2016-03-17 10:54:19 -07:00
Dimitry Ivanov
1dff1aa97c Fix locking of libnativeloader
This commit fixes race condition introduced in
d047c925af

Bug: http://b/27189432
Bug: http://b/22548808
Change-Id: I5d94f130937f18d3443878b3521715a8f87427e0
(cherry picked from commit 34d5a20c8b)
2016-02-29 13:31:26 -08:00
Dimitry Ivanov
4cd0768115 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
(cherry picked from commit d047c925af)
2016-02-26 18:38:58 -08:00
Dimitry Ivanov
6f80022908 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
(cherry picked from commit 426799d770)
2016-02-24 16:45:26 -08:00
Dimitry Ivanov
0cd10d83e4 nativeloader: Export FindNamespaceByClassLoader
Bug: http://b/27189432
Change-Id: Ib80dcce949276ee620f601c47b20f783708e8e85
2016-02-22 13:48:22 -08:00
Dimitry Ivanov
34fa704df4 nativeloader: refactor FindNamespaceByClassLoader method
FindNamespaceByClassLoader returns android_namespace_t* to make
it suitable for exporting this functionality.

Bug: http://b/27189432
Change-Id: Ifef3de753192178e0184fb114596fe956fde2826
2016-02-22 13:15:28 -08:00
Elliott Hughes
e2b4e1e00c Move libnativeloader headers into libnativeloader.
Change-Id: I227676276da1b08a84486f29fb0e1502c8dbdf4a
2016-02-12 18:07:29 -08:00
Dimitry Ivanov
55bbb0d88a 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
(cherry picked from commit d68c8e9f84)
2016-02-11 10:33:35 -08:00
Dimitry Ivanov
c24ca894f5 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
2016-02-02 11:06:31 -08:00
Dimitry Ivanov
cdb6fee17c Add libRS.so to the list of public libraries
Bug: http://b/26509995
Change-Id: I8c0ae3629928171d229a901cfc997780665e3ae8
2016-01-13 15:19:35 -08:00
Dimitry Ivanov
90bf68e8d1 Make libwebviewchromium_plat_support.so public
Add libwebviewchromium_plat_support.so to the list
of public libraries.

Bug: http://b/26461431
Change-Id: I958a1182198bf59d9b6fc818953212ce505d6bdd
2016-01-08 12:35:38 -08:00
Dimitry Ivanov
619ffb4f5b Revert "Temporary disable linker-namespaces"
This reverts commit c18ac7cd2b.
2015-12-31 14:11:34 -08:00
Dimitry Ivanov
d2a6220001 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 ef4639c1a5)
2015-12-19 23:38:28 -08:00
Dimitry Ivanov
c18ac7cd2b Temporary disable linker-namespaces
Bug: http://b/26164393
Change-Id: If6277407a6a5a4da9e3ad01dc45f57a7fc9954e4
2015-12-11 18:15:41 -08:00
Dimitry Ivanov
0d6e59407d Apply permitted path to the classloader-namespace
Bug: http://b/25853516
Bug: http://b/22548808
Change-Id: I283e6ee8d743bc3ab41aab9f36af0abbe729943f
2015-12-09 15:39:36 -08:00
Elliott Hughes
8b0471462e Track rename of base/ to android-base/.
Change-Id: I974d67b6568e913bfb7700d952be55b4073388ee
2015-12-08 10:38:59 -08:00
Dimitry Ivanov
ac1b1919f8 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
2015-12-07 12:59:02 -08:00