diff options
Diffstat (limited to 'en/devices/tech/config/namespaces_libraries.html')
-rw-r--r-- | en/devices/tech/config/namespaces_libraries.html | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/en/devices/tech/config/namespaces_libraries.html b/en/devices/tech/config/namespaces_libraries.html index 1e94bf1b..5dae4b07 100644 --- a/en/devices/tech/config/namespaces_libraries.html +++ b/en/devices/tech/config/namespaces_libraries.html @@ -54,11 +54,43 @@ with <code>libpng</code>). libraries</h2> <p> -In addition to standard public native libraries, vendors may choose to provide -additional native libraries accessible to apps by putting them under the -<code>/vendor</code> library folder (/vendor/lib for 32 bit libraries and, -/vendor/lib64 for 64 bit) and listing them in: -<code>/vendor/etc/public.libraries.txt</code> +In addition to standard public native libraries, silicon vendors (starting from Android 7.0) and +device manufactures (starting from Android 9) may choose to provide additional native libraries +accessible to apps by putting them under the respective library folders and explicitly listing them +in .txt files. +</p> + +<p>The library folders are:</p> +<ul> + <li><code>/vendor/lib</code> (for 32-bit) and <code>/vendor/lib64</code> (for 64-bit) + for libraries from silicon vendors</li> + <li><code>/system/lib</code> (for 32-bit) and <code>/system/lib64</code> (for 64-bit) + for libraries from device manufacturers</li> +<ul> + +<p>The .txt files are:</p> +<ul> + <li><code>/vendor/etc/public.libraries.txt</code> for libraries from silicon vendors</li> + <li><code>/system/etc/public.libraries-COMPANYNAME.txt</code> for libraries from device manufacturers, + where <code>COMPANYNAME</code> refers to a name of the manufacturer (such as + <code>awesome.company</code>). <code>COMPANYNAME</code> should match with + <code>[A-Za-z0-9_.-]+</code>; alphanumeric characters, _, . (dot) and -. It is possible to + have multiple such .txt files in a device if some libraries are from external solution + providers. +</ul> + +<p> + Native libraries in the <code>system</code> partition that are made public by device manufacturers + <strong>MUST</strong> be named <code>lib*COMPANYNAME.so</code>, e.g., <code>libFoo.awesome.company.so</code>. + In other words, <code>libFoo.so</code> without the company name suffix MUST NOT be made public. + The <code>COMPANYNAME</code> in the library file name MUST match with the <code>COMPANYNAME</code> in the + txt file name in which the library name is listed. +</p> + +<p> + Native libraries that are part of AOSP MUST NOT be made public (except the standard + public native libraries which are public by default). Only the additional libraries added by + silicon vendors or device manufacturers can be made accessible to apps. </p> <p> |