Androidでdeb系ぽいLinux環境を実現できるTermuxからAndroidを操作するAPIのTermux-APIのupdateがありました.
Add a USB API compatible with libusb – see https://wiki.termux.com/wiki/Termux-usb for more information.
なんだか気になる更新内容です.
早速試してみます.
$ pkg update $ pkg install root-repo $ pkg install termux-api $ pkg install libusb $ pkg install clang
termux-usb コマンドでデバイスを確認してアクセス許可を与える(ここではUSBメモリ)$ termux-usb -l [ "/dev/bus/usb/001/004" ] $ termux-usb -r /dev/bus/usb/001/004 Access granted.
アクセスの許可はAndroidの画面で操作が必要です.
ちなみに,USB Keyboardは認識できませんでした(Androidでは利用できているのに!)
$ cat << __EOF__ > usbtest.c
> $ cat usbtest.c
> #include <stdio.h>
> #include <assert.h>
> #include <libusb-1.0/libusb.h>
>
> int main(int argc, char **argv) {
> libusb_context *context;
> libusb_device_handle *handle;
> libusb_device *device;
> struct libusb_device_descriptor desc;
> unsigned char buffer[256];
> int fd;
> assert((argc > 1) && (sscanf(argv[1], "%d", &fd) == 1));
> assert(!libusb_init(&context));
> assert(!libusb_wrap_sys_device(context, (intptr_t) fd, &handle));
> device = libusb_get_device(handle);
> assert(!libusb_get_device_descriptor(device, &desc));
> printf("Vendor ID: %04x\n", desc.idVendor);
> printf("Product ID: %04x\n", desc.idProduct);
> assert(libusb_get_string_descriptor_ascii(handle, desc.iManufacturer, buffer, 256) >= 0);
> printf("Manufacturer: %s\n", buffer);
> assert(libusb_get_string_descriptor_ascii(handle, desc.iProduct, buffer, 256) >= 0);
> printf("Product: %s\n", buffer);
> assert(libusb_get_string_descriptor_ascii(handle, desc.iSerialNumber, buffer, 256) >= 0);
> printf("Serial No: %s\n", buffer);
> libusb_exit(context);
> }
> __EOF__
$ gcc usbtest.c -lusb-1.0 -o usbtest
$ termux-usb -e ./usbtest /dev/bus/usb/001/004
Vendor ID: 13fe
Product ID: 3600
Manufacturer:
Product: USB DISK 2.0
Serial No: 07AC10081C16381AてことでTermuxからlibusbが使えるようになったようです.
ちなみに,lsusbを実行するとこんな感じです.rootedな端末だと使えるんでしょうけど.
$ lsusb lsusb: /sys/bus/usb/devices: Permission denied $ tsudo lsusb /data/data/com.termux/files/usr/bin/tsu: 146: exec: : Permission denied
$ dpkg-query -W termux-api libusb clang
clang 8.0.1-4
libusb 1.0.23-rc1-1
termux-api 0.47
$ adb shell dumpsys package com.termux.api | grep -E 'versionCode|versionName'
versionCode=38 minSdk=21 targetSdk=28
versionName=0.38
$ adb shell dumpsys package com.termux | grep -E 'versionCode|versionName'
versionCode=75 minSdk=21 targetSdk=28
versionName=0.75
$ getprop ro.bootimage.build.fingerprint
essential/mata/mata:10/QP1A.190711.122/420:user/release-keys
$ getprop ro.build.version.security_patch
2019-09-05
$ getprop ro.product.cpu.abilist
arm64-v8a,armeabi-v7a,armeabi