Oracle® Java ME Embedded

Reference Platform Release Notes (STM32429I-EVAL)

Release 8.3

E73092-01

April 2016

Introduction

The Oracle Java ME Embedded release 8.3 software for the STM32429I-EVAL platform is a ready-to-run binary for use with STM32F4 MCU family, not only an ST Micro STM32429I-EVAL board. See the Usage Notes for more details.

The Oracle Java ME Embedded software uses an optimized platform stack for small embedded devices, which includes the Connected Limited Device Configuration (CLDC) HotSpot Implementation (Java Virtual Machine) version 8, the Micro Edition Embedded Profile (MEEP) application environment, the Generic Connection Framework (GCF) API, and enhanced support for various Java Specification Requests (JSRs).

What’s Supported in This Release

The following features are included in the Oracle Java ME Embedded software:

  • ARM CMSIS-RTX

  • CLDC 8 (JSR-360) (full CLDC) including MVM support with just-in-time (JIT) compilation

  • Generic Connection Framework (GCF) 8

    • Datagram (datagram://)

    • TCP/IP client socket (socket://)

    • TCP/IP server socket (socket://)

    • Secure client socket (ssl://)

    • HTTP (http://)

    • The NetworkUtilities class

    • Access Points

    • javax.microedition.pki and other security-related enhancements

  • Java ME Embedded Profile (MEEP) 8:

    • javax.microedition.power

    • javax.microedition.io (IMC, PushRegistry)

    • javax.microedition.midlet

    • javax.microedition.rms

    • javax.microedition.swm

    • javax.microedition.lui

    • javax.microedition.event

  • Device I/O APIs, which provide enhanced device controls and improved input/output (I/O) for small embedded devices:

    • General-purpose input/output (GPIO)

    • Analog-to-digital converter (ADC)

    • Inter-Integrated Circuit (I2C)

    • Serial Peripheral Interface (SPI)

    • Universal Asynchronous Receiver/Transmitter (UART)

    • Watchdog Timer

  • Ongoing support for the following optional packages:

    • JSR 172 - Web Services

    • JSR 177 - Security and Trust Services API (SATSA-CRYPTO package only) and SATSA Extensions excluding Key Store API

    • JSR 280 - XML API for Java ME

    • Support for JSON, Async HTTP, OAuth 2.0

    • Runtime Update API

  • Headless on-device debugging

  • File System on SD card

  • OpenSSL

  • Tooling over:

    • Ethernet

    • USB/Serial

Usage Notes

The Oracle Java ME Embedded software for the reference board platform includes an CLDC implementation with a high-performance Java Virtual Machine that can run IMlets and access input/output ports. This runtime is optimized for the reference board platform.

Getting Started Guide for the Reference Platform (STM32429I-EVAL) describes how to install the Oracle Java ME Embedded distribution on the SD card, how to connect to the board from the development host computer, and how to install, run, and debug IMlets on the board.

Note the following important information before running the Oracle Java ME Embedded software on the STM32429I-EVAL board:

  • Network interfaces and access points are only minimally supported. There is only one network interface (type: "WIRED"; name: "Ethernet_Interface"), and there is no way to create, modify, or delete access points. Doing so will throw an IOException. Also, there is only one system access point (network interface type: "WIRED"; name: "System_ethernet"), which is connected automatically. Any attempt to explicitly connect or disconnect to this access point will throw an IOException.

  • The following GCF protocols are supported on the platform: datagram, TCP/IP client socket, TCP/IP server socket, and HTTP. The following protocol schemes can be used: "datagram://", "socket://" (client and server), "ssl://" (client only), "http://", "https://". The socket timeout option is not supported because of platform limitations.

  • This platform implementation supports HTTPS and TLSv1.2 client cryptographic connections only. The connection options "Protocol" and "CipherSuite" are supported. However, "Certificate" is not supported, as there is no client authentication. The TLSv1.2 protocol supports the following cipher suites:

    • TLS_RSA_EXPORT_WITH_RC4_40_MD5

    • TLS_RSA_WITH_RC4_128_MD5

    • TLS_RSA_WITH_RC4_128_SHA

  • Instances of CommConnection, ModemConnection, any multicasting, and IPv6 addressing is not supported.

  • Only the PowerStateEvent.POWER_STATE_OFF and PowerStateEvent.POWER_STATE_FULL_POWER states are supported in this implementation. Using the PowerManager.setPowerState() method with any other value will throw an ILLEGAL_STATE_TRANSITION_REQUEST exception.

  • The only root directory visible to the IMlet user is /root, which is mapped to the SD card as /java/appdb/root. Therefore, the user's accessible directories are /root/user and /root/tmp.

  • The file system (FS) must be based on FAT (FAT12, FAT16, FAT32).

  • The correct path separator for the file system is the forward slash (/).

  • The maximum number of open files is four (4).

  • Timestamps are constrained by the DOS epoch (Jan 1, 1980 - Dec 31, 2107). In addition, only creation and modification of timestamps are supported.

  • The javax.microedition.cellular package, javax.microedition.key package, and the javax.microedition.media package are not supported.

  • To connect the board to the SDK, additional files for the proxy are needed. These files are available via the SDK Update Center.

  • Math/crypto hardware acceleration is not supported.

Installation and Runtime Security Guidelines

The Oracle Java ME Embedded release 8.3 software installation requires an execution model that ensures certain networked resources available. These required resources might include, but are not limited to, a variety of communication capabilities between the product's installed components.

It is important to note that the product's installation and runtime system is fundamentally a developer system that is not specifically designed to guard against malicious attacks from outside intruders. Given this, the product's architecture can present an insecure operating environment to the installation file system and its runtime environment, during execution. For this reason, it is critically important to observe the precautions outlined in the following security guidelines when installing and running the software.

Note:

The security-related functionality of a final developed application for release into the field is supported by the available components of the Oracle Java ME Embedded software stack incorporated by the developer into the application. The security precautions required by applications in the field are beyond the scope of these recommendations, but must be observed by the application developer.

To maintain optimum network security, the software package can be installed and run in a closed network operating environment; the software system that is not connected directly to the Internet or to a company intranet environment that could introduce unwanted exposure to malicious intrusion. This is the ideal secure operating environment whenever the application under development does not require an Internet connection.

When the application under development requires an Internet connection, you must conform to the guidelines highlighted in Protecting Operating Environment From Malicious Intrusion.

Protecting Operating Environment From Malicious Intrusion

If the operating environment is open to network access, you must observe the following precautions to protect valuable resources from malicious intrusion:

  • Locate the development environment behind a secure firewall that strictly limits unauthorized network access to its file system and services. Limit access privileges to those that are required for development while allowing all the bidirectional local network communications that are necessary for the application's functionality. The firewall configuration must support these requirements to run the software while also addressing them from a security standpoint.

  • Follow the principle of least privilege by assigning the minimum set of system access permissions required for installation and execution of the software.

  • Do not store any sensitive information on the same file system that hosts the installation.

  • Ensure that the operating system patches are up-to-date on host machines in the development environment.

Developer Agent Precautions

The CLI is incorporated in the Developer Agent, which communicates with a device through an unsecured protocol. The Developer Agent is a Java SE application that can be reverse engineered to tamper with or to get information about the communication protocol, which might be used by an untrusted entity to manipulate the device. If you decide to implement the Developer Agent in a product deployment, it is your responsibility to incorporate adequate security measures around the Developer Agent communication channel.

Known Bugs

For generic bugs in this release of the Oracle Java ME SDK that might affect this platform, see Oracle Java ME Software Development Kit Release Notes.

The following are known bugs in this release of the Oracle Java ME Embedded software:

  • An attempt to open an SPI device with an unsupported clock frequency does not throw the InvalidDeviceConfigException. Instead, DeviceManager.open(SPIDeviceConfig cfg), where cfg.getClockFrequency() is not supported, tries to set an “adjusted” clock frequency in the range of MIN-MAX values.

Product Documentation

The following documentation is included with this release of the Oracle Java ME Embedded software. See http://docs.oracle.com/javame/.


Application Title Format

All (this document)

Reference Platform Release Notes (STM32429I-EVAL)

HTML

PDF

Demonstrates how to install, run, and troubleshoot the Oracle Java ME Embedded software on the STM32429I-EVAL platform.

Getting Started Guide for the Reference Platform (STM32429I-EVAL)

PDF

HTML



Oracle® Java ME Embedded Reference Platform Release Notes (STM32429I-EVAL), Release 8.3

E73092-01

Copyright © 2015, 2016, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.