Android Application Accessing Hardware Resources
This page is using the default release RELEASE_O8.1.0_1.3.0_8M_DART-MX8M.
To view this page for a specific Variscite SoM and software release, please follow these steps:
- Visit variwiki.com
- Select your SoM
- Select the software release
Android Application Access
By default Android Application can't access the hardware directly as per design. All the hardware access either have to be via Android services or via the HAL layers.
However there are ways to access the hardware like GPIOs / UART/ SPI / I2C/CAN However if customer still want to access you can do so by making Selinux in permissive mode or modify the selinux policies a) and make your application system app. https://devarea.com/aosp-creating-a-systemapplication/#.XxaL2ShKiUk
UART
Project you can take as reference: https://github.com/chzhong/serial-android
SPI
Project you can take as reference: https://github.com/rrandyzh/android-jni-spi
GPIO
Project you can take as reference: https://github.com/synportack24/GPIO
I2C
https://github.com/synportack24/GPIO/blob/master/app/src/main/jni/i2c_fragment.c
CAN
https://github.com/entropia/libsocket-can-java
Please refer to README.md for making an application.
Tips/Questions/More Details
- You can either use the setenforce 0 or have your own sepolicies written, for that refer to SeLinux
- For more questions / details register a ticket at Variscite Customer Portal
to get high-quality specific details or engineering support for Variscite products