ADB

ADB is Android Debug Bridge, a protocol over USB (OTG) to provide many necessary system access services.

A full explanation on how to use ADB is provided at the android developer website.

= Common pitfalls =

No devices found
If you run adb devices, and it shows no devices: List of devices attached

Then verify that your device is present on the usb bus, by running lsusb: Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 032: ID abcd:1234

You then need to make sure that adb knows about this new vendor id: mkdir ~/.android/ echo "0xabcd" > ~/.android/adb_usb.ini

You need to restart adb for this to take effect: adb kill-server

Only root has access
You need to alter the permissions of your usb device through udev.

Add a file 51-android.rules in /etc/udev/rules.d/ with the following content (with the ID matching what lsusb says).

SUBSYSTEM=="usb", ATTR{idVendor}=="abcd", MODE="0666", GROUP="plugdev"

When you now update udev, you should be able to access the device as a user:

udevadm trigger

= root access =

While most Allwinner devices ship with root access enabled via ADB, some don't. There are different ways of gaining root access on the device, but many of them are not straightforward or involve using proprietary software. Android can be tricked to quickly provide root access on ADB shell, using the lax permissions set on /data/local/tmp files at boot. adb shell $ rm -rf /data/local/tmp $ ln -s /data /data/local/tmp Reboot the device. adb shell $ echo "ro.kernel.qemu=1" > /data/local/tmp/local.prop Reboot the device: ADB shell should now be running as root!