A few weeks ago, I started tinkering with my new Asus Zenwatch 3. As I wanted to make a backup first, I connected the watch with its USB cable to my PC. Before you can access the filesystem, you have to enable a developer mode first by tapping several times on the build number menu entry under "Settings" -> "Info". Then, you can control the watch using adb. Unfortunately, you do not get root privileges on the device, hence, you cannot backup all files.

While my ultimate goal is to get AsteroidOS running on this device, I first started with building an own kernel (from this source) and an initramfs with Busybox and Dropbear SSH in order to access the storage on the watch. Both are available in the following directory: http://kicherer.org/stuff/zenwatch3/

To boot this initramfs, you have to reboot your watch into fastboot mode first by executing adb reboot-bootloader from the connected PC. If it is in fastboot mode, you also need the fastboot tool on your PC. Then, you can start the image using:

fastboot boot zImage-dtb initramfs.cpio.gz

This command will load the two files into the RAM and start executing them from there. The data in the storage of the watch will not be modified. However, in order to execute this command, you might need to unlock the bootloader. While you do not get root privileges over adb, you can unlock the bootloader using fastboot without problems. But if you do this, the device will do a factory reset and all stored settings and user data are erased!

After the image booted, it will advertise an RNDIS interface over USB to establish an IP connection between watch and PC. The watch will use the IP, so you can use on your PC, e.g., by executing: sudo ifconfig usb0 up. Afterwards, you can log in over SSH using the username "root" and the password "swift" or using telnet. The first thing I did after the login was creating and transfering a storage image from the watch to the PC using the following command on the PC:

ssh root@ dd if=/dev/mmcblk0 | cat > mmcblk0.img.