This commit adds --system-dir-ignored option so that the user can
ignore /system/vendor directory and run the following command on some
devices:
python3 vndk_definition_tool.py vndk \
--system ${ANDROID_PRODUCT_OUT}/system \
--system-dir-ignored vendor \
--vendor ${ANDROID_PRODUCT_OUT}/vendor
Bug: 37867089
Test: ./tests/run.py
Test: Add --system-dir-ignored to make sure /system/vendor on some
devices are not treated as system modules.
Change-Id: I8d67e9e437e4862fcf3c39ef84102d77e9a4d010
Merged-In: I45a82bf81f2e2a6b34c146310f53d47dfe2313c3
This commit updates readme instructions to match with the simplified
VNDK in O workflow.
Bug: 37867089
Test: Run the described command lines with sailfish directories.
Change-Id: Ie8507fdbcdb1e83f56b465d2d5fce88129f817aa
Merged-In: I80f3ee4eac34fae772ba6c336e457f537cb8312c
This commit implements the degenerated directory layout for o-release.
This commit also simplifies the output significantly.
Bug: 37867089
Test: Run vndk_definition_tool.py against o-release images.
Change-Id: I6fa6833461639ad8dfc6103c0753064c63cdadcb
Merged-In: I5aad29fa4ff7e819778d26d2e2011af1be61bb58
This commit adds TaggedLibDict to read eligible list from CSV files and
decide whether a lib is visible to another module.
Note: The file format for eligible-list.csv has been changed. Prepend
library names with `/system/${LIB}/`, e.g. `/system/${LIB}/libc.so`.
Bug: 37867089
Test: ./tests/test_tagged_lib_dict.py
Test: ./tests/run.py
Change-Id: Iaa09e0e6b124a931aa0eb68c3196786fb783fe43
Merged-In: Id415642b7a5609a3cf791364519a443a6c17c1a3
This commit adds libvndksupport.so to LL-NDK list. libvndksupport.so
is a wrapper library over some platform-only libdl.so APIs.
Bug: 37867089
Test: ./tests/test_ndk_libs.py
Change-Id: I74e66065b5e6a7f75ff24e9ba651c52b3f47162d
Merged-In: I25465f6d94441a22da3bf9a7c8417e2388c764da
This commit updates the vndk-sp list according to b/36705501. Some
libs are still under discussion and might be removed in the future.
Bug: 37867089
Bug: 36705501
Test: ./tests/test_elf_linker.py
Change-Id: Ia06802a23745224f6cca332b7d105138e9189220
Merged-In: I55d4b4e31ac326218f2048f69b7a9a2c51045291
This commit removes `--warn-high-level-ndk-deps` and
`--warn-banned-vendor-lib-deps`. These options are removed in favor of
the eligible vndk list. In next CL, a user can specify an eligible VNDK
list with `--tag-file`. VNDK definition tool will print warnings if
vendor modules are using ineligible framework libraries.
Bug: 37867089
Test: ./tests/run.py
Change-Id: I355679845060611e2f46a6666fde13755f47f1f4
Merged-In: I0bb11de70c93f1447bb041561e80e342aa400fd4
This commit adds `--aosp-system` option to simplify the command line
usages. The user can specify the aosp image system directory directly
and skip the `create-generic-ref` subcommand.
Bug: 37867089
Test: Compare the output with `--load-generic-refs` and `--aosp-system`.
Change-Id: Id04adffc020e14aa9d7909f20b0a8cd4a586603a
Merged-In: Ibb76bd59ea504808545775562feefcd8a95ee267
Using the command "dep-graph" the tool will check and show the VNDK
dependency violations base on the VNDK tag definition.
Bug: 37867089
Test: Run `vndk_definition_tool.py dep-graph \
--system ... --vendor ... -o "html_output" \
--tag-file "[vndk_tag_table].csv"`
Change-Id: I913d34794418b8ee13bcabb9df4ddd93b1c5aa81
Merged-In: Ia5196e94beb0de106176e98ea413e4a921d7f8c5
This commit renames VNDK-stable to VNDK-SP because libraries in VNDK-SP
don't have to be stable.
Bug: 37867089
Test: ./tests/run.py
Change-Id: I75d966e05c274e369b5d54e2d661cc63997e1c00
Merged-In: I73697af3403b21db4878cadcf1622a9ac92ed10b
This command adds `ll-ndk-indirect` to `vndk-sp-indirect` so that
the `check-dep` subcommand can recognize eligible-list-v3.4.csv.
Bug: 37867089
Bug: 37958115
Test: Run check-dep command against eligible-list-v3.4.csv.
Change-Id: I216917251cb46eb8099cc84c35a2402b4500608b
Merged-In: I64d793ba1f6fada2dc49d00ae9d37ccf5b9d8d15
This commit adds __lt__() to ELFLinkData class so that instances of
ELFLinkData can be sorted by path by default.
This commit also adds several sorted() function calls so that the
output can be stable between different command line invocations.
Bug: 37867089
Test: ./tests/run.py
Test: Run check-dep subcommand multiple times and compare the output.
Change-Id: I86e1d6ad6ff0be918b0b770904ab9327e7d23c82
Merged-In: I08bf7a9e0e1e393f0e0f3fcd4cf83a4002515b51
This commit replaces naive loop with `find(b'\0', offset)`. The
performance is improved by 3x if the script was run by a python2
interpreter.
Bug: 37867089
Test: ./tests/run.py
Change-Id: I190ebd1a2184a83216e44abdcaf7ecf7f1ed990c
Merged-In: I68d579baeab3c4c7f0928194a6c06b0969346d5f
android.hidl.base@1.0 and android.hidl.manager@1.0 are built into libhidltransport.
Bug: 37867089
Bug: 33276472
Test: tests pass
Change-Id: I71b8e477b0c389bee480cfe5a9d2f2c39fd4921a
Merged-In: I9b4421606d8fcc0048cc231e5043cc906030cef9
This commit adds libsync.so and libnativewindow.so to SP-NDK and move
libz.so to VNDK-SP (VNDK-Stable).
Bug: 37867089
Test: ./tests/run.py
Change-Id: If2986ed676762c55d89edf118ccc8441d95c1442
Merged-In: I8f2cc1b0e54c9380165014a65f24feaca314e1b9
This commit adds `remove_dt_needed.py`. `remove_dt_needed.py` is a
binary editor which removes the specified library from DT_NEEDED
entries.
Bug: 37867089
Test: remove_dt_needed.py [input.so] -o [output.so] --name [victim]
Change-Id: I6ddb1ee6ce256a8c7b7ea1d2afa732740e948024
Merged-In: Ief62aa57a4b315926269fbb38e79798772fa554c
This commit add the functionality to print depended symbols from
ineligible libs and violating module source path to check-dep
subcommand.
Test: ./tests/run.py
Test: Run `vndk_definition_tool.py deps --symbols` on various tree and
the output should remain identical.
Test: Run `vndk_definition_tool.py check-dep --module-info ...`
Bug: 37867089
Bug: 32811412
Change-Id: I5ce6ae1ad7ab0398e18b8f0c4fa31bdce67fa8aa
Merged-In: Ie9fa31da4ac18425604e27e0377c7da2b88bd4eb
This commit adds fuzzy path matching to the deps-insight output html.
With fuzzy path matching, it will be easier to find a module especially
when the module has been moved to a different directory during the VNDK
computation.
Test: Run `vndk_definition_tool.py deps-insight` and find
/system/lib/libandroid_runtime.so (which was renamed as
/system/lib/vndk/libandroid_runtime.so.)
Bug: 37867089
Bug: 32811412
Change-Id: Ie65cee6d3b87afc79a7609f85d593df109b421f1
Merged-In: I32d0d54f4f9bc8c8294255d2ed8b85c1da36e81b
Properties can include \n so get_props isn't sound, and it's not obvious how
to fix it (without adding something like cat's -v to getprop, which wouldn't
help the intended use case of working with arbitrary old devices).
Bug: https://issuetracker.google.com/37093233
Test: gdbclient -r /system/bin/date
Change-Id: I96042fd44f1de17974968954fab6c916a9d13b61
The font being used in the ApiDemos is of unclear origin, replace
it with a font we created. Also cleanup the code around it
Test: manual
Bug: 37726227
Change-Id: I7e30c3afddc731473c9bbe5a767fa0e1144a20d6