[MUSIC PLAYING]
ILIYAN MALCHEV: Hi, good afternoon.
My name is Iliyan.
And I'm here to tell you how Android generic system images
or GSIs can help you test your applications on versions
of Android that are not efficiently supported
by your phone manufacturer yet.
But first, a bit of a background on Project Treble,
which makes this possible.
When you look at Android from the point of view
of an application, there's a bunch
of apps that talk to the operating
system via stable interfaces.
That is what we call the SDK API.
This is the dotted blue line.
And they talk to what we refer to as the Android framework
or the Android system image.
What we did with Project Treble is we
made sure to establish that system image
on a stable foundation on top of a vendor implementation, which
is specific to the actual mobile CPU and hardware
that your phone has.
And that system image and that vendor implementation
talk to each other via what we call vendor interfaces.
And these in both directions comprise
what we call the treble or the treble APX.
So remember that green box.
What does that have to do with generic system images?
You might wonder.
When we released Android 10, we push a bunch of open sources
to the Android Open Source Project or ASOP.
What then happens is silicon manufacturers,
such as Qualcomm and media tech, adopt
this code base to their CPUs to their mobile SOCs.
And then they turn around and give
that code that they've modified to their OEM partners--
companies such as Samsung, Sony, et cetera, et cetera.
There is an inherent lag in this process,
which is where the generic system would just come in.
When we created that pure separation between the system
and the vendor part of Android, we
made it possible to generate pure binaries out
of ASOP that are guaranteed to work on devices that
are Project Treble compatible, which is all devices that
launched with Oreo and later.
So as a developer, what can you do with GSIs?
Well, you can test your application
on the spec version of Android, right?
Android is defined by what we publish to ASOP.
Of course, it gets modified successively
by every partner in the ecosystem.
But the canonical version of Android is what runs in ASOP.
So he can do that, right?
You can further using GSI test your applications
on unreleased versions of Android,
our beta releases and quarterly updates and so on.
And you can do that on a wide range
of actual physical hardware, right?
And this is the most important part.
To put this sort of on a spectrum,
you can see that prior to today.
You could test your apps on virtual devices,
such as the emulator and also Cloud Android,
which I'll briefly mention.
And then you could test it on physical devices
when they got upgraded.
Now, we have the ability to test it
on those physical devices with GSIs
while you're waiting for the upgrades to take place.
So GSI today is already published for both pi
and Android 10 on ASOP.
We build the generic system images on ci.android.com
for every change that gets uploaded it
to the ASOP master branch.
And we'll have detailed instructions
on how to use these GSIs.
We have also tested them on a bunch of devices.
We cannot test them on all devices because there's too
many of them.
But we've tested on a representative sample.
And we know they work.
If you were at the booth yesterday,
you saw them in action.
Now, the problem with GSI is that in order to test them,
you have to unlock your device.
Not all devices are unlockable.
You have to disable verified boot.
And we flash the system image by your manufacturer
with this GSI, thereby destroying it.
Well, we created an Android 10.
It's called dynamic system updates.
And they allow you to download that GSI
in a dual boot-like setup that does not
tamper with your factory ROM.
It can download GSIs, boot into them, reboot into them,
download several of them, and delete them
without touching your Samsung devices, data,
or factory images.
And DSUs are enabled on pixels 3, 3.8, and 4 today.
And we'll be rolling out to participating OEMs.
They're not required for Android 10.
But they will be probably available on a bunch
of devices, pixels for sure.
So GSI releases-- as I mentioned, we produce
GSIs for all beta releases.
And then when we push to ASOP, we issue GSIs there,
as well, and on a quarterly basis, thereafter,
as we publish security fixes and the critical bug fixes.
That's about it.
You can do awesome things with GSIs.
And Cloud Android is another virtual device
that you can use that is available on ASOP.
You can Google that, and instructions will come up.
And I think that's a wrap for me.
GSIs are the instructions are android.com/gsi.
And DSU is android.com/dsu.
Thank you.
[APPLAUSE]
[MUSIC PLAYING]