Binary Runtime Environment for Wireless

Last updated
Logo of Binary Runtime Environment for Wireless Qualcomm-BREW.svg
Logo of Binary Runtime Environment for Wireless

Binary Runtime Environment for Wireless (BREW, also known as Brew MP or Qualcomm BREW) is an obsolete application development platform created by Qualcomm, originally for code division multiple access (CDMA) mobile phones, featuring third-party applications such as mobile games. It was offered in some feature phones (mostly with specifications similar to those of mid to high-end mobile phones) as well as smartphones.

Contents

Heavily branded BREW app manager of UScellular BrandedBREW.jpg
Heavily branded BREW app manager of UScellular

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 (SDK). [1] 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 (API) that enables making software and applications in C, C++, Java, and was supported (platform) by an application-specific integrated circuit (ASIC). It has a memory footprint of about 15,900 KB (15.9 MB). From versions 1.x to 2.x (before 2004), 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 (Qualcomm's own RTOS), while Brew MP used Brew RTOS (another RTOS for advanced feature phones). Rather than using an interpreter-based code, BREW also relied on its own mobile hardware.

Version history

BREW 1.0 / 1.1 (2001–2003)

BREW 1.0 - 1.1 'Mobile Shop' App Manager (2001-2003) BREW 1.0 - 1.1 (Image 2).gif
BREW 1.0 - 1.1 'Mobile Shop' App Manager (2001–2003)

Debuted in 2001, it was the first actual version of BREW. Originally made for the Kyocera QCP-3035 (which was the earliest BREW-enabled phone commercially available) and Sharp Z-800. It made use of personal digital assistant-level features (usually for some applications and the ability to run BREW applications). 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 (the ability to play video and audio files, as well as support for 3GPP multimedia formats), 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)

BREW 3.0.1 - 3.1.2 App Manager (2004-2009) (e.g. LG VX3400, Samsung SCH-A630, LG VX8600 Chocolate Flip, and some CDMA feature phones. Including most BREW SDKs BREW 3.0.1 - 3.1.2.gif
BREW 3.0.1 - 3.1.2 App Manager (2004–2009) (e.g. LG VX3400, Samsung SCH-A630, LG VX8600 Chocolate Flip, and some CDMA feature phones. Including most BREW SDKs

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 (which also supports JSR 184 for Java ME games). Hardware acceleration is also natively supported via OpenGL ES 1.0 (if a 3D acceleration chip is available).

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 (such as the LG enV Touch and the LG Versa). 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 MP 1.0.1 - 1.0.4 App Manager (2009-2015) (e.g. Pantech Verse, Samsung SCH-R270 Chrono 2, and few CDMA feature phones) BREW MP 1.0.1 - 1.0.4.gif
BREW MP 1.0.1 - 1.0.4 App Manager (2009–2015) (e.g. Pantech Verse, Samsung SCH-R270 Chrono 2, and few CDMA feature phones)

Brew 5.0 was released in 2009 with several new features (including SVG images) 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 (ESN) and a Mobile Equipment Identifier (MEID), 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 (USB) 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. [2]

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.

Differences between Java ME and BREW

Currently, most developers choose to support both Java ME and BREW, or only Java ME.[ citation needed ] Java ME may offer a lower cost to the market because most carriers allow non-certified Java ME applications to run on their phones. Java ME phones have a larger market share than BREW-enabled handsets. Java ME is widely used in Europe, while BREW is primarily used in the U.S. and Japan.[ citation needed ] One of the initial advantages of BREW was that Verizon made it easy to purchase applications from the phone, while most Java ME carriers did not. However, most carriers of Java ME phones now offer easy-to-access purchasing portals.

Owing to its different APIs, Java ME relies on Java's virtual machine (interpreter-based code), which is technically slower than BREW, which uses native C/C++ plus and direct hardware access (especially for games). [3] Java ME has limited subset of APIs (both for applications and games). However, 3rd-party APIs and implementations (such as MascotCapsule by HI CORPORATION. (3D rendering API) and DoJa/Star by NTT Docomo) are available, but not popular and successful outside Japan (particularly device adoption). BREW (on the other hand), relies on its own APIs and direct hardware access.

Performance for Java ME applications and games are slower than BREW. For 3D games, Java ME uses JSR 184 (M3G), which 3D games that are developed on Java ME are slower (which results in 10 frames per second on some/most handsets) and have limited graphics, while BREW uses either software rendering (if the BREW handset does not have a 3D acceleration chip) or OpenGL ES (which it can take advantage of its performance). [4]

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_(4-Digit Number)" 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.

Some/few handset manufacturers do not allow to integrate 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 produce BREW applications by eliminating the need to develop two versions of the same application in both Java and C/C++.

System failure

System failure in BREW is caused by the components are stopped working properly, a file required for a BREW application is missing, application crash, or some other errors. It creates the "$SYS.EXCEPT_XXXX" file inside the "except" folder on the root of directory. BREW's system failure has 2 variants, the component error and the reboot of death.

Component error (example.c XXXXX)

BREW 2.0.2 component error on the Samsung SCH-S399 SCH-S399 BREW 2.0.2 Component Error.jpg
BREW 2.0.2 component error on the Samsung SCH-S399
$SYS.EXCEPT_0002 affected by the component error in Notepad BREW Component Error in Notepad.png
$SYS.EXCEPT_0002 affected by the component error in Notepad

Component error is an error that will display a black, white, or blue screen with an error text for about 5 seconds if a component stopped working properly, then the phone will reboot by itself. This error may vary depending on your activity, for example:

The probability of this variant to occur is very rare, as a reboot of death is more common. Here's an example of these activities to trigger this variant:

Reboot of death

$SYS.EXCEPT_0003 affected by the reboot of death in Notepad has some random characters. BREW Unknown Error in Notepad.png
$SYS.EXCEPT_0003 affected by the reboot of death in Notepad has some random characters.

A reboot of death is an error that will reboot the phone by itself instead of displaying a black, white, or blue screen with text. The rarity of this variant to occur is much more common. Here's an example of these activities to trigger this variant:

Device usage and carrier availability

BREW 3.1.4 - 4.0.2 App Manager (2005-2012) (e.g. Zeebo, Samsung SCH-R351 Freeform, LG Voyager VX10000, and some CDMA feature phones. Including BREW SDKs) BREW 3.1.5 - 4.0.2.gif
BREW 3.1.4 - 4.0.2 App Manager (2005–2012) (e.g. Zeebo, Samsung SCH-R351 Freeform, LG Voyager VX10000, and some CDMA feature phones. Including BREW SDKs)

Qualcomm BREW is used by some mobile phone manufacturers and mobile networks, however, most often the end-user does not know this since mobile phones running BREW most often lack any Qualcomm BREW branding and BREW runs in the background with the custom "skins" of the mobile phone manufacturer or operator on-top. Qualcomm BREW is used by Sprint Nextel, metroPCS, U.S. Cellular, Verizon, Syringa Wireless, Cricket Wireless, and AT&T (in the HTC Freestyle) in the US, KDDI in Japan, KT and SK Telecom in South Korea, China Telecom in China, MOVILNET and BellSouth Chile in Latin America, Sistema Shyam (now MTS) in India, and by the 3 network in much of Europe, the UK and Australia on many mobile phones produced especially for their network.

Because BREW is only offered to mobile networks that operates in CDMA, other countries (with the exception of parts of Europe, the UK, and Australia via the 3 network, India, Japan and China) do not have BREW, because they do not have CDMA networks.

Manufacturers such as Huawei, INQ Mobile, Amoi, LG, Samsung Mobile, ZTE, and HTC amongst others use Qualcomm BREW in some of their mobile phones and it is featured in 3 UK phones such as the 3 Skypephone, INQ1, ZTE Z431 and Huawei u7510 (3 Touch). Tectoy's Zeebo is the only game console to use BREW. Motorola's own T720 as well as the RAZR V3m also use Qualcomm BREW.

See also

Related Research Articles

Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices. Java ME was formerly known as Java 2 Platform, Micro Edition or J2ME.

The Telephony Application Programming Interface (TAPI) is a Microsoft Windows API, which provides computer telephony integration and enables PCs running Microsoft Windows to use telephone services. Different versions of TAPI are available on different versions of Windows. TAPI allows applications to control telephony functions between a computer and telephone network for data, fax, and voice calls. It includes basic functions, such as dialing, answering, and hanging up a call. It also supports supplementary functions, such as hold, transfer, conference, and call park found in PBX, ISDN, and other telephone systems.

Mobile Information Device Profile (MIDP) is a specification published for the use of Java on embedded devices such as mobile phones and PDAs. MIDP is part of the Java Platform, Micro Edition framework and sits on top of Connected Limited Device Configuration (CLDC), a set of lower level programming interfaces. MIDP was developed under the Java Community Process. The first MIDP devices were launched in April 2001.

The Connected Limited Device Configuration (CLDC) is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CLDC is combined with one or more profiles to give developers a platform for building applications on embedded devices with very limited resources such as pagers and mobile phones. The CLDC was developed under the Java Community Process as JSR 30 and JSR 139.

<span class="mw-page-title-main">OMAP</span> Texas Instruments image/video processors

OMAP is a family of image/video processors that was developed by Texas Instruments. They are proprietary system on chips (SoCs) for portable and mobile multimedia applications. OMAP devices generally include a general-purpose ARM architecture processor core plus one or more specialized co-processors. Earlier OMAP variants commonly featured a variant of the Texas Instruments TMS320 series digital signal processor.

<span class="mw-page-title-main">Adobe Flash Lite</span> Lightweight version of Adobe Flash Player

Adobe Flash Lite is a discontinued lightweight version of Adobe Flash Player, a software application published by Adobe Systems for viewing Flash content. Flash Lite operates on devices that Flash Player cannot, such as mobile phones and other portable electronic devices like Wii, Chumby and Iriver.

<span class="mw-page-title-main">Wi-Fi calling</span> Protocol that extends mobile voice, data and multimedia applications over IP networks

Wi-Fi calling, also called VoWiFi, refers to mobile phone voice calls and data that are made over IP networks using Wi-Fi, instead of the cell towers provided by cellular networks. Using this feature, compatible handsets are able to route regular cellular calls through a wireless LAN (Wi-Fi) network with broadband Internet, while seamlessly change connections between the two where necessary. This feature makes use of the Generic Access Network (GAN) protocol, also known as Unlicensed Mobile Access (UMA).

WURFL is a set of proprietary application programming interfaces (APIs) and an XML configuration file which contains information about device capabilities and features for a variety of mobile devices, focused on mobile device detection. Until version 2.2, WURFL was released under an "open source / public domain" license. Prior to version 2.2, device information was contributed by developers around the world and the WURFL was updated frequently, reflecting new wireless devices coming on the market. In June 2011, the founder of the WURFL project, Luca Passani, and Steve Kamerman, the author of Tera-WURFL, a popular PHP WURFL API, formed ScientiaMobile, Inc to provide commercial mobile device detection support and services using WURFL. As of August 30, 2011, the ScientiaMobile WURFL APIs are licensed under a dual-license model, using the AGPL license for non-commercial use and a proprietary commercial license. The current version of the WURFL database itself is no longer open source.

Motorola Rizr is a series of slide mobile phones from Motorola, and is one of the series in the 4LTR line. The first model was released in late 2006. It is a sliding phone, where the numeric keys are hidden beneath the screen of the phone when closed.

Content adaptation is the action of transforming content to adapt to device capabilities. Content adaptation is usually related to mobile devices, which require special handling because of their limited computational power, small screen size, and constrained keyboard functionality.

<span class="mw-page-title-main">Wireless Application Protocol</span> Deprecated technical standard for accessing information over a mobile wireless network

Wireless Application Protocol (WAP) is a now obsolete technical standard for accessing information over a mobile cellular network. Introduced in 1999, WAP allowed at launch users with compatible mobile devices to browse content such as news, weather and sports scores provided by mobile network operators, specially designed for the limited capabilities of a mobile device. The Japanese i-mode system offered another major competing wireless data standard.

The Sony Ericsson Java Platform is a set of profiles describing particular Sony Ericsson Java implementation. It was designed to help developers to focus on a platform rather than on a variety of different product names. Two platform branches exist, supporting Symbian (SJP) and non-Symbian (JP) based phones respectively. The platforms are implemented through an evolutionary approach in order to ensure forwards compatibility between platform versions, which means that all JSRs implemented on one platform are also implemented on all higher platforms. Normally each platform version is used in several phone models. Some platform features are optional, that is, configurable. For example, the Java Bluetooth APIs are only enabled for phones which actually support Bluetooth wireless technology. These interfaces are mostly invisible to the end user, who only has to download a JAR file containing the application to the phone.

<span class="mw-page-title-main">ThunderHawk</span> Web browser

ThunderHawk is a discontinued web browser from Bitstream available for a full range of operating systems in high end and mass-market mobile phones and personal digital assistants. It is basically meant for mobile operators and original equipment manufacturers and not meant to download for normal users.

On-Device Portals (ODPs) allow mobile phone users to easily browse, purchase and use mobile content and services. An ODP platform enables operators to provide a consistent and branded on-device experience across their broadening portfolio of services and typically provides on-device catalogs of content for purchase, deep links to Wireless Application Portals, customer care functionality, and rich media services such as full track music, TV and video.

Novarra was a mobile internet software company founded in 2000 and based in Itasca, Illinois, United States. It created web-based services such as web internet access, portals, videos, widgets and advertising for mobile devices. Novarra provided access to the internet and other services through wireless handsets, PDAs and laptops and sold directly to operators, mobile handset manufacturers and internet brand companies. In 2010, Nokia acquired 100% of Novarra's shares.

<span class="mw-page-title-main">Bolt (web browser)</span>

The BOLT Browser was a web browsing system for mobile phones including feature phones and smartphones able to run Java ME applications. The BOLT browser was installed on the phone, and BOLT servers accessed Web pages, processed and compressed them, and delivered them to phones running the browser. The BOLT Browser was offered free of charge to consumers, and by license to mobile network operators and handset manufacturers. BOLT was produced by Bitstream Inc., the company which previously produced ThunderHawk for mobile network operators and handset manufacturers. BOLT was originally introduced into private beta on January 15, 2009 and was made available to the public on February 16, 2009 when the public beta was announced at Mobile World Congress in Barcelona. BOLT supported Java-based handsets with Java MIDP 2 and CLDC 1.0 or higher. BOLT also has specially optimized version for BlackBerry smartphones and worked with Windows Mobile and Palm OS devices that employ a MIDlet manager or Java emulator. BOLT was built using the WebKit rendering engine to display a full Web page layout as found on desktop web browsers.

<span class="mw-page-title-main">Symbian</span> Discontinued mobile operating system

Symbian was a mobile operating system (OS) and computing platform designed for smartphones. It was originally developed as a proprietary software OS for personal digital assistants in 1998 by the Symbian Ltd. consortium. Symbian OS is a descendant of Psion's EPOC, and was released exclusively on ARM processors, although an unreleased x86 port existed. Symbian was used by many major mobile phone brands, like Samsung, Motorola, Sony Ericsson, and above all by Nokia. It was also prevalent in Japan by brands including Fujitsu, Sharp and Mitsubishi. As a pioneer that established the smartphone industry, it was the most popular smartphone OS on a worldwide average until the end of 2010, at a time when smartphones were in limited use, when it was overtaken by iOS and Android. It was notably less popular in North America.

<span class="mw-page-title-main">Android software development</span> Process of writing software for Android operating system

Android software development is the process by which applications are created for devices running the Android operating system. Google states that "Android apps can be written using Kotlin, Java, and C++ languages" using the Android software development kit (SDK), while using other languages is also possible. All non-Java virtual machine (JVM) languages, such as Go, JavaScript, C, C++ or assembly, need the help of JVM language code, that may be supplied by tools, likely with restricted API support. Some programming languages and tools allow cross-platform app support. Third party tools, development environments, and language support have also continued to evolve and expand since the initial SDK was released in 2008. The official Android app distribution mechanism to end users is Google Play; it also allows staged gradual app release, as well as distribution of pre-release app versions to testers.

<span class="mw-page-title-main">Tango (platform)</span> Mobile computer vision platform for Android developed by Google

Tango was an augmented reality computing platform, developed and authored by the Advanced Technology and Projects (ATAP), a skunkworks division of Google. It used computer vision to enable mobile devices, such as smartphones and tablets, to detect their position relative to the world around them without using GPS or other external signals. This allowed application developers to create user experiences that include indoor navigation, 3D mapping, physical space measurement, environmental recognition, augmented reality, and windows into a virtual world.

References

  1. SDK & Tools | Brew MP Developer Archived 2012-12-17 at archive.today . Developer.brewmp.com. Retrieved on 2013-07-21.
  2. Code Signing Certificates for Authentic Document IDs for BREW - Digital Signatures | Symantec Archived February 5, 2009, at the Wayback Machine . Verisign.com. Retrieved on 2013-07-21.
  3. "Choosing between J2ME and BREW for wireless development - TechRepublic". TechRepublic. Retrieved 2017-06-21.
  4. "See the graphical difference between Java and BREW games". Pocket Gamer. Retrieved 2017-06-21.
  5. Steven's Phones (July 14, 2019). "LG VX10 - When the battery is REALLY low". YouTube . Retrieved October 4, 2022.
  6. Steven's Phones (July 14, 2019). "LG VX4400 - When the battery is REALLY low". YouTube . Retrieved October 4, 2022.