Draft:MotoMAGX
Distribution of Linux | |
![]() | |
![]() | |
Architecture | ARM32 |
---|---|
Initial release | 2007 |
Latest version | |
MotoMAGX[1] was an ARM 32-bit Linux operating system developed by Motorola, based on Montavista Mobilinux[2], released in 2007 and incorporating OpenEZX [3]technologies, for its line of mobile phones based on the EZX platform. It is not considered a Linux distribution, as it is only included on specific Motorola cell phones, and is not easily portable to other devices.
It was used in mid-end and high-end GSM mobile phones from Motorola, starting in 2007 and being discontinued with the entry of the Android-based mobile phone series.
The system used Linux Kernel 2.6, and Motorola distributed the kernel source code on its own website, for developers who were interested in making modifications to the system.[4]
Features[edit source]
-Native web browser based on Opera Mobile (not to be confused with Opera Mini) [5]
-Linux kernel 2.6.10-dev (customized by Motorola and Montavista)
-Support for JavaME (J2ME) games and applications and SDL applications made with MOTODEV Studio for Linux.
-Native multitasking support (although restricted to the small memory size of cell phones at the time)
-Support for FAT32 file systems on MicroSD HC memory cards
-Support as a mass storage device via USB or Modem mode, for use on a computer as a GSM modem, to allow Internet connection via GPRS to the computer.
-Proprietary graphics server (not X11), developed by Motorola, compatible with SDL applications.
-Support for GSM, GPRS, WiFi and Bluetooth 2.0 networks (varies from device to device)
-Support for touch screens (Motorola A1200, although based on OpenEZX) and dual-screen (Motorola V8, this one running MotoMAGX).
Multimedia[edit source]
The system has native support for WMA (Windows Media Audio) files, as well as support for synchronizing playlists with Windows Media Player 11 onwards.
Additionally, native support for a wider variety of multimedia and web formats (.flac, .avi, .mpg, .mp4, .mp3, .wma, .bmp, .png, .jpg, .htm/html) and and DRM-protected music formats (MP3/WMA) are also included.
Internet[edit source]
The system incorporates the Opera Mobile browser, a version of the Opera browser developed for cell phones, which allowed high-speed browsing of web pages (mobile). The browser also had (primitive) support for Javascript, allowing the use of more advanced websites and allowing some desktop pages to be viewed on the cell phone without major problems. Older versions of the Youtube website could be run on the devices satisfactorily.
Although most devices using this operating system did not have WiFi at the time, but your system already inherited native drivers and protocols from the Kernel for use with WiFi. Internet browsing was mostly carried out via the "fast" GPRS network or via slow Dial-Up mode.
Applications[edit source]
By default, on a cell phone with original factory firmware, the system was only compatible with JavaME applications (J2ME[6] in .jar format), which was already a widely accepted standard among several cell phone manufacturers at that time. However, Java applications were limited to the capabilities of the JavaME emulator, which prevented applications from truly taking advantage of the features of the Linux system.
Users can download games and applications directly from their operator's store or from third-party websites. However, an inconvenient factor is that most J2ME games have a fixed resolution, so the user was responsible for obtaining the file with the correct resolution for their device.
Devices running MotoMAGX [7][edit source]
Phone | SoC | LinuxJava version | Notes |
---|---|---|---|
Motorola AURA | MXC91231 (SCM-A11) | LJ 6.3 | |
Motorola E8 | MXC91231 (SCM-A11) | LJ 7.1 | |
Motorola EM30 | MXC91231 (SCM-A11) | LJ 7.1 | |
Motorola EM35 | MXC91231 (SCM-A11) | LJ 7.4 | |
Motorola i856 | MXC91131 (Zeus) | ??? | |
Motorola i876 | MXC91131 (Zeus) | ??? | |
Motorola i890 | MXC91131 (Zeus) | ??? | |
Motorola i9 | MXC91131 (Zeus) | ??? | |
Motorola PAROS | MXC91321 (ArgonLV) | LJ 7.1 | Cancelled |
Motorola SAIPAN | MXC91231 (SCM-A11) | LJ 6.1 | Cancelled |
Motorola U9 | MXC91231 (SCM-A11) | LJ 6.3 | |
Motorola V8 | MXC91231 (SCM-A11) | LJ 6.1 | |
Motorola VA76r | MXC91321 (ArgonLV) | LJ 7.1 | Only released MOTOMAGX-based device using ArgonLV SoC |
Motorola VE66 | MXC91231 (SCM-A11) | LJ 7.4 | |
Motorola Z6 | MXC91231 (SCM-A11) | LJ 6.1 | First MOTOMAGX-based phone |
Motorola Z6w | MXC91231 (SCM-A11) | LJ 6.3 | |
Motorola ZN5 | MXC91231 (SCM-A11) | LJ 6.3 |
Modifications and native Linux applications[edit source]
Motorola provided the system source code freely to developers, but warned them that this would void the device's warranty.[8]
Custom firmwares (called "Linuxmod")[9] (article in PT-BR) opened the door for the use of Linux applications running natively, without being limited to J2ME applications, taking advantage of the maximum performance that the processor and memory can offer, and taking advantage of native Linux resources. Packages in .mpkg format (which is a .zip file with a shell script and an application ID file, with a subset of the application files itself [10]) were distributed with small games ported from Linux, emulators, terminals, various applications and more sophisticated media players. Also, native SDL Linux applications for MotoMAGX or Mobilinux could be developed with the MOTO DEV Studio for Linux application.
Applications that use the SDL library can be easily ported without much difficulty, and normally, it would be enough to just recompile the code (and libs) for the cell phone's ARM32 architecture.
Although the original firmware only supports memory cards formatted in FAT32 by default, developers can enable support for other file systems, such as NTFS (read-only), ext2 and another Linux features, like NFS, FTP server and swap.
Kernel digital signature
The firmware can only be modified with an unlocked bootloader, and thus allow a new Kernel to be written.
The bootloader, however, required a digital signature to be applied to the Kernel in order for it to be accepted, and, curiously, it was nothing more than changing a couple of bytes and a certain offset of the Kernel. This offset varies according to the bootloader.
File system
The system adopted small partitions for firmware blocks, usually leaving the Kernel in a partition separate from the system root (/), as Android phones traditionally do. Thus, a new Kernel can be installed without the need to burn a new system.
Dual-boot mode
The firmware adopts a partition structure whose data is stored in small separate images in the SquashFS format. Modified firmwares can boot the system from SquashFS images from the memory card, allowing, in practice, a dual-boot process. This is a native feature of the Linux Kernel that can also be taken advantage of in the MotoMAGX. A shell .sh file is located at the root of the system, which contains the entire system startup script, its modules and services. This can be modified (with caution) to allow the firmware to be loaded from an SD card.
List of known builds[edit source]
References[edit source]
- ↑ https://web.archive.org/web/20080508162917/http://developer.motorola.com/technologies/motomagx/
- ↑ https://en.wikipedia.org/wiki/Mobilinux
- ↑ https://en.wikipedia.org/wiki/OpenEZX
- ↑ https://web.archive.org/web/20080224135543/https://opensource.motorola.com/sf/sfmain/do/home
- ↑ https://en.wikipedia.org/wiki/Opera_Mobile
- ↑ https://docs.oracle.com/cd/B14099_11/wireless.1012/b13819/j2meprov.htm
- ↑ https://lpcwiki.miraheze.org/wiki/MOTOMAGX
- ↑ https://motorolanetwork.com/pages/warranty
- ↑ https://pt.wikipedia.org/wiki/LinuxMod
- ↑ https://github.com/motomagx/linuxmod/tree/main/nanoencoder