Binary Runtime Environment for Wireless (Brew MP, Brew, or BREW) is an application development platform created by Qualcomm, originally for code division multiple access (CDMA) mobile phones, featuring third-party applications such as mobile games. It is offered in some feature phones (mostly with the similar specifications of a mid to high-end mobile phones) but not in smartphones. 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 is that the application developers can 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).  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 is not a virtual machine such as Java ME, but runs native code.
For software developers, Brew MP is a full set of application programming interfaces (API) that enables making software and applications in C, C++, Java, and is supported (platform) by an application-specific integrated circuit (ASIC). It has a memory footprint of about 15,900 K (15.9 MB), From Brew 1.x until 2.x (before 2004), it has less memory footprint (around 60kb to a hundred/thousand megabytes). Brew also features direct hardware access. Versions before Brew MP ran/relied on REX OS (Qualcomm's own RTOS), while Brew MP uses Brew RTOS (another RTOS for advanced feature phones). Rather than using an interpreter-based code, Brew also relied on its own mobile hardware.
Debuted in 2001, it was the very first version of Brew. Originally made for the Kyocera QCP-3035 (which is the very first Brew-enabled phone) and Sharp Z-800. It uses some PDA-styled 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 were removed in Brew 2.0 (flip phone screens are still supported either in monochrome or colored).
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.
Released in the mid-2002, it was installed for most of the Brew-enabled in late-2002 until early 2004. 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.
Released in 2004, it was the first version of Brew to have major changes and it has a vast 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, albeit it only uses software rendering (which also supports the JSR 184). Hardware 3D graphics is supported if the Brew system detects an OpenGL ES 1.0-based chip.
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. It is also used for the Zeebo console in Mexico and Brazil.
Released in 2007 until 2011, it was only installed on very few phones (such as 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 were available in Brew MP, such as the support of accelerometer and other changes.
Released in 2009, internally known as Brew 5.0, it has new various features (including SVG images support) and certain improvements and it is backward compatible with Brew 3.x and 4.x applications. It is also the first version of Brew to make certain APIs and legacy files deprecated. It is also the first version of Brew to rely on its own RTOS rather than Qualcomm's own REX OS.
Brew application development
For testing applications during the development process, the SDK includes a Brew emulator, or starting with Brew version 3.1.5 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 is protected by an Electronic Serial Number and a 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 AppLoader 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 which 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 re-load 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 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 as a cost to the end-user as there's less competition to develop the best solution for the cheapest price to the end user.
- After an application is written, it takes two weeks per iteration of True Brew testing (each time the application fails the test).
- Next, negotiations with carrier(s) commence.
- Then, (if successful) 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.
Brew versus Java ME
Currently, most developers choose to support both Java ME and Brew, or only Java ME. Java ME may offer a lower cost to market because most carriers allow non-certified Java ME applications to run on their phones. Java ME is widely used in Europe, while Brew is primarily used in the U.S. and Japan. Even in the U.S., Java ME phones have a larger market share than Brew enabled handsets. 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.
Java ME is technically slower than Brew due to its own virtual machine running on top of Brew's API. However, it still retains the performance speed.
Some/few handset manufactures do not allow to integrate Java ME's virtual machine on a few of their phones.
Unlike Brew, Java ME has limitations when it comes to certain applications.
Unlike Java ME, Brew is a closed-sourced mobile API with proprietary components and has longer development times than developing Java ME applications.
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++.
Due to its rigorous certification requirements, most carriers in other parts of the world didn't want to take the opportunity of distributing and negotiating Brew applications (except India, Europe, Australia, China, Japan, Latin America, some parts of South East Asia, and South Korea).
Brew is discontinued by some carriers due to the fact that they want to retain Java ME on their feature phone product lines.
Brew OS 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 Brew OS branding and Brew runs in the background with the custom "skins" of the mobile phone manufacturer or operator on-top. Brew OS 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, China Telecom in China, MOVILNET in Latin America, Sistema Shyam in India and by the 3 network in much of Europe, the UK and Australia on many mobile phones produced especially for their network.
Manufacturers such as Huawei, INQ Mobile, Amoi, LG, Samsung Mobile, ZTE, and HTC amongst others use Brew OS in some of their mobile phones and it is featured in 3 UK phones such as the 3 Skypephone, INQ1, ZTE Z431, LG T385 and Huawei u7510 (3 Touch).
Tectoy's Zeebo is the only game console to use Brew.
Motorola's own T720 as well as RAZR V3m also use Brew OS.