Difference between revisions of "Android"

From sigrok
Jump to navigation Jump to search
(Drop obsolete / unavailable x86 APK reference.)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Building from source ==
This page describes how you can use sigrok on Android devices.


=== Current status ===
== Screenshots ==


You can start the sigrok application on your android phone using a terminal (ex: adb). You don't need root access.
[[PulseView]] running on a 7" ARM Android tablet (800x400):


It's strongly suggested to use at least android 4.0.3.
<gallery>
File:Pulseview android chronovu la8 i2c.png|<small>[[ChronoVu LA8]], I²C</small>
File:Pulseview android usbeesx uart.png|<small>[[CWAV USBee SX]], UART</small>
File:Pulseview android ds1052e.png|<small>[[Rigol DS1052E]]</small>
</gallery>


You cannot integrate sigrok in a android application yet. (WIP)
== Nightly APK builds ==


You don't have a nice UI. (WIP)
You can download and install the experimental [[PulseView]] nightly build APK:


=== Binary ===
* [http://sigrok.org/jenkins/job/sigrok-cross-android/platform=cross-arm-linux-androideabi/lastSuccessfulBuild/artifact/PulseView-NIGHTLY.apk PulseView-NIGHTLY.apk (ARM)]


You can download a pre-compiled test version on [https://www.dropbox.com/sh/ndnwwct2ahl58cr/Awmm2vrTkX]
The APK ships [[PulseView]] for Android including all required libraries, protocol decoders, and so on.


You are welcome to give feedback to martling on the IRC channel or gabriel.klein@nuage.ch.
=== Firmware files ===


=== Issues ===
In order for [[libsigrok]]/[[PulseView]] to be able to find [[Firmware|firmware files]] for certain devices, you have to copy them to the following location:


* I need to "ln libftdi.so libftdi.so.1". It's an issue as you need to be root to do that. You cannot have libs that don't follow the libXXX.so pattern.
'''/sdcard/sigrok-firmware'''


* I need to be root to be able to open the USB port. Solution: Find a way to "hack" or rebuild the libs to be able to inject the USB fs from the java/android layer.
Please check [[libsigrok]]'s [http://sigrok.org/gitweb/?p=libsigrok.git;a=blob;f=README.devices README.devices] file or the respective wiki page to find out whether your device needs firmware files.


* I need to store the firmware somewhere.
=== Issues ===


Please check the [http://sigrok.org/bugzilla/buglist.cgi?list_id=2259&query_format=advanced&resolution=---&op_sys=Android list of known Android related issues]. If you have specific issues which are not listed yet, please [http://sigrok.org/bugzilla/enter_bug.cgi open a bug report] and attach the relevant information, e.g. which device you used, which architecture (ARM/x86/MIPS/etc), the relevant parts of the adb log, and so on.


=== Initial setup ===
== Building from source ==


First build the Linux version. You need some extra libraries that are not described here.
You can also build various sigrok components from source. The nightly APK (see above) is built using the [http://sigrok.org/gitweb/?p=sigrok-util.git;a=blob;f=cross-compile/android/sigrok-cross-android sigrok-cross-android] script from our [http://sigrok.org/gitweb/?p=sigrok-util.git;a=tree;f=cross-compile/android sigrok-util repository]. You can use that script to build your own APK locally (and/or modify it if you want).


http://sigrok.org/wiki/Linux
$ '''git clone git://sigrok.org/sigrok-util'''
$ '''cd sigrok-util/cross-compile/android'''


The following invocation will install the required Android NDK, SDK, and toolchains into '''$HOME/android''' (per default). Please check the [http://sigrok.org/gitweb/?p=sigrok-util.git;a=blob;f=cross-compile/android/README README] and modify the [http://sigrok.org/gitweb/?p=sigrok-util.git;a=blob;f=cross-compile/android/sigrok-cross-android sigrok-cross-android] script to your needs.


Download the latest [http://developer.android.com/tools/sdk/ndk/index.html Android NDK] and extract it, e.g. in '''$HOME/android'''.
$ '''./sigrok-cross-android prepare'''


$ '''cd $HOME'''
Then, in order to build the APK, you can run:
$ '''mkdir android'''
$ '''cd android'''
$ '''wget http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86.tar.bz2'''
$ '''or wget http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2''' (If you have a 64 bits version of Linux)
$ '''tar xfvj android-ndk-r9d-linux-x86.tar.bz2'''
$ '''cd android-ndk-r9d'''


Now, create a toolchain installation that can be used for cross-compiling for Android (adapt '''--platform''' and '''--arch''' as needed):
  $ '''./sigrok-cross-android'''
 
  $ '''./build/tools/make-standalone-toolchain.sh --platform=''android-15'' --install-dir=$HOME/android/android-arm-toolchain --arch=''arm'''''
 
You now have a working toolchain and build environment in '''$HOME/android/android-arm-toolchain'''.
 
You may need to install additional packages: libtool, ...


=== Cross-compiling ===
The file '''build/pulseview/android/bin/PulseView-debug.apk''' is the APK that you can install on your Android device.
 
$ '''git clone git://sigrok.org/sigrok-util'''
$ '''cd sigrok-util/cross-compile/android'''
$ '''./sigrok-cross-android'''


Please check the '''README''' and edit the '''sigrok-cross-android''' as needed.
== Manual testing ==


=== Hardware ===
Create a temporary folder where you can store and execute files on your Android device.


You may be interested to buy a [http://www.dx.com/p/micro-usb-on-the-go-host-otg-adapter-pair-50774?Utm_rid=28739841&Utm_source=affiliate Micro USB On-The-Go] (delivery is 4-8 weeks.)
$ '''adb shell'''
$ '''mkdir /data/local/tmp/sigrok'''
$ '''exit'''


=== Testing ===
Copy libraries to your device:


Create a temporary folder where you can store and execute files on your android phone.
$ '''cd ~/sr_android/lib'''
$ '''ls *.so* | while read l; do adb push $l /data/local/tmp/sigrok; done'''


$ adb shell
Copy '''sigrok-cli''' to the device:
$ mkdir /data/local/tmp/sigrok/
$ exit


Copy libraries on your phone
  $ '''cd ~/sr_android/bin'''
  $ cd ~/sr_android/lib/
  $ '''adb push sigrok-cli /data/local/tmp/sigrok'''
  $ ls *.so* | while read l; do adb push $l  /data/local/tmp/sigrok/; done


Copy sigrok-cli to the phone
Test if '''sigrok-cli''' is working as expected:
$ cd ~/sr_android/bin/
$ adb push sigrok-cli /data/local/tmp/sigrok/


Test is sigrok cli is working as expected
  $ '''adb shell'''
  $ adb shell
  $ '''cd /data/local/tmp/sigrok'''
  $ cd /data/local/tmp/sigrok
  $ '''export LD_LIBRARY_PATH=/data/local/tmp/sigrok'''
  $ export LD_LIBRARY_PATH=/data/local/tmp/sigrok  
  $ '''./sigrok-cli --scan'''
  $ ./sigrok-cli --scan

Latest revision as of 13:50, 2 September 2018

This page describes how you can use sigrok on Android devices.

Screenshots

PulseView running on a 7" ARM Android tablet (800x400):

Nightly APK builds

You can download and install the experimental PulseView nightly build APK:

The APK ships PulseView for Android including all required libraries, protocol decoders, and so on.

Firmware files

In order for libsigrok/PulseView to be able to find firmware files for certain devices, you have to copy them to the following location:

/sdcard/sigrok-firmware

Please check libsigrok's README.devices file or the respective wiki page to find out whether your device needs firmware files.

Issues

Please check the list of known Android related issues. If you have specific issues which are not listed yet, please open a bug report and attach the relevant information, e.g. which device you used, which architecture (ARM/x86/MIPS/etc), the relevant parts of the adb log, and so on.

Building from source

You can also build various sigrok components from source. The nightly APK (see above) is built using the sigrok-cross-android script from our sigrok-util repository. You can use that script to build your own APK locally (and/or modify it if you want).

$ git clone git://sigrok.org/sigrok-util
$ cd sigrok-util/cross-compile/android

The following invocation will install the required Android NDK, SDK, and toolchains into $HOME/android (per default). Please check the README and modify the sigrok-cross-android script to your needs.

$ ./sigrok-cross-android prepare

Then, in order to build the APK, you can run:

$ ./sigrok-cross-android

The file build/pulseview/android/bin/PulseView-debug.apk is the APK that you can install on your Android device.

Manual testing

Create a temporary folder where you can store and execute files on your Android device.

$ adb shell
$ mkdir /data/local/tmp/sigrok
$ exit

Copy libraries to your device:

$ cd ~/sr_android/lib
$ ls *.so* | while read l; do adb push $l /data/local/tmp/sigrok; done

Copy sigrok-cli to the device:

$ cd ~/sr_android/bin
$ adb push sigrok-cli /data/local/tmp/sigrok

Test if sigrok-cli is working as expected:

$ adb shell
$ cd /data/local/tmp/sigrok
$ export LD_LIBRARY_PATH=/data/local/tmp/sigrok
$ ./sigrok-cli --scan