1## Setting up for WALT Android app development
2
3In general WALT Android app has no special requirements but since WALT usually takes up the only available USB connector on the phone, the typical development using ADB via USB becomes difficult. Below are some options to overcome this problem.
4
5
6#### Using a USB hub and a USB Ethernet adapter
7
8ADB can work over TCP connections. The [official documentation](https://developer.android.com/studio/command-line/adb.html#wireless) assumes that the TCP connection is established over WiFi, but a wired Ethernet connection can be used in the same way and is reported to work much better with ADB. Android will recognize and use most USB-Ethernet adapters out of the box.
9
101. With the phone connected you computer via USB, run `adb tcpip 5555` (you can replace 5555 with any port)
111. Disconnect the phone from USB
121. Connect a USB hub (preferably powered) to the phone using a [USB-C to USB-A-female adapter](https://store.google.com/product/usb_type_c_to_usb_standard_a_adapter)
13   or a USB-OTG adapter.
141. Use the hub to connect WALT, Ethernet adapter and whatever other USB peripherals you might want to test using WALT
15
16Note, this setup is sensitive to the order in which you connect the different components and adapters, experiments with it.
17
18
19####  Using a ChromeOS device with Android
20
21A ChromeOS device with Android (e.g. Asus Flip) is another convenient option.
22
23Since Android on ChromeOS has no access to USB, it requires a TCP bridge script implemented in [walt.py](/pywalt/walt.py). Detailed instructions in [Chromeos.md](Chromeos.md).
24
25In order to set up your  for Android development, use either the
26[official guide for Android development on ChromeOS](https://developer.android.com/topic/arc/index.html#setup).
27Or the following short list:
28
291. Log in to Chromebook via a non-guest account, also avoid restricted corporate/managed accounts
301. Go to settings, scroll down to Google Play Store and click enable
311. Click Manage your Android preferences and enable ADB debugging like on a regular Android device:
32  1. Click About device
33  1. Keep tapping the build number until it says “You are now a developer” (7 taps)
34  1. Go back and click on Developer options
35  1. Enable ADB debugging
361. Get your Chromebook connected to a network so it would be accessible from you workstation
371. Switch Chromebook to terminal via ctrl+alt+f2 and log in as root
381. Run `ifconfig` to get the ip address of eth0 (or wlan0 if using wireless)
391. On your workstation, run `ssh root@ip_addr` to verify that Chromebook is accessible
401. Run `adb connect ip_addr:22`. From this point on Android studio and adb on your workstation should treat the Chromebook just like a regular Android device
411. Run the WALT TCP bridge (more details [here](ChromeOS.md))
42  1. scp the pywalt folder from your workstation and run the following on the Chromebook:
43  1. `iptables -A INPUT -p tcp --dport 50007 -j ACCEPT`
44  1. `python walt.py -t bridge`
45