Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Is your Android phone Treble Supported and are Seamless Upgrades supported?

10 views
Skip to first unread message

Wally J

unread,
Oct 9, 2023, 2:50:56 AM10/9/23
to
Is your Android phone Treble Supported and are Seamless Upgrades supported?
<https://i.postimg.cc/VNn78vF0/treble01.jpg>

https://play.google.com/store/apps/details?id=tk.hack5.treblecheck
Treble Info
<https://play.google.com/store/apps/details?id=tk.hack5.treblecheck>
Project Treble = Supported
VNDK version = 31.0
Linker namespace isolation = VNDK is not in lite mode
Manifest location = Modern
System as Root = Enabled
Seamless Upgrades = Unsupported
Dynamic Upgrades = Unsupported
Dynamic Partitions = Enabled
CPU architecture = ARM64
Binder architecture = 64 bit

Mine supports Treble.
But not seamless updates.

What about yours?

Andy Burns

unread,
Oct 9, 2023, 3:18:21 AM10/9/23
to
Wally J wrote:

> Is your Android phone Treble Supported and are Seamless Upgrades supported?
> https://play.google.com/store/apps/details?id=tk.hack5.treblecheck
>
> Dynamic Upgrades = Unsupported

^^^ are you sure about this? ^^^

> What about yours?

Pixel 5a android 14

Project Treble = Supported
VNDK version = 34.0
Linker namespace isolation = VNDK is not in lite mode
Manifest location = Modern
System as Root = Enabled
Seamless Upgrades = Enabled

Wally J

unread,
Oct 9, 2023, 3:41:31 AM10/9/23
to
Andy Burns <use...@andyburns.uk> wrote

>> Dynamic Upgrades = Unsupported
>
> ^^^ are you sure about this? ^^^

Ooops. That was a thinko/typo as it says "Seamless Upgrades" & "Dynamic
Partitions", which I somehow mixed into a non-existent category of
"Dynamic Upgrades".

>> What about yours?
>
> Pixel 5a android 14
>
> Project Treble = Supported
> VNDK version = 34.0
> Linker namespace isolation = VNDK is not in lite mode
> Manifest location = Modern
> System as Root = Enabled
> Seamless Upgrades = Enabled
> Dynamic Partitions = Enabled
> CPU architecture = ARM64
> Binder architecture = 64 bit

Thanks for the comparison (and the correction).

Pixel 5a android 14
Project Treble = Supported
VNDK version = *34.0*
Linker namespace isolation = VNDK is not in lite mode
Manifest location = Modern
System as Root = Enabled
Seamless Upgrades = *Enabled*
Dynamic Partitions = Enabled
CPU architecture = ARM64
Binder architecture = 64 bit

Galaxy A32-5G android 13
Project Treble = Supported
VNDK version = *31.0*
Linker namespace isolation = VNDK is not in lite mode
Manifest location = Modern
System as Root = Enabled
Seamless Upgrades = *Unsupported*
Dynamic Partitions = Enabled
CPU architecture = ARM64
Binder architecture = 64 bit

Anyone else?
--
The whole point of Usenet is to find people who know more than you do.
And I will readily admit that Andy Burns knows more than I ever will.

Theo

unread,
Oct 9, 2023, 6:13:33 AM10/9/23
to
Pixel 4a (4G) Android 13 GrapheneOS:

Project Treble = Supported
VNDK version = 33.0
Linker namespace isolation = VNDK is not in lite mode
Manifest location = Modern
System as Root = Enabled
Seamless Upgrades = Enabled
Dynamic Partitions = Enabled
CPU architecture = ARM64
Binder architecture = 64-bit

Theo

Wally J

unread,
Oct 9, 2023, 10:10:14 PM10/9/23
to
Theo <theom...@chiark.greenend.org.uk> wrote

> VNDK version = 33.0
> Seamless Upgrades = Enabled

The main differences between the Pixels and Samsung seem to be:

VNDK version = 33.0 or 34.0 for Pixels, 31.0 for (my) Samsung
Seamless Upgrades = Enabled for Pixels, Unsupported for Samsung

Is that a trend?

BTW, I have never heard of VNDK.
Is there any significance to the VNDK version differences?

Luckily ignorance can be cured (it's stupidity that can't be cured).
<https://source.android.com/docs/core/architecture/vndk>

It's confusing at the first pass (or even the second or third pass),
but it seems there are two major components of Android with Treble.
Vendor Native Development Kit (VNDK)
Generic System Image (GSI)

Am I right in assuming that the GSI is the core stuff where the VNDK is the
vendor-specific stuff? Or maybe it's just what the vendor uses to develop?

What's the significance (if any) to VNDK versions being higher on Pixels?

Theo

unread,
Oct 10, 2023, 8:16:11 AM10/10/23
to
Wally J <walte...@invalid.nospam> wrote:
> Theo <theom...@chiark.greenend.org.uk> wrote
>
> > VNDK version = 33.0
> > Seamless Upgrades = Enabled
>
> The main differences between the Pixels and Samsung seem to be:
>
> VNDK version = 33.0 or 34.0 for Pixels, 31.0 for (my) Samsung
> Seamless Upgrades = Enabled for Pixels, Unsupported for Samsung
>
> Is that a trend?
>
> BTW, I have never heard of VNDK.
> Is there any significance to the VNDK version differences?
>
> Luckily ignorance can be cured (it's stupidity that can't be cured).
> <https://source.android.com/docs/core/architecture/vndk>
>
> It's confusing at the first pass (or even the second or third pass),
> but it seems there are two major components of Android with Treble.
> Vendor Native Development Kit (VNDK)
> Generic System Image (GSI)
>
> Am I right in assuming that the GSI is the core stuff where the VNDK is the
> vendor-specific stuff? Or maybe it's just what the vendor uses to develop?

I think so - there's regular Android which is GSI and there's /vendor which
is the firmware, libraries, etc provided by the vendor.

In a Windows analogy the GSI is the Windows DVD from Microsoft and the VNDK
is the CD of drivers that comes with your motherboard. It is often possible
to install Windows 10 with the CD of drivers that came with Windows 7, but
there may be vulnerabilities and some things may not work.

> What's the significance (if any) to VNDK versions being higher on Pixels?

https://source.android.com/docs/core/architecture/vndk#vndk-versioning

It appears to be versioned according to the platform SDK (ie the Android API
number) but the version can fall behind:

Android 12: 31
Android 12L: 32
Android 13: 33
Android 14: 34

I'd guess your phone was originally released with 12 and Samsung have
shipped an upgrade to 13, but not upgraded the VNDK.

The Pixel 4s and 5s use Qualcomm SoCs while the Galaxy A32 5G uses a
MediaTek MT6853 SoC; MTK are notorious for not providing updates. It seems
possible that Samsung have just upgraded the Android OS after Mediatek
didn't ship a new VNDK.

Theo

Wally J

unread,
Oct 10, 2023, 2:42:32 PM10/10/23
to
Theo <theom...@chiark.greenend.org.uk> wrote

> In a Windows analogy the GSI is the Windows DVD from Microsoft and the VNDK
> is the CD of drivers that comes with your motherboard.

This VNDK stuff is confusing to me, but mainly because I never heard of it
until this thread, so I don't have _any_ background whatsoever on it.

But I'm always trying to figure out how "Android hardware" updates itself.
So it's important for me to figure out how this VNDK stuff updates itself.

Thanks for that analogy, which I'll go with for now that the GSI is the
generic system image (which every phone hardware must be able to run) and
then the VNDK "system image" which is the OEM's driver-like-stuff.

I think there's a chance that the VNDK is universal though - as it might be
more what the vendor is "allowed to play with" as the GSI is inviolate.

>> What's the significance (if any) to VNDK versions being higher on Pixels?
>
> https://source.android.com/docs/core/architecture/vndk#vndk-versioning

Thanks for that link, which says the alogorithm is this...
If BOARD_VNDK_VERSION is not equal to current, use BOARD_VNDK_VERSION.
If BOARD_VNDK_VERSION is equal to current:
If PLATFORM_VERSION_CODENAME is REL, use PLATFORM_SDK_VERSION (e.g. 28).
Otherwise, use PLATFORM_VERSION_CODENAME (e.g. P).

It appears to be "either" the board version or SDK version from that, which
is very confusing because the board version is hard coded (isn't it?) and
the SDK version is not hard coded (right?).

So if the VNDK version is the board version, it won't change, right?
If the VNDK version can take the SDK version, it can change, right?

That's confusing to me but maybe I'm mis-interpreting the algorithm?

> I'd guess your phone was originally released with 12 and Samsung have
> shipped an upgrade to 13, but not upgraded the VNDK.

This is close. The Samsung A32-5G (SM-A326U) shipped in January 2021 with
Android 11 but it was upgraded to 12 and then 13 (mine was given to me for
free from T-Mobile so the carrier bloatware is theirs but I don't think the
carrier can have any effect on the VNDK version, can it?).

> The Pixel 4s and 5s use Qualcomm SoCs while the Galaxy A32 5G uses a
> MediaTek MT6853 SoC; MTK are notorious for not providing updates. It seems
> possible that Samsung have just upgraded the Android OS after Mediatek
> didn't ship a new VNDK.

I fully believe everything you said, which is that MediaTek needs to supply
the VNDK update from VNDK 31 to 33 or 34 while Samsung provided the Android
OS updates from Android 11 to 12 to 13 (meanwhile Google supplied the
Mainline updates to September 2023).

One thing about Android is that I do NOT understand _how_ it updates.
This VNDK stuff was new to me this week - but you helped me a bit.

Thanks for trying to help me understand VNDK updates - much appreciated.

I'm still not sure if the VNDK is hard coded or if it can be changed,
but if we look at a few phones before/after an update, we can tell.

Theo

unread,
Oct 11, 2023, 8:07:31 AM10/11/23
to
Wally J <walte...@invalid.nospam> wrote:
> So if the VNDK version is the board version, it won't change, right?
> If the VNDK version can take the SDK version, it can change, right?
>
> That's confusing to me but maybe I'm mis-interpreting the algorithm?
...
> One thing about Android is that I do NOT understand _how_ it updates.
> This VNDK stuff was new to me this week - but you helped me a bit.
>
> Thanks for trying to help me understand VNDK updates - much appreciated.
>
> I'm still not sure if the VNDK is hard coded or if it can be changed,
> but if we look at a few phones before/after an update, we can tell.

I think the thing here is to understand how Android is developed:

1. Google writes Android

who passes it to

2. The silicon vendor (Qualcomm, MediaTek, etc) who write the Board Support
Package for a particular piece of silicon: drivers, libraries, firmware etc

who passes it to

3. The phone vendor (Samsung, Xiaomi, etc) who makes their own customisations
(OneUI, TouchWiz, MIUI, etc) as well as drivers for their own hardware
(fingerprint reader, cameras, etc)

who passes it to

4. The carrier (Verizon, etc) who makes their own customisations (baseband
firmware)


The VNDK is mostly written as part of the BSP for the silicon by the silicon
vendor, and then customised by the phone vendor for a particular phone.
When building the filesystem there's a /vendor tree, which is the VNDK.

On the old Samsungs I've looked at, the baseband firmware is a separate
partition so is not part of the VNDK. The carrier may also add
customisations to the main OS (the carrier's app, for example) but that's
not related to the VNDK.

In the case of your Samsung, the parties are:
Google/Mediatek/Samsung/T-Mobile

in the case of Pixels up to 5a:
Google/Qualcomm/Google/none

and Pixel 6 and later
Google/Google/Google/none

and this reduced game of pass-the-parcel is presumably why the VNDK is more
up to date on the Pixels.

Theo
0 new messages