VDA Reference
The VDA command line utility lets you install, test, and debug your Vega app. VDA is a binary located in the Vega SDK at: <vega_SDK_PATH>/bin/tools/vda
.
If you added vega_SDK_PATH/bin
to your path during Vega SDK installation, enter kepler exec vda
at the command prompt to start VDA.
To set up your Fire TV Stick with VDA, see Set Up Your Fire TV Stick. VDA works with the Vega Virtual Device (simulator) without additional setup.
VDA global options
Use these VDA global options, and local and shell commands to install, test, and debug your Vega app.
Serial override
To direct commands to your device or emulator with a specific serial number or qualifier, use -s
.This option overrides the VDA_SERIAL
environment variable.
Device
kepler exec vda -s <specific device>
Example:
kepler exec vda -s G071R20720350DT6 shell
Example output:
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
Vega Virtual Device
kepler exec vda -s emulator-<VVD port> shell
Example:
kepler exec vda -s emulator-5554 shell
Example output:
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
VDA local commands
Devices
To list all connected devices, use devices
. Add -l
to list the device qualifiers.
kepler exec vda devices [ -l ]
Example:
kepler exec vda devices -l
Example output for a device:
kepler exec vda devices -l
List of devices attached
G071R20720350DT6 device usb:14131000
Example output for the Vega Virtual Device:
kepler exec vda devices -l
List of devices attached
G071R20720350DT6 device usb:14131000
emulator-5554 device
Help
To view the help file, use kepler exec vda help
.
kepler exec vda help
Example output:
kepler exec vda help
VDA version 1.0.0
-a - directs vda to listen on all interfaces for a connection
-d - directs command to the only connected USB device
returns an error if more than one USB device is present.
-e - directs command to the only running emulator.
returns an error if more than one emulator is running.
-s <specific device> - directs command to the device or emulator with the given
serial number or qualifier. Overrides VDA_SERIAL
environment variable.
-p <product name or path> - simple product name like 'sooner', or
a relative/absolute path to a product
out directory like 'out/target/product/sooner'.
If -p is not specified, the VDA_PRODUCT_OUT
environment variable is used, which must
be an absolute path.
-H - Name of vda server host (default: localhost)
-P - Port of vda server (default: 5037)
devices [-l] - list all connected devices
('-l' will also list device qualifiers)
connect <host>[:<port>] - connect to a device via TCP/IP
Port 5555 is used by default if no port number is specified.
disconnect [<host>[:<port>]] - disconnect from a TCP/IP device.
Port 5555 is used by default if no port number is specified.
Using this command with no additional arguments
will disconnect from all connected TCP/IP devices.
Kill server
To stop the server, use kill-server
.
kepler exec vda kill-server
kepler exec vda kill-server
produces no output.Start server
To start the server, use start-server
.
kepler exec vda start-server
Example output:
kepler exec vda start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
Push
To copy a file/dir to your device, use the push
command. Add -p
to display the transfer progress.
kepler exec vda push [-p] <local> <remote>
Example:
kepler exec vda push Echo.png /data/
Example output:
kepler exec vda push Echo.png /tmp/
2283 KB/s (6109 bytes in 0.002s) vda shell ls /data/Echo*
/data/Echo.png
Pull
To copy a file/dir from your device, use pull
. Add -p
to display the transfer progress, and -a
to display timestamp and mode.
kepler exec vda pull [-p] [-a] <remote> [<local>]
Example:
kepler exec vda pull -p /data/Echo.png
Example output:
kepler exec vda pull -p /tmp/Echo.png
Transferring: 6109/6109 (100%)
370 KB/s (6109 bytes in 0.016s)
ls Echo*
Echo.png
Version
To view your VDA version, use vda version
.
kepler exec vda version
Example output:
kepler exec vda version
VDA version 1.0.0
Wait for device
To block activity until your device comes online, use wait-for-device
. This helps when scripting.
kepler exec vda wait-for-device
Example output:
kepler exec vda devices
List of devices attached
kepler exec vda wait-for-device
kepler exec vda devices
List of devices attached
G071R20720350DT6 device
Reboot
Use the reboot command to reboot your device. One option is to boot into the bootloader.
reboot
command awaits future implementation. Instead, use kepler device -d VirtualDevice reboot
command.
kepler exec vda reboot
The system displays the transition from unknown to device.
Boot into the bootloader
kepler exec vda reboot [bootloader]
Example output:
kepler exec vda reboot
kepler exec vda status-window #should see transition from unknown to device
Boot into the bootloader (alternate command)
kepler exec vda reboot-bootloader
Example output:
kepler exec vda reboot-bootloader #should see transition from unknown to device
The device enters bootloader state.
VDA shell commands
kepler exec vda shell <command> -h
for help, along with a list of options for any shell command.Invoke the shell
The kepler exec vda shell
command runs a remote shell interactively, and has a number of options available.
kepler exec vda shell
Example output:
firetvstick-fa0ef0f89ff2d145:/#
Other shell commands
kepler exec vda shell <command>
Example:
kepler exec vda shell ls /data
Example output:
30fps_480x960 30fps_960x480 960x480.png Echo.png basicjstest_armv7.vpkg dcm lcd_logmgr misc mixer_meta securedStorageLocation
Package manager
To invoke the package manager, use vpm
.
kepler exec vda shell vpm <subcommands>
Example:
kepler exec vda shell vpm install /tmp/basicjstest_armv7.vpkg
Example output:
kepler exec vda shell vpm install /tmp/basicjstest_armv7.vpkg
Installing/Updating '/tmp/basicjstest_armv7.vpkg' ...success
Life-cycle manager
To invoke the life cycle manager, use vlcm
.
kepler exec vda shell vlcm <subcommands>
Example:
kepler exec vda shell vlcm list
Example output:
kepler exec vda shell vlcm list
application type pid id state lifespan timeout container launch args
com.amazon.otad.main S 703 1 READY PERMANENT DEFAULT framework.slice/service
Launch component shell
Each app launches single or multiple components.
To get a list of components:
kepler exec vda shell vlcm list
To run a component interactively, use:
kepler exec vda shell -c <Component-id>
Example output:
- com.amazon.otad.main
##################################################
##### Welcome to Developer mode Shell #####
##################################################
sh(com.amazon.otad):/$
To run a command in the component shell, use:
kepler exec vda shell -c <Component-id> <command>
Example output:
kepler exec vda shell -c com.amazon.otad.main df -h /tmp
Filesystem Size Used Avail Use% Mounted on
none 64M 0 64M 0% /tmp
High level memory
To find the high-level memory footprint of all processes in the system, use ace-memusage
.
kepler exec vda shell ace_memusage
Example output:
kepler exec vda shell ace_memusage
PID User Cmdline Swap Uss Pss Rss Vss
1 root /sbin/init 0 1128 2669 8184 28904
401 root /lib/systemd/systemd-journald 0 2560 3150 7116 19692
423 root /lib/systemd/systemd-udevd 0 2432 2694 6220 18956:Total System Memory:
Total Free Buffers Cached Shmem Slab Available
1782444 1088312 142808 278528 10880 79024 1479176
Done
Top
To display CPU usage interactively, use top
.
kepler exec vda shell top
Example output:
kepler exec vda shell top
top - 18:07:03 up 1 min, 0 users, load average: 3.89, 1.42, 0.51
Tasks: 227 total, 1 running, 226 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.4 us, 7.2 sy, 0.0 ni, 90.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1740.7 total, 1057.4 free, 229.2 used, 454.1 buff/cache
MiB Swap: 425.0 total, 425.0 free, 0.0 used. 1440.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4644 root 20 0 5204 2436 1952 R 15.8 0.1 0:00.08 top
:
systemctl
To control and query systemd init
, use systemctl
. The systemctl
command represents the system control commands.
kepler exec vda shell systemctl <subcommands>
</div>
Example:
kepler exec vda shell systemctl list-units
Example output:
kepler exec vda shell systemctl list-units #should see list of systemd services
gwsi-tool-screenshooter
To capture and save screenshots in PNG format, use:
kepler exec vda shell gwsi-tool-screenshooter <file.png>
Example:
kepler exec vda shell gwsi-tool-screenshooter /temp/test.png
Example output:
kepler exec vda shell gwsi-tool-screenshooter /tmp/test.png
kepler exec vda pull /temp/test.png
ls test.png
test.png
Device logs
To print device logs to the screen, use loggingctl log
:
kepler exec vda shell loggingctl log <subcommands>
Example:
kepler exec vda shell loggingctl log -o short-precise -f
Example output:
kepler exec vda shell loggingctl log -o short-precise -f
Jun 05 18:10:37.484732 firetvstick-fa0ef0f89ff2d145 idle-manager[3268]: I idle-service:[IdleManagerService.cpp:107] transitionTo: 0->2
Jun 05 18:10:37.484831 firetvstick-fa0ef0f89ff2d145 idle-manager[3268]: I idle-service:[ScreensaverLauncher.cpp:71] Launching pkg://com.amazon.screensaver
Jun 05 18:10:37.485561 firetvstick-fa0ef0f89ff2d145 lcm_service[2151]: I lcm-ipc-server:[LcmServer.cpp:182] Received request: launch app for result (1) from (uid:101, gid:101, pid:3268, security_ctx:System)
<continous log output>
Related topics
Last updated: Sep 30, 2025