| # Loading autotestPrivate extension on your device |
| |
| AutotestPrivate is an extension that exposes APIs that facilitate the |
| interaction with a ChromeOS device during tests. This guide shows how to load |
| the extension on your device. |
| |
| [TOC] |
| |
| |
| ## Prerequisites |
| |
| You need a device running a ChromeOS test image and a Chromium OS |
| checkout. To load a test image on your device follow [these steps] from the |
| Simple Chrome guide. To grab a checkout of Chromium OS follow the |
| [OS Developer Guide]. |
| |
| |
| ## Removing rootfs verification and editing command line flags |
| NOTE: If you've completed these steps before feel free to skip to [Loading |
| autotest extension on your device](#Loading-autotest-extension-on-your-device) |
| |
| To get a command shell on the device: |
| |
| 1. Run in your workstation: |
| |
| `ssh root@$IP_ADDR` |
| |
| Use the default password: |
| |
| `test0000` |
| |
| 1. To run ChromeOS with flags, first make usr partition writeable with: |
| |
| ``` |
| /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 2 |
| /usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 4 |
| ``` |
| |
| 1. Reboot your device for rootfs changes to take effect. Run: |
| |
| `reboot` |
| |
| 1. Then append desired flags(listed below) to `/etc/chrome_dev.conf`. |
| |
| ## Loading autotest extension on your device |
| |
| 1. Enter a ChromeOS chroot. Inside of your ChromeOS checkout directory run: |
| |
| `cros_sdk` |
| |
| 1. From inside your ChromeOS chroot run: |
| |
| `test_that $IP_ADDR -b $BOARD stub_Pass` |
| |
| This will install the autotestPrivate extension manifest to your device. |
| |
| 1. Open a command prompt in your device and edit your command line flags. |
| |
| * Add flag `--remote-debugging-port=9333` |
| * NOTE: Port 9333 is not required, any port will work. |
| * Add flag |
| `--load-extension=/usr/local/autotest/common_lib/cros/autotest_private_ext` |
| |
| 1. In your device's command prompt run |
| |
| `restart ui` |
| |
| for flag changes to take effect. |
| |
| 1. Ssh to your device with `ssh -L 9333:localhost:9333 root@$IP_ADDR` |
| |
| This will forward your device's devtools port to a local port on your |
| workstation. |
| |
| 1. On your workstation, point your browser to `localhost:9333`. |
| |
| 1. Click on *Telemetry ChromeOS AutoTest Component Extension*. This opens a |
| connection to the extension's backgound page. |
| |
| 1. Open the console tab. |
| |
| If you've followed all the steps correctly, you should be able to execute code |
| in the console tab to interact with the extension. |
| |
| For example, try running: |
| ``` js |
| > chrome.autotestPrivate.loginStatus(status => console.log(status)); |
| > {isLoggedIn: false, isOwner: false, isReadyForPassword: false, isScreenLocked: false} |
| ``` |
| |
| \[these steps\]: https://chromium.googlesource.com/chromiumos/docs/+/main/simple_chrome_workflow.md#set-up-the-chrome-os-device <br> |
| \[OS Developer Guide\]: https://chromium.googlesource.com/chromiumos/docs/+/main/developer_guide.md#get-the-source |