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.
101 lines
2.8 KiB
101 lines
2.8 KiB
4 months ago
|
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
|
||
|
```
|