This software aims to turn your GNU/Linux machine into an Android Accessory.
It initializes any Android device connected via USB as detailed on Android website:
http://source.android.com/tech/accessories/aoap/aoa.html
$ ./linux-adk --help
Linux Accessory Development Kit
usage: ./linux-adk [OPTIONS]
OPTIONS:
-a, --aoa-max-version
AOA maximum version to be used. Default is no maximum version.
-d, --device
USB device product and vendor IDs. Default is "18d1:4e42".
-D, --description
accessory description. Default is "Sample Program".
-m, --manufacturer
manufacturer's name. Default is "Google, Inc.".
-M, --model
model's name. Default is "AccessoryChat".
-n, --vernumber
accessory version number. Default is "1.0".
-N, --no_app
option that allows to connect without an Android App (AOA v2.0 only, for Audio and HID).
-s, --serial
serial numder. Default is "0000000012345678".
-u, --url
accessory url. Default is "https://github.com/gibsson".
-v, --version
Show program version and exit.
-V, --verbose
Sets libusb verbose mode.
-h, --help
Show this help and exit.
Example:
$ ./linux-adk -d 18d1:4ee7 -a 1 -M "DemoKit" -D "Demo ABS2013"
First you need to download the dependencies:
$ sudo apt install libusb-1.0-0-dev build-essential
As of today (alpha v0.4), autotools
have not been configured.
Therefore the build is done manually as follow:
$ make
This software requires the use of libusb
.
For cross-compiling, several environment variables must be set manually:
$ export ARCH=arm
$ export CROSS_COMPILE=<custom_toolchain>
$ export CFLAGS="-I<path_to_libusb_headers> -I<path_to_libasound_headers>"
$ export LDFLAGS="-L<path_to_libusb> -L<path_to_libasound>"
$ make
1) You need install Visual Studio (tested with v2019):
https://visualstudio.microsoft.com/downloads/
2) Download and build libusb
for Windows using this solution:
https://github.com/libusb/libusb/blob/master/msvc/libusb_2019.sln
3) Download and build linux-adk
using this solution:
https://github.com/gibsson/linux-adk/blob/master/msvc/linux-adk.sln
Couple of things to note for linux-adk.exe
to work properly on Windows:
1) First make sure that adb
is not running, otherwise linux-adk
won't be able to get the endpoint.
$ adb kill-server
2) Once the platform switches to Accessory mode, make sure in the Device Manager that the device driver is:
- *Manufacturer*: WinUsb Device
- *Model*: ADB Device
linux-adk is distributed under the term of the General Public License version 2 (GPLv2)
See gpl-2.0.txt for the full license content
v0.4: Add verbose option to enable libusb debug logs; Add Windows support; Switch to AccessoryChat app by default v0.3: Remove Audio hack as not supposed to be (more on https://code.google.com/p/android/issues/detail?id=56549) v0.2: Audio exception when launched in no-app v0.1: Original commit for ABS2013 demo
Gary Bisson bisson.gary@gmail.com