• In progress
  • 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