Binary Runtime Environment for Wireless
Binary Runtime Environment for Wireless is an obsolete application development platform created by Qualcomm, originally for code division multiple access mobile phones, featuring third-party applications such as mobile games. It was offered in some feature phones as well as smartphones. First developed in 1999, as a platform for wireless applications on CDMA-based mobile phones, it debuted in September 2001. As a software platform that can download and run small programs for playing games, sending messages, and sharing photos, the main advantage of Brew MP was that the application developers could easily port their applications among all Brew MP devices by providing a standardized set of application programming interfaces. Software for Brew MP-enabled handsets can be developed in C or C++ using the freely downloadable Brew MP software development kit. The BREW runtime library is part of the wireless device on-chip firmware or operating system to allow programmers to develop applications without needing to code for system interface or understand wireless applications. BREW is described as a pseudo operating system, but not a true mobile operating system. BREW was not a virtual machine such as Java ME, as it runs code natively.
Software
For software developers, Brew MP was a full set of application programming interfaces that enables making software and applications in C, C++, Java, and was supported by an application-specific integrated circuit. It has a memory footprint of about 15,900 KB. From versions 1.x to 2.x, it had a smaller memory footprint of around 60 KB. BREW also features direct hardware access. Versions before Brew MP ran/relied on REX OS, while Brew MP used Brew RTOS. Rather than using an interpreter-based code, BREW also relied on its own mobile hardware.Version history
BREW 1.0 / 1.1 (2001–2003)
Debuted in 2001, it was the first actual version of BREW. Originally made for the Kyocera QCP-3035 and Sharp Z-800. It made use of personal digital assistant-level features. However, it lacks advanced multimedia features and support for Java ME that were available in subsequent versions. It was the only version of BREW to support monochrome screens as support for monochrome screens was removed in BREW 2.0. BREW 1.1 was the first version of Brew to run Java ME applications. It was available in some BREW-enabled phones in 2002 and early 2003.BREW 2.0 / 2.1 (2002–2009)
Released in the mid-2002, it was installed for most of the BREW-enabled phones in late-2002 until late-2009. It includes support for advanced multimedia playbacks, connectivity for EV-DO and Bluetooth support, as well as screen savers, and other improvements. It also supports MIDP 2.0 on BREW 2.1 and it is backward compatible with BREW 1.x applications.It was installed on most feature phones in Indonesia, China, and other countries since 2004 and was supported by a few carriers until 2017.
BREW 3.0 / 3.1 (2004–2012)
Released in mid-2002, it was installed for most of the BREW-enabled phones in late 2004 until early 2012. It was the first version of BREW to have major changes and it has a vast majority of features for mobile phones, such as WiFi connectivity, OpenGL ES 1.0, support for 3G, GPS, QWERTY-based keypads, and support for mobile screens that are higher than 176x220. It is backward compatible with BREW 2.x applications, but not with BREW 1.x applications.It is also the first version of BREW to support 3D graphics rendering, although it only uses software rendering. Hardware acceleration is also natively supported via OpenGL ES 1.0.
It was installed on most feature phones in the United States and in other countries since 2005 and it is still supported by a few carriers.
BREW 4.0.1 - 4.0.2 (2007–2011)
Released in 2007 until 2011, it was only integrated on very few mobile phones. It has only a few improvements and it was later succeeded by Brew MP. It has additional features that are also available in Brew MP, such as accelerometer support and other changes.It is also used for the Zeebo console in Mexico and Brazil.
Brew MP 5.0.1 - 5.0.4 (2009–2021)
Brew 5.0 was released in 2009 with several new features and was backward compatible with BREW 3.x and 4.x. Some legacy APIs were deprecated in this version. This release also marked the move to BREW's own real-time kernel, instead of utilizing Qualcomm's REX OS.The Brew MP developer page was shut down on July 23, 2021, after eight years of inactivity.
BREW application development
For testing applications during the development process, the SDK includes a BREW emulator, or starting with BREW version 1.1 and above, the BREW Simulator. The BREW environment provides for multiple levels of application signatures. One signature authenticates the developer. Another signature verifies that an application has passed True BREW testing and is bestowed through Intertek. The individual telecommunications operators configure the handsets to either enforce or ignore the presence and verification of this second signature. BREW-enabled handsets have a test mode that allows applications to bypass verification of the signature. Qualcomm makes applications that have passed testing available to BREW-enabled wireless network operators. The operators are then able to choose which of these applications to make available to end-users on their catalog.BREW's own signatures are protected by an Electronic Serial Number and a Mobile Equipment Identifier, this means it prevents the unauthorized distribution/sideloading of BREW applications to 3rd-parties rather than carriers. Once the application is downloaded OTA via a BREW-based carrier, the.sig file will automatically generate an electronic serial number to its installed handset.
The BREW emulator, named BREW Simulator, does not emulate handset hardware. Instead, the BREW application is compiled to native code and linked with a compatible BREW runtime library. Because of this, applications cannot be tested for platform bugs related to memory alignment and various firmware-related glitches without a BREW handset operating in test mode.
For testing purposes, BREW applications can be transferred using a Universal Serial Bus or serial cable to any BREW-compatible handset using BREW App Loader from Qualcomm. A BREW application contains several components which, if not present and valid, cause the application to be automatically deleted on reboot. This includes the compiled binary file, a file that describes the application, the features it uses, and permissions requested, a file that contains string and image resources if required, and a file containing the application's digital signature.
BREW applications may be unloaded from a consumer handset to save handset memory space. This is referred to as "Disable/Restore", and is a requirement of the True BREW Test Process. Saved files are kept intact using Disable/Restore, and it is possible to reload the application without paying for it again. In a "Disable" situation, all.bar,.mod, and.sig files are deleted from the handset, while any other files remain in their original place. During the "Restore" operation, the.bar,.mod, and.sig files are downloaded from the carrier's mobile store, and the previously disabled application will have full functionality remaining. The Disable/Restore process is only available to consumer users once the handset's memory is full.
On May 28, 2008, Qualcomm and Adobe announced a partnership to integrate Adobe Flash Lite as a supported user interface on BREW.
Since March 2006, the least expensive digital signature package for developers costs US$400 for 100 application submissions.
Business model implications/availability
Strictly speaking, time to market can take longer with BREW than with Java ME because of Qualcomm BREW's rigorous certification requirements. This certification process may be perceived as an advantage by established software developers because the difficulties associated with testing and development costs create a high cost of entry to developers with low budgets and little time, resulting in less market dilution. Specifically, developers of casual games run less risk of having to compete with freeware workalikes developed and self-published by hobbyists. However, this comes at a cost to the end-user as there is less competition to develop the best solution at the lowest price to the end user.- After an application is written, it takes two weeks per iteration of True BREW testing.
- Next, negotiations with carrier commence.
- Then, the carrier will spend time retesting the application with their own tests on their network.
- Finally, rolling out a new version means starting the process over again.
Differences between Java ME and BREW
Owing to its different APIs, Java ME relies on Java's virtual machine, which is technically slower than BREW, which uses native C/C++ plus and direct hardware access. Java ME has a limited subset of APIs. However, 3rd-party APIs and implementations are available, but not popular and successful outside Japan. BREW, relies on its own APIs and direct hardware access.
Performance for Java ME applications and games is slower than BREW. For 3D games, Java ME uses JSR 184, which 3D games that are developed on Java ME are slower and have limited graphics, while BREW uses either software rendering or OpenGL ES.
Unlike the Java ME, when the BREW application crashes, the phone will cause a reboot due to BREW can't handle and recover while the application crashes, it creates "$SYS.EXCEPT_" into the "except" folder on the root of directory, then the phone will automatically reboot by itself, when the Java ME application crashes under BREW, Java ME will handle correctly and recover them from phone rebooting by itself.
Somehandset manufacturers do not allow the integration of Java ME's virtual machine on a few of their phones.
There are now commercial technologies to fully automate porting from Java ME to BREW. This reduces the entry barrier to producing BREW applications by eliminating the need to develop two versions of the same application in both Java and C/C++.