Each Mounter outputs an error log if it cannot prepare a file,
but it could be not really an error sometimes. For example,
some files in sepolicy_checker are optional, and could got
the log:
Fail to prepare file: vendor/etc/selinux/vendor_sepolicy.cil
The patch changes these logs to be 'INFO' level.
This patch also changes run_command() to output logs with 'ERROR'
level when log_stdout or log_stderr is True.
Also, the patch changes it to only output stack dump in debug mode.
Bug: 74507280
Bug: 70588453
Test: ./run_test.py
Test: './gsi_util.py dump --system system.img'
and the system.img doesn't exist.
Test: './gsi_util.py check_compat --vendor adb --system adb'
and vendor/etc/selinux/vendor_sepolicy.cil isn't in the device.
Change-Id: Ibdcb6df459f88ace9159f1a979f280452454a84f
The 'gsi_util hello' is used for a demo initially.
It should be removed as it's not a practical command.
Bug: None
Test: `gsi_util --help`, checks hello command is gone
Change-Id: I8578db27c1ddbc16bba0a1357207ba77bf13390d
'check_compat' command can check the compatibility between
system and vendor image, which can be any source supported by
mounters, ex. image file, folder or adb.
Uses following command for the detail:
$ ./gsu_util.py check_compat --help
The patch also includes a 'checker' framework. There is only
one checker 'VintfChecker' at this time. VintfChecker uses a
host tool, 'checkvintf', to check the compatibility.
Bug: 70253825
Test: check_compat with different mounters
Change-Id: I459b4cbd38465c0058087b4c68bca66e491c940e
'dump' command can dump information from given image, which could
be a image file, folder or device by adb.
Use $./gsi_util.py dump --help for the detail.
The patch also includes a "dump" framework, to implement some
dumpers to dump information. This patch also includes PropDumper to
dump information from property files, and XmlDumper to dump
information from XML files.
There is an initial dump info list in dump_info_list.py.
Use subcommand 'list_dump' could output the list.
Usually using Dumper is enough to dump information. dump.py is an
example to use Dumper.
Bug: 70253764
Test: dump from different mounter
Change-Id: I7c05f8f24d44d3c7429f2c428963f64191f49a53
'pull' command can pull a file from an image file, folder or adb.
The patch includes a "mounter" framework to implement different
source of the system/vendor image. And also includes several
"mounter" implementations.
CompositeMounter integrates all possible mounter implementations.
Usually just using CompositeMounter is enough. With
CompositeMounter, you could access files in different target
with an unique interface, such files in an image file, a folder or
a device with an unique interface. pull.py is an basic example to
use CompositeMounter.
Here are some example to use 'pull' command:
$ ./gsi_util.py pull --system adb:AB0123456789 /system/manifest.xml
$ ./gsi_util.py pull --vendor adb /vendor/compatibility_matrix.xml
$ ./gsi_util.py pull --system system.img /system/build.prop
$ ./gsi_util.py pull --system my/out/folder/system /system/build.prop
As current implementation, accessing files in a the image file requires
root permission. gsi_util will need user to input the password for sudo.
For the detail usage, reference:
$ ./gsi_util.py pull --help
Bug: 71029338
Test: pull /system/build.prop from different targets
Change-Id: Iaeb6352c14ebc24860ed79fc30edd314e225aef9
With this CL, new command can be easily added:
1. Add a new file: gsi/gsi_util/gsi_util/commands/hello.py
And implements a function to register parsers into gsi_util's main parser.
def setup_command_args(subparsers)
2. In gsi/gsi_util/gsi_util.py, add the new command into GsiUtil():
_COMMANDS = ['hello']
Bug: 70588453
Test: make gsi_util
Test: gsi_util --help
Test: gsi_util hello --foo
Test: gsi_util --debug hello --bar
Change-Id: I54fa6d1dea5afed724d9ac4a99f88bf78da82732