QNX Archive

Jailbreaking a Subaru QNX

Via Hackaday: has a Subaru, a car that has an all-in-one entertainment system head unit that is typical of what you’d find across a host of manufacturers. His account of jailbreaking it is a lengthy essay and a fascinating read for anyone. He starts with a serial port, then an SSH prompt for a root password, and a bit of searching to find it was made by Harman and that it runs the closed-source realtime OS QNX. From there he finds an official Subaru update, from which he can slowly peel away the layers and deduce the security mechanism. The write-up lays bare his techniques, for example at one point isolating the ARM assembler for a particular function and transplanting it bodily into his own code for investigation. A very good account of this obscure jailbreaking adventure.

Dissecting QNX

This work concerns a dissection of QNX's proprietary, real-time operating system aimed at the embedded market. QNX is used in many sensitive and critical devices in different industry verticals and while some prior security research has discussed QNX, mainly as a byproduct of BlackBerry mobile research, there is no prior work on QNX exploit mitigations and secure random number generators. In this work, carried out as part of the master's thesis of the first author, we present the first reverse-engineering and analysis of the exploit mitigations, secure random number generators and memory management internals of QNX versions up to and including QNX 6.6 and the brand new 64-bit QNX 7.0 released in March 2017. We uncover a variety of design issues and vulnerabilities which have significant implications for the exploitability of memory corruption vulnerabilities on QNX as well as the strength of its cryptographic ecosystem.

This scientific article is not for people with short attention spans.

Building a QNX 7 desktop

BlackBerry QNX is an embedded operating system targeting applications in the automotive, general embedded, and medical markets. However, it is not your garden-variety embedded OS: QNX is a full-blown, UNIX-like, POSIX-compliant operating system with all of the features you would expect of a desktop or server-class OS. Compatibility with other systems means that, at least in theory, porting various open source projects to SDP 7 should be a relatively easy task. And so, while there is no official support in this release for a desktop environment, there is nothing precluding someone from building such a system. With that in mind, I set myself the task of building a BlackBerry QNX 7 desktop.

Written by QNX kernel developer Elad Lahav, so you know the information in this article is solid.

BlackBerry QNX SDP 7.0 released

QNX Software Development Platform (SDP 7.0) includes the next generation 64-bit QNX Neutrino RTOS and the award-winning QNX Momentics Tool Suite. It provides a comprehensive, multi-level, policy-driven security model incorporating best-in-class security technologies from BlackBerry, which help guard against system malfunctions, malware and cyber security breaches. Building on existing certifications including ISO 26262, IEC 61508 and IEC 62304, QNX SDP 7.0 also brings a proven safety pedigree. Various features, including: microkernel architecture, file encryption, adaptive time partitioning, and high availability framework, make QNX SDP 7.0 the most advanced and secure embedded OS developed for use in all safety and mission critical applications.

That's an incredible amount of marketing speak for such a short paragraph, and sadly, the official press release isn't much better. QNX let go of what small enthusiast support among hobbyists it had almost a decade ago, and at this point it's so buzzworded up I barely recognise it anymore.

This was a long, long time ago.

Implementing Mutexes in the QNX Neutrino Realtime OS

A mutex is a common type of lock used to serialize concurrent access by multiple threads to shared resources. While support for POSIX mutexes in the QNX Neutrino Realtime OS dates back to the early days of the system, this area of the code has seen considerable changes in the last couple of years.

Ford ditches Microsoft for QNX in latest in-vehicle tech platform

Ford today took the wraps off its next generation in-car technology package. Called Sync 3, it's expectedly faster, sleeker and much improved from the old one. It's also more intuitive, easier on the eyes and better integrates smartphone apps. But the biggest change is under the hood: Sync 3 is powered by QNX instead of Microsoft Auto.

The car has become yet another platform battleground.

QNX 6.6 released

QNX 6.6 has been released. There are quite a lot of changes, but - sady - I doubt many of us work with QNX itself. It's quite popular in the embedded world, and, of course forms the foundation for BB10 - which has not exactly been a stellar success. Anywho, there's a pretty big change in 6.6:

The new Screen Graphics Subsystem replaces the Photon microGUI, including PhAB, Phindows, and QNX Neutrino Advanced Graphics. Usually referred to simply as "Screen", the Screen Graphics Subsystem allows off-screen rendering and can composite graphics from different rendering technologies, including HTML5, Elektrobit GUIDE, Crank Storyboard, Qt, and native (e.g., OpenGL ES) code.

Photon has been such a core part of QNX' identity for me that it's kind of weird to see it go.

Apple CarPlay infotainment system powered by QNX

Connectivity to smartphones and other mobile devices is a key strength of QNX Software Systems’ platform for car infotainment systems, and many automakers and tier one automotive suppliers use our platform to implement smartphone/head-unit integration in their vehicles. We have a long-standing partnership with Apple to ensure high-quality connectivity with their devices, and this partnership extends to support for Apple CarPlay.

Yes, Apple CarPlay runs on QNX. Makes sense - I'm guessing (?) in-car software needs a lot of certification and testing, which QNX' in-car platforms all already have.

QNX 1.4 MB floppy disk demo

This is a quick demonstration of the QNX 1.4 megabyte floppy disk demo.

QNX is an advanced, compact, real-time operating system. This demo disk, released in 1999, fits the operating system, the "Photon MicroGUI", and the HTML 3 capable Voyager Web browser all on a single 1.4 meg disk!

So far no emulator or virtualizer I have tried will run this QNX demo 100%, so this is running on real hardware. The video is captured with a VGA capture device.

QNX is one of the most intriguing operating systems of all time. This demo disk is one of those things that, even today, blows my mind. Be sure to watch through the whole video, especially the part where extensions are downloaded and run from the web, all on a single 1.44 MB floppy.

BlackBerry on the Ropes

According to a Computerworld article, BlackBerry is exploring putting itself up for sale, as the company falls into 4th place in the mobile market. IDC statistics that show Android leads the mobile market with nearly 80%, iOS has 13.2%, Windows Phone 3.7%, and BlackBerry 2.9%. Gartner analyst Bill Menezes states that even new ownership is "not going to address how the company restores itself."

One key asset BlackBerry owns is QNX, the real-time based OS it bought in 2010. QNX is microkernel based, versus the monolithic kernel used by many OS's like Linux. BlackBerry bases its tablet and phone OS's on QNX, which also remains a popular commercial OS for embedded systems.

QNX Neutrino OS 6.5 SP1 released

Since QNX - understandably - lost any and all interest in general-purpose computing, I kind of lost track where it was going (I used to have such fun with it - yup, 2004, before I even joined OSNews). Apparently, they just released version 6.5 SP1. It contains optimised memory performance, better networking and USB stacks, improved file system performance, and more. I'm sure these are all things we'll see trickle down to BlackBerry OS 10.

QNX Software 30th Anniversary

QNX Software has posted a page for its 30th anniversary, noting 30 ways that QNX touches your life (whether you know about it or not. It includes QNX's use in high capacity routers, power generation systems, emergency dispatch systems, OnStar, navigation systems, warehouse automation, television broadcasting systems, trains and planes, and many more.

QNX: The First OS to Support a PC Hard Drive

You know what's fun? Making claims on the internet about how something or someone was first with something or someone - if you catch my drift. You know what's also a lot of fun? QNX, the microkernel realtime operating system that powers just about any possible piece of kit you can think of. As it turns out, QNX was the first operating system to support a hard drive on a PC. On a related note, a new pre-release has been released of QNX 6.5.0.

QNX Neutrino RTOS 6.4 Released

If there is one operating system that has a special place in my heart, it's QNX. This microkernel operating system served as my main desktop operating system for months and months back in the day, during the short-lived QNX Desktop scene - which died out due to a lack of interest from QNX' parent company, QNX Software Systems. The money is in the embedded and high reliability markets, and that's where QSS - understandably - focused its efforts. QNX was sort-of open sourced in September 2007, and today the company has announced the release of QNX 6.4, the first major release since 6.3 in 2004.