Android-Pie User-Manual 20190330

Download as pdf or txt
Download as pdf or txt
You are on page 1of 18

Android Pie User Manual

VER. 1.00
March 30, 2019

Page 1 of 18
REVISION HISTORY
Revision Date Originator Notes
1.00 March 30, 2019 TechNexion First public release

Page 2 of 18
Table of Contents
1. Introduction ................................................................................................................... 4
1.1 About Android Pie ....................................................................................................................... 4
2. Support List of TechNexion Hardware Platform ......................................................... 5
3. Software Configuration ................................................................................................. 6
3-1 Software Revision ...................................................................................................................... 6
3-2 Memory Layout of the Android 9 Image ..................................................................................... 6
3.3 Image Installation ....................................................................................................................... 7
3.4 Serial Debug............................................................................................................................... 7
3.5 Network ...................................................................................................................................... 7
3.6 Expansion Pin Header................................................................................................................ 9
3.7 Termux app............................................................................................................................... 10
3.8 Audio HAT ................................................................................................................................ 12
3.9 Serial Link ................................................................................................................................ 13
3.10 Android Treble ........................................................................................................................ 15
4. Software Development and Upgrade ......................................................................... 17
5. Q & A ............................................................................................................................ 18

Page 3 of 18
1. Introduction
1.1 About Android Pie
Android Pie (9.0) is the latest Android version in 2018, which improves its user experience and performance. Some of its
customized features as below:

◼ UART serial test app


◼ Termux app
◼ libgpiod CLI(command-line) tool
◼ i2c-tools CLI tool
◼ Fastboot
◼ OTA update
◼ A/B system
◼ Bluetooth-LE
◼ Voice-HAT support

Page 4 of 18
2. Support List of TechNexion Hardware Platform
Android Pie will be supported on below TechNexion platforms:

Initial support
◼ PICO-IMX8M
Future support
◼ PICO-IMX8MM
◼ EDM-IMX8M
◼ PICO-IMX6
◼ PICO-IMX7

Each hardware has its unique functions and features, please refer to the data sheet for more details if needed. All product
information can be found on TechNexion official website.

Page 5 of 18
3. Software Configuration
3-1 Software Revision
Name Revision
u-boot 2018.03-g456ed24
linux kernel 4.14.78-g9d10589

Android 9.0.0-1.0.0_8m-ga

3-2 Memory Layout of the Android 9 Image


For boards using eMMC/SD as boot storage:

Section Description
GPT Partition information
Bootloader u-boot.imx: First stage u-boot image
Partition 1 dtbo_a (backup partition) dtbo.img

Partition 2 dtbo_b dtbo.img


Partition 3 (FAT32) boot.img:
boot_a (backup partition) • kernel image
• recovery mode ramdisk
Partition 4 (FAT32) boot.img:
boot_b • Image: kernel image
• ramdisk.img: recovery mode ramdisk
Partition 5 (EXT4) system.img
system_a (backup partition)
Partition 6 (EXT4) system.img
system_b
Partition 7 For recovery store bootloader message, reserve
misc
Partition 8 For system slide show
metadata
Partition 9 Option to operate unlock\unlock
presistdata
Partition 10 (EXT4) vendor.img
vendor_a (backup partition)
Partition 11 (EXT4) vendor.img
vendor_b
Partition 12 (EXT4) Application data storage for system application, and for internal
userdata media partition, in /mnt/sdcard/dir
Partition 13 (EXT4) For storing the state of lock or unlock
fbmisc
Partition 12 For storing the verify boot's metadata
vbmeta_a (backup partition)
Partition 13 For storing the verify boot's metadata
vbmeta_b

Page 6 of 18
3.3 Image Installation
Use MFGtool to flash Android 9 image to eMMC. This tool can be downloaded from the link.

3.4 Serial Debug


Plug-in a micro USB cable to the connector (b) on the PI baseboard, open any terminal communication application such as
Minicom and Putty. Set 115200 bps as default speed.

(a) (b) PI baseboard

Android Debug Bridge (ADB): plug-in a Type-C USB cable to the connector (a) on the PI baseboard, issue the command
‘adb shell’, then start debugging.

3.5 Network
➢ Ethernet
Android auto runs DHCP daemon when boot. Please make sure to plug-in the cable before booting the device.

➢ WiFi
◼ Station mode
Support both 2.4GHz and 5GHz bands
◼ AP (Access Point) mode
Support 2.4GHz with WPA- PSK security password

Only one networking mode can work at a time. When ethernet mode is on, it will show a failed WiFi connection icon on the
top right corner of the screen. To turn on WiFi station mode, please remove the ethernet cable, the system will
automatically switch to WiFi station mode. Users can also issue below command to disable the ethernet.

# ifconfig eth0 down

Page 7 of 18
Ethernet is necessary to enable AP mode. Ethernet will work as a network node, connecting to Wide Area Network. If the
ethernet cable is unplugged before booting up, it will connect to Local Area Network only.

➢ Bluetooth modes:
◼ Bluetooth Classic mode
◼ Bluetooth LE mode

Page 8 of 18
3.6 Expansion Pin Header
(J8)

(J9)

PI baseboard

PI baseboard provides expansion pin header for users to easily expand the customized I/O devices using GPIO, I2S, I2C,
SPI and PWM low speed interfaces.

Page 9 of 18
3.7 Termux app
Termux is a Linux terminal emulator for Android, which supports apt and opkg package managers. It allows Linux users to
develop Android apps more easily.

However, for security concern (selinux on Android), Termux cannot run on normal user mode. To remove security
limitations, users need to issue below commands:

$ adb shell
$ su
# setenforce 0

Page 10 of 18
Termux is not working when Android selinux is locked.

Termux works when Android selinux is unlocked.

Page 11 of 18
3.8 Audio HAT

(c)

(d)

Audio-HAT

Audio-HAT is designed based on expansion pin header mentioned in Chapter 3.6. It connects to the expansion pin header
directly. Android 9 supports Audio-HAT through sysfs. In the next distribution, it will be supported in android framework.

In the latest distribution, it provides Termux app, which can easily control the functions of Audio-HAT as following:

◼ 16 channel LED array, (d) as above picture

# ls /sys/class/leds/
gpio-led pca995x:blue0 pca995x:blue4 pca995x:green2 pca995x:red1
mmc0:: pca995x:blue1 pca995x:blue5 pca995x:green3 pca995x:red2
mmc1:: pca995x:blue2 pca995x:green0 pca995x:green4 pca995x:red3
mmc2:: pca995x:blue3 pca995x:green1 pca995x:red0 pca995x:red4

echo 0 > /sys/class/leds/pca995x:blue0/brightness # (0% brightness)


echo 125 > /sys/class/leds/pca995x:blue0/brightness # (50% brightness)
echo 255 > /sys/class/leds/pca995x:blue0/brightness # (100% btightness)

◼ Button array, (c) as above picture


Default button configurations as following:
These buttons can be modified through the trigger event on kernel device tree of source code.

Volume Volume Home


Prev Play Next Mute Suspend
Up Down

◼ Speakers
1. Testing
In Android, tinyalsa related tool can easily play the wave file. Please note the speaker only supports <= 16
bits.

# tinyplay test.wav -D 2 -c 2
Playing sample: 2 ch, 48000 hz, 16 bit (you can choose mono mode or stereo mode using -c parameter)

2. Developing
Please add the source code of system command application to downloaded github SDK.

◼ MEMS microphone
1. Testing
Please note the microphone only supports 32 bits.

# tinycap test.wav -D 0 -c 2 -r 48000 -b 32 (you can choose mono mode or stereo mode using -c parameter)

2. Developing
Please add the source code of system command application to downloaded github SDK.
Page 12 of 18
3.9 Serial Link
It supports a 2-wire RS232 port on 40-pin expansion pin header as (J8) in chapter 3.6.
TX: Pin 7
RX: Pin 11

Please open Technexion customized UART test app to do simple tests:

Page 13 of 18
Click “SERIAL PORT SETTING” to config the UART node and baud rate, users can easily to test read, write and loopback
functions.

Page 14 of 18
3.10 Android Treble
◼ ADB
Connect a USB type-C cable from Host PC to hardware board, and issue the commands to debug:

Root permission
$ adb root
Normal permission
$ adb shell

◼ Fastboot
In Android 9, users must use fastboot command to unlock the partition flashing permission before any upgrade
behavior.

Unlock the flashing permission on developer options

In fastboot mode, please issue commands to unlock first before starting to flash new images:

$ sudo fastboot flashing unlock


# boot part upgrade
$ sudo fastboot flash dtbo_a dtbo-imx8mq.img
$ sudo fastboot flash dtbo_b dtbo-imx8mq.img
$ sudo fastboot flash boot_a boot.img
$ sudo fastboot flash boot_b boot.img
# system part upgrade
$ sudo fastboot flash vbmeta_a vbmeta-imxpico_8m.img
$ sudo fastboot flash vbmeta_b vbmeta-imxpico_8m.img
$ sudo fastboot flash system_a system.img
$ sudo fastboot flash system_b system.img
$ sudo fastboot flash vendor_a vendor.img
$ sudo fastboot flash vendor_b vendor.img
$ sudo fastboot reboot

Page 15 of 18
Below features are fully supported, users can develop on our github SDK.
◼ A/B system
◼ OTA upgrade
◼ Treble structure of source code

Page 16 of 18
4. Software Development and Upgrade
Online Github SDK includes the source code and instruction.
https://github.com/technexion-android/cookers/tree/tn-p9.0.0_1.0.0_8m-ga

Page 17 of 18
5. Q & A
1. Why does video player only support portrait mode when using MIPI-DSI LCD panel on landscape mode?

Ans:
It’s due to the bugs in OMX VPU library from chip vendor. Alternatively, TechNexion provides a workaround to change the
parameters on user’s video using ffmpeg tool:

Ubuntu host example


$ ffmpeg -i original_test.mov -vf "transpose=1" mipi_lcd_test.mov
$ ffmpeg -i mipi_lcd_test.mov -c copy -metadata:s:v:0 rotate=90 mipi_lcd_test_out.mov

2. How to remount the system/vendor partition as a writeable partition?

Ans:
Step 1. Unlock the flashing permission such as chapter 3.10 and reboot in fastboot mode.

# reboot bootloader

Step 2. Unlock the device again in fastboot mode on host side.

$ sudo fastboot oem unlock


$ sudo fastboot reboot

Step 3. Disabling the secure function using adb command on host side, then reboot again.

$ adb root
$ adb disable-verity
$ adb reboot

Step 4. Remount the all partitions as writeable partitions, for now, users can create a file to test.

## Host side
$ adb root
$ adb remount
$ adb shell

## Jump to Android side


$ su
# touch /system/test
# touch /vendor/test

Page 18 of 18

You might also like