Android Application Accessing Hardware Resources: Difference between revisions

From Variscite Wiki
No edit summary
Line 6: Line 6:
==Android Application Access==
==Android Application Access==


By default Android Application can't access the hardware directly as per design.  
By default Android Application can't access the hardware directly as per design. <br>
All the hardware access either have to be via Android services or via the HAL layers.  
All the hardware access either have to be via Android services or via the HAL layers. <br>


However there are ways to access the hardware like  GPIOs / UART/ SPI / I2C/CAN
There are multiple ways to access the hardware like  GPIOs / UART/ SPI / I2C/CAN <br>
However if customer still want to access you can do so by making Selinux in permissive mode or modify the
However, if you still want to access you can do so by making Selinux in permissive mode or modifying the
selinux policies
SELinux policies and make your application system app.
a) and make your application system app.
https://devarea.com/aosp-creating-a-systemapplication/#.XxaL2ShKiUk
https://devarea.com/aosp-creating-a-systemapplication/#.XxaL2ShKiUk


Select the interface you are trying to access via Application and clone projects in the Android Studio <br>


====UART====
====UART====
Project you can take as reference:
The project you can take as a reference:
https://github.com/chzhong/serial-android
https://github.com/chzhong/serial-android


====SPI====
====SPI====
Project you can take as reference:
The project you can take as a reference:
https://github.com/rrandyzh/android-jni-spi
https://github.com/rrandyzh/android-jni-spi


====GPIO====
====GPIO====
Project you can take as reference:
The project you can take as a reference:
https://github.com/synportack24/GPIO
https://github.com/synportack24/GPIO


====I2C====
====I2C====
 
The project you can take as a reference:
https://github.com/synportack24/GPIO/blob/master/app/src/main/jni/i2c_fragment.c
https://github.com/synportack24/GPIO/blob/master/app/src/main/jni/i2c_fragment.c


====CAN====
====CAN====
The project you can take as a reference:
https://github.com/entropia/libsocket-can-java <br>
https://github.com/entropia/libsocket-can-java <br>
Please refer to README.md for making an application. <br>
Please refer to README.md for making an application. <br>

Revision as of 19:49, 12 September 2023

Warning: This page is designed to be used with a 'release' URL parameter.

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:

  1. Visit variwiki.com
  2. Select your SoM
  3. Select the software release
DART-MX8M Android Oreo Accessing Hardware via Android Application

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.

There are multiple ways to access the hardware like GPIOs / UART/ SPI / I2C/CAN
However, if you still want to access you can do so by making Selinux in permissive mode or modifying the SELinux policies and make your application system app. https://devarea.com/aosp-creating-a-systemapplication/#.XxaL2ShKiUk

Select the interface you are trying to access via Application and clone projects in the Android Studio

UART

The project you can take as a reference: https://github.com/chzhong/serial-android

SPI

The project you can take as a reference: https://github.com/rrandyzh/android-jni-spi

GPIO

The project you can take as a reference: https://github.com/synportack24/GPIO

I2C

The project you can take as a reference: https://github.com/synportack24/GPIO/blob/master/app/src/main/jni/i2c_fragment.c

CAN

The project you can take as a reference: 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