android apk libusb,libusb/android at master · libusb/libusb · GitHub

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值