January 5, 2024

What’s a Rich Text element?

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

Static and dynamic content editing

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

Chronicles

Jan Altensen makes software talk to hardware and digs up security vulnerabilities in Chromecasts

The diversity in approach, background, and knowledge provides our team here at OSOM with a resiliency and strength that we find critical in engineering. In the case of Jan Altensen, that knowledge is literally foundational: His work is the base on which a phone’s software experience can be built. In today’s Employee Spotlight interview, we spoke with him about his work on BSPs, working with different chipsets, and digging up security vulnerabilities in other products. 

Thanks for chatting with me, Jan. I should note for our readers that Jan is smoking like a chimney in the dark, all the way from Germany. 

Here we go. [Laughs.]

Tell our readers your title and what you nominatively do here at OSOM. 

Senior Systems Engineer — I used to be a “Junior.” What I am working on is the BSP side, meaning the Android vendor side. Basically, that’s everything needed to get Android running on the selected hardware. For Saga, we get the source code for the entire hardware stack from Qualcomm, and my job is to make it work on the device we’ve built. There are hardware differences and certain parts that require more engineering effort and other changes. We have to pass Google’s CTS requirements. That’s what most of my day is about. 

And this is familiar work for you. You’ve done this over at the LineageOS project, maintaining devices there. 

Similar, but different. I work on different SoCs there — mainly Samsung Exynos. It’s one of the only vendors that offers publicly accessible BSP support. But yes, at Lineage, I’ve been working on the BSP side for a few years. 

There’s a big difference between doing it as a hobby and as a job, that’s for sure. You set your own timelines and deadlines when you do it for yourself. I can do it whenever I want. But when I do it as a job, I have to do it, which means I have less time for the hobby. 

Working with Qualcomm is a little different, but at the end of the day, it’s all sort of the same. Samsung’s code is nice to work with, and Qualcomm is different. It’s a much more complex system with a lot more components. You have to dig much deeper into a much larger code base to understand what is doing what and how things interact. On Exynos, you have a more limited set of hardware support components that are (for the most part) self-explanatory. 

This was a popular topic at the recent company meet-up in Montreal, so I wanted to ask about it early here: You had a big security vulnerability submission over at Google recently. 

Yes. So I worked with a couple of friends (Nolen Johnson at Lineage and Ray Volpe), and we found a complete exploitation stack on the Chromecast with Google TV HD (Boreal) that allowed us to bypass verified boot entirely and persistently with a locked bootloader. So you could flash a custom ROM on it without unlocking the bootloader — or do worse things. 

That’s a pretty big vulnerability! At least there isn’t much banking happening on Chromecasts. 

Not that I am aware of, no. 

In addition to being a “new” face at OSOM, like me, you’ve also got a different educational background compared to most of the other software engineers on the team. 

So, my educational background is basically non-existent. [Laughs.] Everything I know about software is learning by doing. I learned Android, starting with a Galaxy S4 Mini, which was supported at the time by CynaogenMod, and then LineageOS. Then, I switched to a Galaxy S5 Neo, which was not supported due to its Exynos SoC. So I just dove in and did it myself. And that’s how it all started for me — learning by doing. It’s what I like to do, and it worked out. 

I don’t have a lot of theoretical knowledge about a lot of subjects, but the practical knowledge is there, and I know Android. For the most part, I know what I’m doing — not always, but for the most part. The important thing is not how you arrive at the answer, it’s finding it. 

You’ve seen a lot of changes in the BSP in your time, too. 

Android 8 was horrible because of all the changes Google introduced, especially on the kernel side, which made pretty much everything incompatible. There were big changes when they introduced Treble, of course. Since then, it’s been better, but they still occasionally push breaking changes, which is annoying. 

I get the feeling you’re not a fan of all the modularization and generic kernel support happening. 

No, I don’t like it. I never liked it and I will never like it, but it is what it is. 

With so much of your work on getting software to talk to hardware, you have a very different perspective on this question that I like to ask: What is your favorite feature on Saga? 

Oh, that’s a hard one. On the hardware, I don’t really have a preference. Software side, I like that our Android is clean, with no bloatware. Our materials are nice — the ceramic back is definitely nice. 

One of the things we’ve enjoyed in our company chats is the ongoing story of “Jan’s roof.” What’s the current state there? I hear it took a turn for the worse.

So, over the summer, I fixed my roof. I had to rip it completely off because someone did it wrong in the past. I redid it. It used to be roofing tiles made of concrete or ceramic. But the angle was too shallow for that type of roof, and water leaked in. So I ripped it all off, put in new beams because some had rotted through, put down OSB on top of it, and did an asphalt paper roof. 

Then the weather got worse, we had some storms, and I couldn’t finish it completely. So, the edges were still a little loose. On top of that, we had a little bit of wind recently, which picked up one of the corners and pulled it up. So, once the weather gets better, I have to secure it and finish the job in the spring. 

Because I know it’s your other big passion: How excited are you for Grand Theft Auto 6 after the reveal? 

VERY. But I dislike how long we’ll have to wait to get it. And I don’t like that Rockstar prioritized the consoles rather than releasing on all platforms together. 

Rockstar is a very small startup; they probably don’t have the resources for a PC release. 

That’s not real engineering.