libusb for Android
==================

Building:
---------

To build libusb for Android do the following:

 1. Download the latest NDK from:
    http://developer.android.com/tools/sdk/ndk/index.html

 2. Extract the NDK.

 3. Open a shell and make sure there exist an NDK global variable
    set to the directory where you extracted the NDK.

 4. Change directory to libusb's "android/jni"

 5. Run "$NDK/ndk-build".

The libusb library, examples and tests can then be found in:
    "android/libs/$ARCH"

Where $ARCH is one of:
    armeabi
    armeabi-v7a
    mips
    mips64
    x86
    x86_64

Installing:
-----------

If you wish to use libusb from native code in own Android application
then you should add the following line to your Android.mk file:

  include $(PATH_TO_LIBUSB_SRC)/android/jni/libusb.mk

You will then need to add the following lines to the build
configuration for each native binary which uses libusb:

  LOCAL_C_INCLUDES += $(LIBUSB_ROOT_ABS)
  LOCAL_SHARED_LIBRARIES += libusb1.0

The Android build system will then correctly include libusb in the
application package (APK) file, provided ndk-build is invoked before
the package is built.


For a rooted device it is possible to install libusb into the system
image of a running device:

 1. Enable ADB on the device.

 2. Connect the device to a machine running ADB.

 3. Execute the following commands on the machine
    running ADB:

    # Make the system partition writable
    adb shell su -c "mount -o remount,rw /system"

    # Install libusb
    adb push obj/local/armeabi/libusb1.0.so /sdcard/
    adb shell su -c "cat > /system/lib/libusb1.0.so < /sdcard/libusb1.0.so"
    adb shell rm /sdcard/libusb1.0.so

    # Install the samples and tests
    for B in listdevs fxload xusb sam3u_benchmark hotplugtest stress
    do
      adb push "obj/local/armeabi/$B" /sdcard/
      adb shell su -c "cat > /system/bin/$B < /sdcard/$B"
      adb shell su -c "chmod 0755 /system/bin/$B"
      adb shell rm "/sdcard/$B"
    done

    # Make the system partition read only again
    adb shell su -c "mount -o remount,ro /system"

    # Run listdevs to
    adb shell su -c "listdevs"

 4. If your device only has a single OTG port then ADB can generally
    be switched to using Wifi with the following commands when connected
    via USB:

    adb shell netcfg
    # Note the wifi IP address of the phone
    adb tcpip 5555
    # Use the IP address from netcfg
    adb connect 192.168.1.123:5555

Runtime Permissions:
--------------------

The default system configuration on most Android device will not allow
access to USB devices. There are several options for changing this.

If you have control of the system image then you can modify the
ueventd.rc used in the image to change the permissions on
/dev/bus/usb/*/*. If using this approach then it is advisable to
create a new Android permission to protect access to these files.
It is not advisable to give all applications read and write permissions
to these files.

For rooted devices the code using libusb could be executed as root
using the "su" command. An alternative would be to use the "su" command
to change the permissions on the appropriate /dev/bus/usb/ files.

Users have reported success in using android.hardware.usb.UsbManager
to request permission to use the UsbDevice and then opening the
device. The difficulties in this method is that there is no guarantee
that it will continue to work in the future Android versions, it
requires invoking Java APIs and running code to match each
android.hardware.usb.UsbDevice to a libusb_device.
