Android9 Keith & Koep Specials

OEM Folder

The oem folder comes with files making customer configurations possible. During runtime this folder is mounted as read only. The script:

remount_oem.sh

remounts this folder as read-write. The customer can edit after remount_oem.sh. It can be set to ro again by issuing this command:

mount -o remount,ro /dev/block/by-name/oem

The oem Partition contains the following Configuration Files:

device-tree: kuk-trizeps8mini.dtb. The dtb folder contains devtrees of keith&koeps boards and panels.
build.prop file: overwrites the builtin build.prop
init.oem.rc started from the init.rc as root during startup
media/bootanimation.zip: as a custom boot animation

Scripts

When Boot is completed the system calls /oem/init.oem.rc with root permissions if this script exists.

System Properties

This feature is Planned
The system reads during boot „/oem/build.prop“ as the last prop file. The customer can place his special props here. Today system properties can be set during boot with the /oem/init.oem.rc script.

Boot Animation

The customer can install his special boot animation as media/bootanimation.zip this file will overwrite the standard android9 booting sequence

Vold Volume Daemon mounting external Drives/Volumes

Vold is starting actions on Drive Mount events:

Property

Default

Description

Property

Default

Description

vold.MountShell

/oem/usb_mount.sh

Shell to be executed by vold on external drive mount. Can set properties below (*)

vold.ShellOnUsb

usbinstall.sh

Shell to be executed after mount. e.g. usb install script (exec. as system) (*)

vold.UsbCopyFolder

ota

vold copies folder (here) ota to vold.UsbCopyTo path (only relative path)

vold.UsbCopyTo

/sdcard

dest folder for vold autocopy func. Sample copies usb folder ota to /sdcard

vold.ActivityOnUsbStick

com.fsl.android.ota/.OtaAppActivity

start this Activity after shell commands return and copy ready

(*) Note if Path does not start with„/“ it is relative to mount path

Package Manager Extension

Property

Default

Description

Property

Default

Description

pm.autoinstall

1

Installs and start automatically without user-dialog (ota func does not ask)

SystemUI Extension

Property

Default

Description

Property

Default

Description

KuK_DisableStatusBarTouch

0

If 1 do not pass touch events to status bar (dropdown menu is disabled)

qemu.hw.mainkeys

0

If 1 do not show Navigation Bar

DisplayDefaultRotation

0

Set Default Display Orientation 0,90,180,270

OTA Updates

The System App FSLOta.apk parses the /oem/etc/ota.conf file to get the online information for the update process.
On the first pass the update program checks for an OS Update. First the remote build.prop file is loaded and compared to the system/build.prop. If the remote build.prop refers to a newer build release, the system loads payload_properies.txt which describes the encryption keys and hashes belonging to the payload.bin file. If the Update file is younger than the running OS, the ota app loads and installs the new OS when the property ota.autoinstall is set to 1, otherwise the GUI asks for an update. The second pass the program downloads the file, set by customer_apk_version reading a package version which might be updated. If the file refers to a newer version compared to the version reported by the package manager for the package referred by customer_package , the apk file customer_apk is downloaded and installed.

The OTA is first looking for online access, followed by a scan of the local /sdcard/ota folder. The customer can use the vold extensions to copy ota files to the /sdcard/ota folder.

The FSLOta Programm can be triggered by

/system/bin/am start -n com.fsl.android.ota/.OtaAppActivity

The OTA Configuration
ota.conf

entry

Description

entry

Description

server_protocol=https

server protocol http https file (file: / / /sdcard/ota) is also polled

server=support.keith-koep.com.

domain addr (not needed for „file“)

port=443

e.g. 443 for https or 80 for http

ota_folder_suffix=service/lib/exe/fetch.php/service/linux/android

path for url. Note: OtaApp adds „_$OS-Version/„ (for Android9: „_9/„)

customer_apk=test.apk

apk filename

customer_package=com.fsl.android.ota

package name (used by package manager)

customer_apk_version=test.apk.version.txt

file containing revision of apk file. Dowload only if newer than installed version

Here OTA looks for updates @: https://support.keith-koep.com/service/lib/exe/fetch.php/service/linux/android_9/

The /system/build.prop file contains the build information of the current OS.

Property

Default

Description

Property

Default

Description

ota.autoinstall

1

if „1“ install without user-action (e.g. pressing buttons etc.)

Settings

Settings can be done via System-Settings APP or Android APIs. But there are also possibilities to do it via command line interface:

Android via Commandline

FSL Ethernet Application

The Ethernet activity (package com.fsl.ethernet) generates a configuration file: /data/misc/ethernet/ethernet.xml When the activitry is started the xml will be copied to the local app store: /data/data/com.fsl.ethernet/shared_prefs/ethernet.xml then the activity resets the ethernet interface with the configuration provided by the xml file.

When the systemproperty is set: CustomerConfigsEthernet=true, no configuration dialog will be shown by the ethernet settings app. So the customer can write a configuration file: /data/misc/ethernet/ethernet.xml and then start the com.fsl.ethernet activity to configure the interface with the provided xml configuration.

/data/misc/ethernet/ethernet.xml:

manual IP config:

aufo IP config:

For more info you can set the params by the config dialog and watch the resulting content in /data/misc/ethernet/ethernet.xml.
Note: set property first: setprop CustomerConfigsEthernet false