You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.8 KiB

List Installed Files from Source Directories

list_installed_file_from_source.py helps users to list the vendor source files or vendor prebuilts that will be installed into the system image.

This tool lists all possible file that may be installed to the system image. Some listed files are not actually installed because they are not specified in PRODUCT_PACKAGES.

Usage

First, build an Android target:

lunch aosp_sailfish-userdebug
make -j8

Then, in ${ANDROID_BUILD_TOP}, run list_installed_file_from_source.py:

./development/vndk/tools/sourcedr/sourcedr/list_installed_file_from_source.py \
    out/combined-sailfish.ninja \
    --ninja-deps out/.ninja_deps \
    | tee files.txt

Be patient. It may take for 3-5 mintues.

Re-use the Parsed Dependency Graph

list_installed_file_from_source.py spends a lot of time parsing ninja files. It is desirable to keep the parsed dependency graph for further investigation. You can create a parsed dependency graph with:

./development/vndk/tools/sourcedr/sourcedr/ninja.py pickle \
    out/combined-sailfish.ninja \
    --ninja-deps out/.ninja_deps \
    -o sailfish.pickle

And then, load dependency graph with:

./development/vndk/tools/sourcedr/sourcedr/list_installed_file_from_source.py \
    sailfish.pickle

Filters

By default, list_installed_file_from_source.py lists the files that are from device or vendor directories and installed to the system partition. This can be tweaked with --installed-filter and --source-filter:

  • --installed-filter filters the paths of the files that may be installed to the device. The specified path must be relative to the file system root of the device. The default value is system.

  • --source-filter filters the paths of the source files. The paths must be relative to Android source tree root (i.e. ${ANDROID_BUILD_TOP}). Multiple paths may be specified and separated by semicolons. The default value is device:vendor.

Examples

List the files from device/google and installed to /system:

./development/vndk/tools/sourcedr/sourcedr/list_installed_file_from_source.py \
    sailfish.pickle \
    --source-filter device/google \
    --installed-filter system

List the files from device/google and installed into /system/lib64 with:

./development/vndk/tools/sourcedr/sourcedr/list_installed_file_from_source.py \
    sailfish.pickle \
    --source-filter device/google \
    --installed-filter system/lib64

List the files from frameworks/base or frameworks/native and installed into /system/lib or /system/lib64 with:

./development/vndk/tools/sourcedr/sourcedr/list_installed_file_from_source.py \
    sailfish.pickle \
    --source-filter frameworks/base:frameworks/native \
    --installed-filter system/lib:system/lib64