A/B And A-only Devices | Seamless Upgrades

-

A/B devices also called Dual partition devices are devices that have two slots (partitions) i.e an A slot and a B slot. A-only devices have just a single slot hence are called single partition devices. Android is always changing as updates are being released. At first, it was A-only devices that were in the game. But starting Android 7, there were some major changes, and this saw the introduction of the A/B partitioning system.

A/B devices unlike A-only have partitions (boot, system, radio, etc) in twos. That means you will have two boot partitions, two system partitions, two radio partitions, etc with each in the pair belonging to the first slot (A) and the other belonging to the second (B). This is contrasted as in A-only devices where partitions exist singly (i.e one boot, one system one radio, etc) and there is nothing like A and B slots.

But why did Google introduce such a change?

The A/B partitioning system has a lot of advantages as we will see below. Up to Android 9, some manufacturers still released phones with the A-only partitioning system. These include the brands of Transsion Holdings (Tecno, Itel, Infinix). These brands have always been known to reluctantly grab changes in the Android ecosystem – 5G is out yet they massively produce devices with a lack of 5G support.

Even when a new Android version is being released, it will take a while for them to start giving out products with this new version as compared to brands like Google, Samsung, Xiaomi, etc who are very fast to provide the latest of what is being introduced to the smartphone ecosystem. With Android 10 however, almost all Manufacturers seem to have tilted towards the A/B partitioning system. But of what good is this type of system by the way?

Comparing A-only And A/B Partitioning

Let’s check out these two systems and judge for ourselves which one seems to be the best approach.

1. Disadvantages Of A-only Partitioning

Phones with A-only slots need to go to recovery mode when applying an update. By so doing, the user has to wait for long until the update is completed before they can use their phone. In case of the update crashes, that’s bad news, you have to look for ways to fix your device to get it working again. Also, applying an update to a rooted A-only device can be a big problem compared to an A/B device. With all these in mind, Google later introduced a more secure way of doing things. This is of course with the introduction of the A/B partitioning.

2. How A/B Partitioning Works And The Advantages

— Dual partition devices are just like two A-only devices joined together i.e they have two slots (A and B). Slot A has its own partitions (system, boot, radio, etc) while slot B has its own partitions. By default, one slot is active (the one in use) while the other is inactive. The active slot is the one you will boot into to use your phone. Let’s say slot A is the active one, therefore slot B is inactive and unusable. Now the next time an OTA or a custom ROM flashing takes place, it is applied to the inactive slot B. Upon rebooting, update_verifer would trigger a slot switching such that slot B becomes the active, primary, bootable and used (current) slot – the one you’ll now boot into – while slot A now becomes the secondary and inactive slot till the next OTA or custom ROM installation. Since the update is applied to the inactive slot, that means the user can still continue using their phone as everything is going on in the background. When the update is completed, it waits for the user to reboot. Once the user reboots, slots now switch and the inactive slot that the update was applied to now boots as the active one. This reboot is fast (like a normal reboot) since everything has already been set up in the background and unlike that of A-only where things need to be set up and optimized during the reboot process causing it to be long. With this said, the A/B partitioning is, therefore, a very good idea. This is the same update approach that Chromebooks (ChromeOS) use too.

— The Dual partitioning system also handles updates such that there will be no issues in cases where there’s a failure/crash. When an OTA crashes or there’s a dm-verity issue, you will continue to run the old OS i.e the device will reboot back into the old partition and remain usable unlike in A-only where the device becomes unusable when an OTA crashes. Therefore, there’s a high possibility of you still using your phone in case an OTA fails. You could just reboot the device and give the update another try. This type of update used is called seamless update.

— Also as there are two slots, in case one develops a fault, the other is still there to survive you unlike in A-only devices.

— Updates can be streamed to A/B devices, instead of downloading the package before installing it. This means it is not necessary for the user to have enough free space on /data or /cache to store the update package. The cache partition is no longer used to store OTA update packages, so there is no need to make sure that the cache partition is large enough for future updates.

3. Advantages Of A-only Partitioning/Disadvantages Of A/B Partitioning

So does A-only partitioning have some advantages and does the A/B partitioning have some disadvantages?

— Well, nothing is completely worthless. Every good thing has some bad sides and every bad thing should definitely have some good sides too. One of the advantages of A-only devices is the ease with which you can flash files, especially through ADB/Fastboot. To core Android users, this is no excuse. Being in the game, they already know everything concerning flashing both A-only and dual partition devices. Therefore, they see no advantages that A-only devices have over A/B. But to those who are still new to rooting and flashing or who have not been used to the way flashing on the A/B system works can see A-only devices as easy to flash. And there’s a little upper chance that they will usually brick an A/B device compared to an A-only. However if they can understand the basics about flashing A/B devices and take into consideration the switching of slots most importantly, then they will see A/B devices as being good in all aspects. If you are installing an OTA or a custom ROM (through a custom recovery like TWRP), then this point of comparison is baseless. This is because everything will be taken care of and slots will automatically be chosen for you (you don’t need to select which slot to flash or reboot into). But using ADB/Fastboot, this point of comparison is highly important for newbies.
One thing to note is that the more you stay in the rooting, flashing and customization fields, the more you get used to them and easily understand whatever changes are applied in newer Android versions.

4. Storage Space

— Since A/B partition devices have double slots with each slot having its own partitions, the question that should come into a user’s head is that do dual partition devices take up twice the storage space as compared to single partition devices? Google has worked on this. Though A/B devices take up space more than single partition devices, the difference is slight and not double as explained by the table below for an A/B and an A-only Google Pixel device

PartitionsA/BA-only
System2048MB × 24096MB
Vendor300MB × 2300MB
Cache0MB100MB
Radio70MB × 270MB
Bootloader50MB × 250MB
Boot32MB × 232MB
Recovery0MB32MB
Total5000MB4680MB

You can see that though there’s almost a double number of partitions in A/B, the difference in storage space is small (320MB). This is so because the storage space of some partition like system have been divided into two slots and there has been some sort of high compression. Lowering of the system partition in A/B devices is another drawback for flashers. The chances of them coming across a custom ROM whose size is larger than the system partition or a custom ROM + GApps (and other files) combination being larger than the system partition has increased compared to A-only (having a large single system partition). By so doing, flashers will need an added task to either increase the size of the system partition (if the device is dynamic) or remove some stuff from the custom ROM to reduce its size. This of course means they will be going an extra mile and will need the required knowledge to do so. A-only users have an upper hand here.

Also, take note that some partitions like cache and recovery have been removed in A/B devices (the cache partition is an option to be included or omitted). The recovery partition has now been moved into the boot partition. Since there’s no separate recovery partition here, that means flashers will no longer be able to use the popular and simple methods/commands to flash recovery like fastboot flash recovery recovery.imgfastboot flash recovery twrp.img, etc. This means A-only users have an upper hand here too. However, I have provided an article on how A/B users can flash in such cases (they need to use a different approach).

Checking The Type Of Partitioning Your Phone Uses

To check if your phone is the A/B type (that supports seamless updates) or the A-only type (that doesn’t support seamless updates), download the Treble Info app from Play Store. Launch it. Now look under the Seamless Upgrades section to see which category your device falls into. The photo below is the Treble Info result for Tecno Spark 4 KC8. It shows the phone doesn’t support seamless upgrades hence, it’s an A-only Partition device.

Device Treble Info
Device Treble Info

Share this article

Recent posts

Google search engine

Popular categories

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Recent comments