commit | 57b43d1e3d6ac06633583aacdb5bd5c0ebd60c93 | [log] [tgz] |
---|---|---|
author | Kiyoung Kim <kiyoungkim@google.com> | Fri Oct 16 14:05:53 2020 +0900 |
committer | Kiyoung Kim <kiyoungkim@google.com> | Fri Oct 16 14:05:53 2020 +0900 |
tree | 2065b84ea87513fcdd1b343325ad9675e2979321 | |
parent | 197857eefaa843a6e0ab51d740cd35f1fd486c01 [diff] |
Add extra dependencies for system namespace Add extra dependencies between system namespace and Statsd APEX so system namespace from non-system section can use libraries from statsd APEX. Bug: 170695190 Test: Cuttlefish boot succeeded Change-Id: I512e1cd6731a7f31121f408ff6a2405275b136e0
Linkerconfig is a program to generate linker configuration based on the runtime environment. Linkerconfig generates one or more ld.config.txt files and some other files under /linkerconfig during init. Linker will read this generated configuration file(s) to find out link relationship between libraries and executable.
TODO: explain inputs (e.g. /system/etc/public.libraries.txt, /apex/apex-info-list.xml, ..)
Linker configuration file can be used to add extra information while linkerconfig creates linker configuration with the module. This module can be defined as 'linker_config' from Soong, and it will be translated as protobuf file at build time.
linker.config.json file is in json format which can contain properties as below.
Property Name | Type | Description |
---|---|---|
permittedPaths | List | Additional permitted paths |
visible | bool | Force APEX namespace to be visible from all sections if the value is true |
{ "permittedPaths" : [ "/a", "/b/c", "/d/e/f"], "visible": true }
TODO: a few words about the files
Check ld.config.format.md.
The file describes libraries exposed from APEXes. libnativeloader is the main consumer of this file.
# comment line jni com_android_foo libfoo_jni.so public com_android_bar libbar.so:libbaz.so
The file is line-based and each line consists of tag apex_namespace library_list
.
tag
explains what library_list
is.apex_namespace
is the namespace of the apex. Note that it is mangled like com_android_foo
for the APEX("com.android.foo").library_list
is colon-separated list of library names.tag
is jni
, library_list
is the list of JNI libraries exposed by apex_namespace
.tag
is public
, library_list
is the list of public libraries exposed by apex_namespace
. Here, public libraries are the libs listed in /system/etc/public.libraries.txt.