X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjni%2Flibusb-1.0.22%2Fandroid%2FREADME;fp=app%2Fsrc%2Fmain%2Fjni%2Flibusb-1.0.22%2Fandroid%2FREADME;h=32024eff0d01c427f63f93d03ccc234942c3f5fc;hb=577426ccc66649228285c4a0b6ba8752836059c6;hp=0000000000000000000000000000000000000000;hpb=b7202442677d0cf41e6e59870cd6c34e5619b8b9;p=rtmpclient.git diff --git a/app/src/main/jni/libusb-1.0.22/android/README b/app/src/main/jni/libusb-1.0.22/android/README new file mode 100644 index 0000000..32024ef --- /dev/null +++ b/app/src/main/jni/libusb-1.0.22/android/README @@ -0,0 +1,116 @@ +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.