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 |
---|---|---|
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 |
---|---|---|
pm.autoinstall | 1 | Installs and start automatically without user-dialog (ota func does not ask) |
SystemUI Extension
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 |
---|---|
server_protocol=https | server protocol http https file (file: / / /sdcard/ota) is also polled |
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 |
---|---|---|
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:
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