David:

Hello everyone.

David:

And welcome to another episode of the Android bites podcast powered

David:

by Esper I'm David Ruddock.

David:

And every week I'm joined by my cohost Mishaal Rahman to explore

David:

the wide world of Android and a lot of topics in the Android universe.

David:

You probably wouldn't ordinarily see discussed this week.

David:

We've got a very special guest.

David:

And with that, I'll let Michelle introduce him.

Mishaal:

Thanks David.

Mishaal:

So this week I'd like to talk about graphing and S so if you are at all

Mishaal:

security or privacy minded, you may have heard of this project before it's

Mishaal:

been brought up by some very influential members of the InfoSec community as one

Mishaal:

of the preferred alternative Android based operating systems for devices that

Mishaal:

you can install that, people that are more secure and more private things.

Mishaal:

AOSP and joining us today, we have one of the developers who

Mishaal:

works on the project full time.

Mishaal:

Gabe from graphene O S welcome to the show either.

Gabe:

I'm very happy to join you guys today.

Gabe:

hopefully we can get into the nitty-gritty details of graphing.

Mishaal:

Yeah, definitely.

Mishaal:

before we actually dive into those details, I really wanted

Mishaal:

to clarify one thing with you.

Mishaal:

So you've probably are very familiar with the term custom wrong.

Mishaal:

It's a term that the vast majority of people use to refer to

Mishaal:

Android based operating systems.

Mishaal:

Aren't offered by Google or OEMs.

Mishaal:

there are projects like lineage iOS, which is one of the most popular ones that's

Mishaal:

referred to as a custom rom, there are many other projects that are referred to

Mishaal:

as custom ROMs, but I wanted to know, what do you think of this term is graphene S

Mishaal:

something we should call a custom rom or is there a better term we should be using?

Gabe:

I personally don't really consider it to make much sense.

Gabe:

my rationale for that being that.

Gabe:

The operating system isn't installed to rom chip anymore.

Gabe:

And mobile phones, maybe you have the exception of some older

Gabe:

feature phones don't really use a wrong for their operating system.

Gabe:

And the only real rom that's present on a modern smartphone is going to be

Gabe:

the boot rom, which is highly amenable and just starts the boot chain.

Gabe:

And I would describe craftiness and any other derivative of AOSP as operating

Gabe:

systems, because, that is what the.

Mishaal:

Yeah.

Mishaal:

And also , in my view, custom rom as a connotation of being like a

Mishaal:

hobbyist project that you would download off the XDA forums, just to,

Mishaal:

try out some new features or tweak the user interface, or maybe extend

Mishaal:

the longevity of your old device.

Mishaal:

It has that hobbyist, indie developer connotation associated

Mishaal:

with it, in my opinion, at least.

Mishaal:

And it feels like graphing.

Mishaal:

This is different than that.

Mishaal:

It feels like it's more.

Mishaal:

Aimed at professionals and, people in the InfoSec community or people

Mishaal:

who care about security in general.

Mishaal:

I think yes, operating system would be a better term for any Android

Mishaal:

based operating system, but graphene iOS in particular would be, a

Mishaal:

great project to use that term for.

Mishaal:

I mentioned just now that graphene S is it feels a bit different than

Mishaal:

other Android based derivatives.

Mishaal:

Aimed at people who care about privacy security, it advertises that it's more

Mishaal:

private and secure than AOSP so many people who aren't familiar with graphing

Mishaal:

OSTP may be wondering what are some of the privacy features that offers

Mishaal:

that aren't available and it wispy.

Mishaal:

And what are some of the changes that you guys made to make your

Mishaal:

derivative more secure than AOSP.

Gabe:

So graphing us is intended as a security and privacy research projects,

Gabe:

which focuses on incremental and systemic improvements rather than just picking

Gabe:

apart minor issues and low-hanging fruit.

Gabe:

Although obviously that is anything that would be present in a project.

Gabe:

Focusing on systemic improvements rather than individual issues.

Gabe:

One of the things that we have is a hardened Lipsy and hardened memory

Gabe:

allocator, which we know as heart Malak.

Gabe:

And that helps deal with a specific type of class of vulnerability, which

Gabe:

is referred to as memory corruption and memory corruption makes up.

Gabe:

I would say the overall majority of.

Gabe:

Of high end critical vulnerabilities present within the AOSP and chromium.

Gabe:

we have found and fixed issues in the wild, and it also will actively

Gabe:

prevent vulnerabilities that would otherwise affect AOSP normally.

Gabe:

If you want an example of that, we actually found a real world issue

Gabe:

and that's currently being tracked as if anyone wants to look up the

Gabe:

CVE number, CDE 20 21 0 7 0 3.

Gabe:

And that was a use after free vulnerability found by hardened.

Gabe:

Obviously in addition to that, Graffina our ships have no tracking whatsoever

Gabe:

built into the operating system.

Gabe:

And we also have the auditor and attestation server projects and

Gabe:

those help to verify that your installation of graphene is the

Gabe:

real, genuine graphing of us project.

Gabe:

And that, works by using hardware attestation, which is

Gabe:

backed by the secure element.

Gabe:

And that verifies the authenticity and integrity of all the code on the device.

Gabe:

You also add the network and census permissions so that they are user facing.

Gabe:

Say you install, I dunno, PDF viewing app.

Gabe:

For example, the user can revoke the networking permission or the census

Gabe:

permission just as if they were to revoke the context or messaging permissions.

Gabe:

Additionally, we close off any access to.

Gabe:

to say device identifiers to Android, hasn't already done.

Gabe:

For example, legacy apps on AOSP can currently access the serial

Gabe:

number, but we closed that office.

Gabe:

So it can't be used for tracking.

Gabe:

We also build upon AOSP security features.

Gabe:

For example, Andrew 12 brought into production, the camera and microphone

Gabe:

indicators, and we enable the location indicators, which aren't

Gabe:

actually enabled on production.

Gabe:

Andrew 12 operating systems.

Gabe:

Similarly, we also enabled them before they were actually enabled

Gabe:

in production on Android 12.

Gabe:

And I believe they've been a feature since Android nine, if I recall properly.

Gabe:

And that's just a very brief summary of just the incremental systemic

Gabe:

privacy and security improvements that we do at graphing us.

Gabe:

And we have a full features list on our website.

Mishaal:

thank you for high level rundown of.

Mishaal:

Many of the security and privacy benefits that crafty nos offers on top of AOSP.

Mishaal:

One thing I wanted to ask you to follow up on, these extensions that you guys offer

Mishaal:

over AOSP is , why do you think AOSP.

Mishaal:

Doesn't offer hardened Malik by default.

Mishaal:

And what are the downsides of enabling it the way graphing OSS.

Mishaal:

And are there any performance, downsides to enabling it?

, Gabe:

ISP currently is using the scooter allocator instead of hardened Malak.

, Gabe:

Now we're completely open to AOSP using hardened Mellon.

, Gabe:

If they were to adopt it, it's permissively licensed and is inherently

, Gabe:

compatible with the licensing of AOSP.

, Gabe:

harden, Malak, compared to scooter, we'll use more memory and that's due

, Gabe:

to the mitigations, which it deploys.

, Gabe:

And also it can potentially lead to issues in applications, which do have memory

, Gabe:

corruption, which simply isn't being exposed by traditional memory allocators.

, Gabe:

. And honestly, that decision really lies with them.

, Gabe:

bionic is inherently designed so that you can essentially swap in memory.

, Gabe:

Allocators is I would properly crudely word.

, Gabe:

Hot metal compared to school, though, when it comes to performance device

, Gabe:

resource usage performance should not really be affected much from

, Gabe:

a user's perspective, but it will involve in increased memory usage.

, Gabe:

That's due to the mitigations, which pardon Malik deploys.

, Gabe:

And obviously Google could potentially disabled some of the mitigations of

, Gabe:

enharmonic if they wish to deploy it.

, Gabe:

And that would still be an improvement, but obviously it remains to be seen

, Gabe:

as it is ultimately a Google choice.

, Gabe:

And we can't really show it.

Mishaal:

So just taking a step back and trying to summarize, I think

Mishaal:

you'll find is that, because Google is such a massive corporation that

Mishaal:

develops, all of Android, which is used by billions of devices and they're

Mishaal:

responsible to thousands of companies.

Mishaal:

Tens of thousands of developers out there, any change that they have to make,

Mishaal:

any performance impacting change that affects things on the millisecond scale is

Mishaal:

something that they have to be aware of.

Mishaal:

And because, such changes are scrutinized so heavily and they have

Mishaal:

to be benchmarked and they have to be observed for changes, will this

Mishaal:

negatively, in fact, 1% of our devices.

Mishaal:

And if so, how badly will it impact them?

Mishaal:

These kinds of considerations?

Mishaal:

you know, hardening decisions, more difficult for Google to do, whereas

Mishaal:

with a project like graph, it's possible to take more experimental approaches

Mishaal:

that may impact performance a bit negatively, but would theoretically and

Mishaal:

practically improve the security overall.

Mishaal:

So just to give one example of this consideration that I'm aware

Mishaal:

of personally, The application spawning process used by

Mishaal:

Android, which is called zygote.

Mishaal:

I believe graphene O us disables that traditional spawning model.

Mishaal:

And, what happens normally is that Android creates a, if you go back

Mishaal:

to like high school biology creates a psycho and then from there.

Mishaal:

Application process or split off from that psycho and the benefit of having that

Mishaal:

psycho processes, that it's able to start up some of the libraries and some of the

Mishaal:

tools and et cetera, that are needed by applications when they're being spawned.

Mishaal:

, this is not as secure as spawning every application freshly, but the benefit of

Mishaal:

using Android traditional spot process is that it speeds up app launch times.

Mishaal:

By disabling it, you get better security, but you also get slower app launches.

Mishaal:

So that's an example of a, trade-off the kind of trade-off that graphene OSTP makes

Mishaal:

to trade security, security above else.

Mishaal:

Security is the most important aspect when it comes to designing and building

Mishaal:

features for graphene graphing.

Mishaal:

S would you say that's an accurate depiction of the design philosophy?

Mishaal:

Gabe?

Gabe:

I would say that usability is something that we very heavily connect.

Gabe:

Which is why we've built things like assemble, assembles, legal

Gabe:

place services, and we're currently working on extensively documenting

Gabe:

its usage and we're making it even easier for users to use it.

Gabe:

And we've renounced to exact spawning.

Gabe:

, it is generally on newer hardware, very imperceptible, I would say.

Gabe:

Probably one device generation down the line, or honestly, even on modern

Gabe:

devices, like the pixel five and the pixel six, it's barely noticeable whatsoever

Gabe:

to the average user on legacy devices.

Gabe:

Like the third generation pickup.

Gabe:

Especially the free and free XL, which use EMMC.

Gabe:

It did lead to exec spawning, having a much higher impact compared

Gabe:

to newer generation devices.

Gabe:

And I think over time, , as devices get moved to more powerful

Gabe:

hardware, . It'll completely prevent being an issue completely.

David:

Yeah.

David:

And I think that . If you want to go even wider, you can say that this is

David:

just computing at work it's Moore's law.

David:

We're getting more powerful hardware, sequentially over the years here.

David:

And as that hardware becomes more capable of executing within the

David:

thermal or wattage envelope of your smartphone, you're able to do.

David:

I think a good example of that.

David:

If we're going to talk about EMMC and storage speed would be Androids move

David:

to full disk encryption, which was painful and took a number of years.

David:

I forget when it was introduced as mandatory.

David:

Was that new get maybe when FDE became.

David:

I don't specifically recall, but Google's reasoning was well, we're going to

David:

impact performance so badly, and I think everybody can intuitively understand why

David:

disc encryption can impact performance.

David:

We saw that fight for a long time.

David:

I think some phones allowed you to turn on encryption.

David:

as an option when they received an iOS upgrade and it absolutely

David:

destroyed performance.

David:

So yeah, it's something that Google probably has to weigh

David:

pretty frequently given diversity of devices in the ecosystem.

Mishaal:

So just a up on encryption aspect, I believe your full disk

Mishaal:

encryption was introduced in 5.0.

Mishaal:

And then it was eventually replaced with file based in.

Mishaal:

if you just Google those two terms, you'll find the, documentation

Mishaal:

by Google on what they are.

Mishaal:

I don't think they're really necessary for us to dive into right now.

Mishaal:

so I just want it to.

Mishaal:

Next, you mentioned a lot of different aspects scape that elevate graphing

Mishaal:

OSTP as a privacy and security oriented operating system over AOSP.

Mishaal:

so if I were, listening to this podcast and I want it to go and install a graph,

Mishaal:

you know, us onto my own device and I visited graphene ios.org and visited

Mishaal:

the releases section, I would notice that the operating system is only

Mishaal:

available for Google pixel devices.

Mishaal:

Can you tell me why.

Gabe:

the unfortunate reality is, and I'm going to be pretty blunt

Gabe:

about this, the vast majority of OEMs, they're pretty terrible.

Gabe:

The great thing about pixel devices is that they are essentially

Gabe:

the de facto reference devices for Android, and they are full

Gabe:

support within AOSP and they have.

Gabe:

Probably the best hardware security you can get on an Android device.

Gabe:

they rivaled that of an iPhone when it comes to security things

Gabe:

like having a proper IMU and having a proper secure element.

Gabe:

So the pixels, they have the Titan, em, on the new generation, a base

Gabe:

pixels, the tighten, em too.

Gabe:

So that's the pixel six and six pro and those secure elements

Gabe:

does support the Weaver API, which massively improves this encryption.

Gabe:

just things like this.

Gabe:

Most other OEMs don't implement and most critically, most OEMs do not implement

Gabe:

support for alternative operating systems.

Gabe:

Google pixel devices, they allow you to unlock the bootloader

Gabe:

without any trouble from the OEM.

Gabe:

You don't need to ask for an unlock code, like some OEMs, they don't

Gabe:

need any special fancy software.

Gabe:

It's just use fast bit when you can unlock the bootloader.

Gabe:

And it also allows you to define , a user defined route of.

Gabe:

what that means is that you can preserve the verified big frat model and actually,

Gabe:

use verified a bit and lock the bootloader with your own operating system, with

Gabe:

your own keys on a pixel device.

Gabe:

And generally pixels have been only devices to properly

Gabe:

implement support for that.

Gabe:

There's a few manufacturers out there, which I won't name while they do have

Gabe:

support, they don't implement it properly.

Gabe:

And there are serious security issues with the alternative operating systems.

Mishaal:

So just for a bit of background, for those of you who aren't familiar,

Mishaal:

the bootloader is a special piece of software that basically loads up, all of

Mishaal:

the other components that are necessary to load up the operating system,

Mishaal:

including the kernel and everything else.

Mishaal:

Literally loading up.

Mishaal:

Everything needed to boot the device.

Mishaal:

And when we say you unlock the bootloader, basically that allows, the

Mishaal:

user to install images that were not originally signed by the manufacturer.

Mishaal:

And, if you were to lock the bootloader.

Mishaal:

Then those images would have to be recognized by, the verified boot system

Mishaal:

on Android and most devices do not allow you to, insert your own verified boot

Mishaal:

keys into that process so that if you were to lock the bootloader, your phone

Mishaal:

will be completely braked after installing in alternative operating system.

Mishaal:

And with few exceptions, like the Google pixel series, you can.

Mishaal:

I'm not the bootloader flash accustom operating system

Mishaal:

and then lock the bootloader.

Mishaal:

, that is probably one of the most important things that blocks graphene, iOS and other

Mishaal:

security minded operating systems from being supported on non pixel devices.

Mishaal:

one thing I noticed though, is that even if you were to go through this

Mishaal:

process of unlocking the bootloader.

Mishaal:

Installing graphene O S and then, flashing a custom verified boot key,

Mishaal:

and then re locking the bootloader is that the bootloader will

Mishaal:

still show you a warning message.

Mishaal:

It displayed in yellow that tells you that you're running

Mishaal:

in alternative operating system.

Mishaal:

If you were the user who went through the process of installing

Mishaal:

graphene OSTP and did all this.

Mishaal:

You probably, dismiss this message is no big deal.

Mishaal:

Cause you know exactly what you did to your own advice.

Mishaal:

But if you were to purchase a device with graphene iOS pre installed, or

Mishaal:

maybe you had a friend or someone else install it onto your device for you and

Mishaal:

you put up your device and you see this message, you might be a little concerned.

Mishaal:

So I wanted to ask you . what would it take to have this message,

Mishaal:

not show, what would it take to have graphene S be treated like

Mishaal:

a first party operating system?

Mishaal:

Like the pre-install firmware on devices.

Gabe:

Going to keep it since.

Gabe:

Android has multiple states within which verified boot will operate in.

Gabe:

So when you buy a device from the shops, say I bought a brand

Gabe:

new pixel six or whatever.

Gabe:

The latest Samsung is that device will boot in the green verified boot

Gabe:

state, which means that the device is booting and operating system, which

Gabe:

has been approved and certified.

Gabe:

And, Basically the OEM said, yeah, we're shipping it with this.

Gabe:

We're approving this operating system.

Gabe:

It will be without any warning, no friction whatsoever.

Gabe:

Now say for example, I were to buy a pixel, unlock the bootloader,

Gabe:

and it's still graphing.

Gabe:

Then device will be booting in a yellow verified boot state.

Gabe:

What that means is that device is using a user defined root of trust.

Gabe:

Your device is using the graffiti now as keys in order to preserve

Gabe:

the verified boot threat model.

Gabe:

And it's running on a locked boot loader with a custom operating system.

Gabe:

So that means quite literally anywhere.

Gabe:

Combined pixel clone down AOSP and build their own fork of the operating

Gabe:

system of all their things that they want in bear operating system, flush

Gabe:

it to the phone with their own keys and lock the bootloader, and they will be

Gabe:

able to completely maintain the front model of the Android security model.

Mishaal:

And so if say an OEM wanted to implement first party support for

Mishaal:

graphing OS, what exactly would they have to do to get the device to boot with a

Mishaal:

green verified boot state with graphene O

Gabe:

S so an OEM would have to waitlist on keys in order for the

Gabe:

phone to boot in the green state.

Gabe:

Within the bootloader and OEM, essentially, It has a

Gabe:

key pinned within the farmer.

Gabe:

and if that key does not match what is in essentially the approved list,

Gabe:

the phone will kick and scream and say, all right, is it using a use

Gabe:

of the finder of trust or is it not?

Gabe:

if it's not, and it's on a lot, bootloader, it'll give a red screen

Gabe:

because something has gone terribly wrong.

Gabe:

If it is using a user defined root of trust of a lot bootloader, then

Gabe:

it will say, okay, you are in the list, but the user has defined you.

Gabe:

So that means that it will be in a yellow verified.

Gabe:

With graphene us on potentially our own hardware or a partner

Gabe:

manufacturer's hardware.

Gabe:

We aim to have it so that our keys will be wait-listed.

Gabe:

And you'll be able to skip that screen

David:

quick tactical question.

David:

can this list be changed after the fact by flashing a new boot loader to the

David:

device, or is that break the trust?

Gabe:

only the OEM can build and sign the bootloader.

Gabe:

all the farmers of the device is signature enforced.

Gabe:

So you can't just swap out the bootloader with your own.

Gabe:

You'd have to use the pre-production device to do that.

Gabe:

And that's just not going to happen.

David:

I guess my example would be in the case of an OEM, actually,

David:

doing this and partnering and wanting to update a phone to support, the

David:

green status, would that be possible?

Gabe:

That could absolutely be possible.

Mishaal:

Awesome.

Mishaal:

I want to focus on the post installation aspect of graphing LS.

Mishaal:

Once you actually have properly installed it and have set it up, you're

Mishaal:

going to actually be using this as your operating system on your daily

Mishaal:

driver device, which means do you have to have applications anyone who has

Mishaal:

installed in AOSP bill probably knows that it's incredibly bare bones and

Mishaal:

the basic apps that are there are old.

Mishaal:

Incredibly unmaintained by Google.

Mishaal:

Unless you want basically a dumb phone, you're going to have to

Mishaal:

install apps from somewhere else.

Mishaal:

Most OEMs decide to include GMs, which is Google mobile services, as well

Mishaal:

as a suite of their own applications.

Mishaal:

But for smaller teams like graphing us, it's just not feasible to develop an

Mishaal:

entire GMs alternative suite of apps.

Mishaal:

And it's also not technically legally okay.

Mishaal:

To ship GMs alongside these graphene iOS belts, although many, I'd say other

Mishaal:

operating system projects do so anyways.

Mishaal:

but I think philosophically graphene, O S doesn't really like

Mishaal:

the concept of GMs and has been.

Mishaal:

working on alternatives because widely recognized at GMs and, Google play

Mishaal:

services and Google play store in particular are incredibly important

Mishaal:

applications for the average user.

Mishaal:

You know, most users probably won't bother with alternative operating systems that

Mishaal:

don't have those applications because just so many things aren't unavailable.

Mishaal:

And so many applications just refused.

Mishaal:

gave actually alluded to this earlier, but graphing OS has been developing something

Mishaal:

called the sandbox play services, compatibility layer, and this, I think,

Mishaal:

tries to bridge the gap between okay.

Mishaal:

we value privacy and security above all else.

Mishaal:

Google apps are closed.

Mishaal:

Source binaries.

Mishaal:

They collect a whole bunch of data.

Mishaal:

But, we know users want to use them regardless.

Mishaal:

So I wanted to ask you Gabe, can you tell us a bit about how sandbox play services,

Mishaal:

compatibility layer works and how does it, deliver access to Google apps while

Mishaal:

preserving graphene OSS privacy model?

Gabe:

Sure.

Gabe:

So ? say for example, you were to just compile an all AOSP build or just simply

Gabe:

buy a phone, which didn't come with GMs.

Gabe:

You don't have Google play store then of Gill play services, general

Gabe:

legal services framework, et cetera.

Gabe:

You won't be able to just install the APKs onto the phone.

Gabe:

And everything will train crash because by default they expect to

Gabe:

be in a special se the annex policy.

Gabe:

They expect to be built into the OS.

Gabe:

So they actually privileged apps and they expect to have all sorts of extra

Gabe:

permissions, which aren't user-facing and only privileged apps can get.

Gabe:

And because of that's why they chain crash.

Gabe:

On graphing of us, what we've done is instead of running

Gabe:

in the own se the next time.

Gabe:

They run in the normal untrusted app.

Gabe:

I see an X domain, which means they run in the same application sandbox, just

Gabe:

as any other APK you are to install.

Gabe:

We don't ship them at all within the operating system.

Gabe:

On top of that, we have essentially taught them how to run like this.

Gabe:

we do that using shims within the operating system.

Gabe:

So say for example, Google play services might try and access the privileged API

Gabe:

to , get the serial number of the phone.

Gabe:

Yeah.

Gabe:

Instead of what we'll do is we'll just say, oh, there's no

Gabe:

serial number, but that's okay.

Gabe:

You can just use this stub, API that we made.

Gabe:

And then it would just think, oh, there's no serial number.

Gabe:

Guess there's none.

Gabe:

And it'll just continue on.

Gabe:

that's essentially what it does throughout the application.

Gabe:

And we've got to a point where.

Gabe:

The vast majority of functionality offered by Google play services and the whole GMs

Gabe:

stack work almost perfectly on graphing.

Gabe:

we have, for example, the new, no down advertising identifier,

Gabe:

you can enable that within Google play services, we also have.

Gabe:

The location, redirection support, which means say,, you install an

Gabe:

application that exclusively relies on Google play API APIs for location.

Gabe:

Instead of the Android operating system, location, API APIs, you can read the.

Gabe:

Those APIs system-wide to go through our compatibility layer and then

Gabe:

redirected to the operating system instead of them essentially being

Gabe:

proxied through Google play services.

Gabe:

So that means Google play services can run without location access.

Gabe:

The apps that depend on its location API can still use it

Gabe:

through the operating system APIs and with regards to functionality.

Gabe:

I did mention earlier that almost everything works and recently we've

Gabe:

got quite literally almost everything.

Gabe:

Things like casting to a Chromecast or apps that don't have their own costing,

Gabe:

implementation, and aligning the place services implementation that works.

Gabe:

Things like Fido and security keys.

Gabe:

Those work now, since there is no AOSP implementation for

Gabe:

security keys, for example.

Gabe:

And it's one of many things which you can see has been moved into place

Gabe:

services in order to either be backport.

Gabe:

It took all Android devices, since you can't really back

Gabe:

port a feature like that to.

Gabe:

Over a billion devices, which are running on multiple different Android versions.

Gabe:

So security, key support isn't in AOSP, but if were in place services

Gabe:

for everything, it's just an example of many features like that, which are

Gabe:

highly integrated into place services.

Gabe:

Like even if you were to compile chromium, premium's going to use

Gabe:

that for security, key support.

Gabe:

If you want to use safe browsing on chromium, it

Gabe:

relies on the Google play APIs.

Gabe:

And the most common use case, which I'm sure everyone has encountered

Gabe:

when they've tried to install custom operating system on their phone without

Gabe:

Google apps is Firebase notifications.

Gabe:

So the Firebase back-end is essentially where , I was to install, I don't know.

Gabe:

Let's say Snapchat, for example, their backend servers

Gabe:

would communicate to Firebase.

Gabe:

Hey, you've got a notification and your phone with Google play

Gabe:

services on it would constantly out.

Gabe:

Towards Firebase and say, okay, there are any notifications.

Gabe:

And then Firebase would say, yeah, you got on your Snapchat message and Google

Gabe:

play would then tell that to Snapchat.

Gabe:

And then Snapchat would pop up saying, Hey, you have a notification.

Gabe:

But none of that functionality by default would be on the operating

Gabe:

system without Google play services.

Gabe:

And generally at least in the Western world.

Gabe:

Pretty much everything uses fire based notifications that deliver

Gabe:

notifications for a backend to the client.

Gabe:

if you look in China, there's all sorts of different homegrown implementations.

Gabe:

I don't remember all of them off by heart, but I know Huawei has one.

Gabe:

I think Tencent has one as well, and I'm sure there's numerous others as well, but

Gabe:

when it comes to the west, pretty much everyone uses Google play services and

Gabe:

the find may CPI to get notification.

Gabe:

And that, of course it's fully functional and graphing us.

Gabe:

When you use some books, Google places.

Mishaal:

Yeah, so , I think this is a very fascinating and novel approach to

Mishaal:

solving the issue of, that I'm sure many companies who are looking at building an

Mishaal:

Android device of hat, do I have to ship Google mobile services with my device?

Mishaal:

And if the answer is you're selling a smartphone to a consumer, then

Mishaal:

the answer is probably very likely.

Mishaal:

And there's really been no way to get around that because if you don't ship

Mishaal:

GMs, then your users won't have apps.

Mishaal:

When I've access to apps on the Google play store, many of their

Mishaal:

applications will refuse to run or just simply be broken without access

Mishaal:

to play services, API APIs, and, just without access, do you lose so much

Mishaal:

if you don't have include GMs and, by.

Mishaal:

Accepting GMs into your bill.

Mishaal:

Do you have to bundle it as privileged set of applications?

Mishaal:

You have to grant it so many permissions.

Mishaal:

You're allowing Google to access so many privileged APIs that aren't

Mishaal:

available to other applications.

Mishaal:

They can, collect a lot of data.

Mishaal:

They run in the background persistently.

Mishaal:

There's just so much control you're giving up to enable GMs on your bills.

Mishaal:

I think this is a really novel approach that basically.

Mishaal:

Allows users to install GMs apps as if they were just regular

Mishaal:

applications without giving up too much of your privacy in the process.

Mishaal:

And I think basically any company that's looking at, building AOSP and shipping

Mishaal:

an AOSP device that actually functions acceptably for an average user might

Mishaal:

want to take a look at this sandbox play services, compatibility layer approach,

Mishaal:

because it is very interesting in my.

David:

I guess that my big question about that to UK would be, do you see Google

David:

trying to shut some of these doors?

David:

because these are work arounds and, Google obviously also has its

David:

own, kind of trust model for play services that it wants to preserve.

David:

So I'd be curious of your view of where this puts that.

David:

And, how you see their response to date.

Gabe:

I don't really consider this to be an issue because , , we

Gabe:

made shims for everything.

Gabe:

We can always add more shims.

Gabe:

and I highly doubt it's within the interest to intentionally

Gabe:

break anything, which we do.

Gabe:

So I don't really consider it to be an issue for the longterm.

Mishaal:

Right.

Mishaal:

It is, a bit of a cat and mouse game there because, Google play services

Mishaal:

and a lot of apps and GMs are a black box to outside developers.

Mishaal:

We don't have the source code to the applications.

Mishaal:

So we don't know what API APIs and features Google are planning,

Mishaal:

or if anything breaks, we can't really anticipate that.

Mishaal:

But as Gabe mentioned, if anything changes, it's always possible

Mishaal:

to account for that change.

Mishaal:

They might just take some time and a bit of development effort, but

Mishaal:

changes can be made to reintroduce support and compatibility with

Mishaal:

the latest place services updates.

Mishaal:

one of the last questions I wanted to ask you, Gabe is, recently

Mishaal:

there's been a lot of talk about software update LUNGevity and Who

Mishaal:

is to blame for the, in my opinion, mediocre support that most Android

Mishaal:

devices get from their manufacturers.

Mishaal:

On average, you'll find that , most flagship devices get

Mishaal:

three years of OSTP updates and three years of security updates.

Mishaal:

Recently, Samsung has extended that to four years of OSTP updates

Mishaal:

and five years security updates.

Mishaal:

they're finally starting to approach apple levels.

Mishaal:

But apple has always been the gold standard for years.

Mishaal:

And for years, Android has lagged behind that gold standard.

Mishaal:

So , what do you think of this issue?

Mishaal:

Do you think, this can be solved.

Mishaal:

Do you think there is a particular entity that we would blame for, poor

Mishaal:

software support, length, or do you think it's more complicated and how does

Mishaal:

this affect your work on grafting LS?

Gabe:

When it comes to solving this, I do quite firmly believe that it's

Gabe:

a huge combination of issues whereby SOC vendors and OEMs, both have caused

Gabe:

it to be a little bit of a headache I think Google has acknowledged this.

Gabe:

And I think since the introduction of initiatives like treble

Gabe:

project, main line, and GKI so generic Colonel images, I'd say.

Gabe:

Possibly in the far future, potentially even near a future or get to a point

Gabe:

where Google would end up maintaining the vast amount of the base operating system

Gabe:

that's unified across all Android devices and they would update it and maintain.

Gabe:

And we'll get to a point where OEMs just simply maintain their device

Gabe:

specific bits and SOC vendors with collaborate with OEMs to make sure

Gabe:

that's getting pushed out quickly.

Gabe:

So we'll get to a point where.

Gabe:

Google might do the entire underlying OS and they might

Gabe:

do the generic kind of women.

Gabe:

And they might just do that automatically for everyone.

Gabe:

And that would leave OEMs of having to manage firmware updates and

Gabe:

kernel module updates and any other parts of the operating systems.

Gabe:

So say they have a fancy skin, or they might have some novel features.

Gabe:

They would maintain that, but Google would maintain the core Android OSTP.

Gabe:

And I think that will most likely be the future we end up going into,

Gabe:

but of course either really know what will happen in the future.

Gabe:

That's just my personal speculation.

Gabe:

I don't think there's a clear solution to it, but I do think the work Google is

Gabe:

putting into trying to mitigate things and ultimately solving it is going

Gabe:

to be highly beneficial in the long.

Gabe:

I do quite firmly believe that support periods are far too short.

Gabe:

And I think that, a question that is brought up often is why are we coming

Gabe:

together to essentially make e-waste?

Gabe:

And the reality is as a project, we can't really do much about it.

Gabe:

the truth is that we can only be.

Gabe:

I have devices for security coverage.

Gabe:

So long as an OEM is providing support.

Gabe:

The pixel two, for example, that's been end of life work quite a long time.

Gabe:

Now there is no way you can have a secure pixel turnout because

Gabe:

the OEM, IE, Google is not pushing up any security updates for it.

Gabe:

Say you're on a pixel free.

Gabe:

You need to move.

Gabe:

If you're on a free freer, you need to think about moving later this year,

Gabe:

it's not necessarily a great reality.

Gabe:

And people do often frequently compare this ecosystem to the desktop

Gabe:

side where they're saying, oh, but I can use my desktop for years.

Gabe:

I can just install an expert.

Gabe:

I think the awareness of.

Gabe:

In mobile, secure is far more heightened compared to that of desktops where

Gabe:

people don't really understand that things like their UEFI from where their

Gabe:

GPU from where they're trusted platform, module, firmware, all of that culminates

Gabe:

in the whole security of your system.

Gabe:

And the reality is most OEMs neglect that.

Gabe:

we are already seeing in the wild exploitation of these things.

Gabe:

And I do think in the future, it will be a far bigger issue than it is currently.

Gabe:

It's a time bomb waiting to happen.

Gabe:

And in that same regard, users should be very well aware that they should really

Gabe:

avoid using hardware that doesn't have full OEM support because they're not

Gabe:

going to be getting security coverage.

Gabe:

And of course, there's not going to be any bug fixes, but.

Gabe:

that's probably the least of your concerns when anyone can

Gabe:

just, get into your system.

Gabe:

yeah, I don't think there's a very clear answer on what we can do to tackle that.

Gabe:

, that's all I really have to say on the matter.

David:

And I think that's a very fair assessment and that's

David:

what we hear from everyone.

David:

And this is becoming our bit every week where we ask about the state

David:

of the Android update ecosystem.

David:

And the complexity of it, as you've said, makes it really hard to pin anyone to the

David:

wall and not necessarily that they deserve to be there also consumer preferences to

David:

take into account, which in many ways.

David:

The aforementioned e-waste problem.

David:

People want the new thing, and they've been conditioned by a lot

David:

of companies to want the new thing.

David:

For Google's part.

David:

I think that your assessment that, they're going to keep making the OSTP more

David:

modular as relates to the OEM involvement.

David:

That rings true based on everything we've seen with trouble and mainline and GKI

David:

and all of these other initiatives that are just designed GRF is another one

David:

that we've talked about on a episode of the show that will probably be going up.

David:

And the Google requirements freeze that will essentially make it easier for

David:

OEMs to be worse about certain kinds of updates, but in service to getting them

David:

up to date on newer platform versions and more security patches extensively as well.

David:

So you do see Google have to balance that those considerations against each other.

David:

the, OEM.

David:

their kind of economic situation and then also the security of the

David:

whole platform, which is obviously really important to Google.

David:

think that a great example is play services.

David:

Google has increasingly used that as the carrot.

David:

And the stick being, not having play services because everybody wants them.

David:

Right.

David:

So I think that we'll continue to see them use GMs in that

David:

way to advance that interest.

David:

And I think it's a credible way to do it.

David:

It's also one of the few tools they have in their belt , to

David:

enforce that sort of thing.

David:

yeah, it's, going to be slow.

David:

Like you said, Gabe, it's going to take time, but I think we're

David:

watching the pieces come together.

David:

I think this year, I would say Michelle, would you agree that

David:

especially with 12 L or excuse me, 12 and 13, we've seen Google's plans.

David:

They are become much more clear.

Mishaal:

Yes.

Mishaal:

Especially with the introduction of GRF, which many developers that I've spoken to.

Mishaal:

Pet basically describe it as the completion of project trample.

Mishaal:

Treble is, finally here with GRF and if you're not familiar with GRF then as

Mishaal:

David mentioned, go back and listen to the podcast episode where we talked about that

Mishaal:

or the blog posts that I published on it.

Mishaal:

but in general, to answer your question.

Mishaal:

Yes, I do believe finally, we're going to see the fruits of all of those

Mishaal:

initiatives . coming to fruition, may take a few years because we have to actually

Mishaal:

wait to see , how quickly OEMs now roll out updates based on these improvements.

Mishaal:

But I do think it will have a noticeable impact on the frequency

Mishaal:

and the speed at which Android updates are pushed out to users.

David:

All right.

David:

thank you for joining us, Gabe.

David:

where can people learn more about graphing and see what you're working on over there?

Gabe:

So we have a highly in-depth documentation and feature

Gabe:

overview, which you can find that graph, s.org and we are also.

Gabe:

Highly active on our Twitter page.

Gabe:

And we also have a very interactive and active community, which you can find

Gabe:

also in graphing the rest of all by just hitting the contact button in the top.

Gabe:

And you'll be more than welcome to talk about it and ask any questions you have.

David:

Thanks Gabe.

David:

And actually I'm one of the things you brought up earlier did remind

David:

me of Asper a little bit, because we do support verified boot, for our

David:

own distro based on Android, because work with a couple of OEMs, one of

David:

them, most prominently being Lenovo.

David:

So that actually clicked for me.

David:

So thank you for bringing that up because I wasn't a.

David:

Of how that was architected and now it makes a lot more sense to me.

David:

and that gets to who's powering the show.

David:

It's Esper, Michelle and I both work at Esper.

David:

You can find our work@blogdotesper.io.

David:

If you're listening to this episode and you're wondering, okay, like I'm

David:

here because I want to understand how Android devices get built.

David:

what goes into putting on your own OSTP distro on an Android.

David:

Come talk to us at Esper.

David:

We do this every day.

David:

We're building our own custom.

David:

Do we have, excuse me, not building half built our own custom disrobe

David:

Android that works for a variety of devices, including X 86 Intel computers,

David:

which we're actively flipping in the wild with customers right now.

David:

And we can give them security patches too.

David:

Yeah, you should get in touch with us.

David:

That's esper.io.

David:

If you want to book a demo, or if you just want to see what Michelle

David:

and I are up to that's blog.esper.io, or you can find us both on Twitter.

David:

Our links are in the show notes below.

David:

Thank you for listening everybody.