Commit graph

128 commits

Author SHA1 Message Date
Dimitry Ivanov
d047c925af 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
2016-02-25 11:33:32 -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
426799d770 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
2016-02-24 23:30:27 +00:00
Jesse Hall
2f9cd05c47 Merge "native_loader: add libvulkan.so to public native library list" into nyc-dev 2016-02-24 00:50:10 +00:00
Jesse Hall
dee3d96c01 native_loader: add libvulkan.so to public native library list
Change-Id: I2228af5ec4b815631a9c5ca745718807d58028a3
2016-02-23 16:16:47 -08:00
Dimitry Ivanov
f44ecde588 nativeloader: Export FindNamespaceByClassLoader
Bug: http://b/27189432
Change-Id: Ib80dcce949276ee620f601c47b20f783708e8e85
(cherry picked from commit 0cd10d83e4)
2016-02-23 11:50:44 -08:00
Dimitry Ivanov
c914ebd484 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 34fa704df4)
2016-02-23 11:50:28 -08:00
Elliott Hughes
2a7f7e0090 Move libnativeloader headers into libnativeloader.
Change-Id: I227676276da1b08a84486f29fb0e1502c8dbdf4a
(cherry picked from commit e2b4e1e00c)
2016-02-22 15:23:22 -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
Dimitry Ivanov
dab56737ca 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
2016-02-17 17:22:20 -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
d68c8e9f84 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
2016-02-11 10:22:38 -08:00
Dimitry Ivanov
4e9bda3873 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
2016-02-02 20:10:12 +00: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
73d2bc07b2 Add libcamera2ndk.so to the list of public libraries
Bug: http://b/23012001
Change-Id: If5bfd9ea15fcfe508aee4731d7f84fe517bfb43e
2016-01-26 10:49:24 -08:00
Dimitry Ivanov
e803dd8aec 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
2016-01-14 02:08:33 +00: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
6082622b18 Merge "Make libwebviewchromium_plat_support.so public" am: cd60e4bdd6
am: ce292ad06c

* commit 'ce292ad06ccd38beaa2d7bf8add13dbdf01f91e5':
  Make libwebviewchromium_plat_support.so public
2016-01-12 04:52:47 +00:00
Dimitry Ivanov
3d5a43449f 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
2016-01-11 14:53:59 -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