Generic list of partitions & how to read the partition table using ADB

The purpose of this guide is to try to guide you towards the knowledge of Android and KaiOS partitions.

If not in depth, I wanted to make you aware of what you will touch if one day you decide to manipulate them by flashing your device.

We will begin by first discovering their position, their name and finally their function.

How to read the partition table

Being both based on linux, we can list them using some simple commands from the adb shell.

  • The command ls is useful to explore the content of our device, to learn more about it. To list the our partitions "by name" on Qualcomm-based KaiOS models we can use the command:

ls /dev/block/bootdevice/by-name

In the example I performed this command on a Doro 7060. In this way we can better understand what the output of the next command corresponds to.

On Spreadtrum-based KaiOS devices the path is different, for example you can try the command:

ls /dev/block/platform/soc/by-name

  • The cat command can be used to view text files, such as /proc/mounts:

cat /proc/mounts

In this way we have a list of all the partitions with more infos, divided into six columns:

  1. The device that is mounted;

  2. The mount point;

  3. The file-system type;

  4. The munt option, it can be read-only (ro) or read-write (rw);

  5. The dump value designed to match the format used in /etc/mtab;

  6. The fsck order value in /etc/mtab.

Example:

rootfs / rootfs ro,seclabel,relatime 0 0

rootfs (device), / (mount point), rootfs (file-system type), ro (mount option), 0 (dump) and 0 (fsck order).


This is what you can read on the Nokia 8110 4G using this command:
On the Doro 7060 we can read this:

Know the partitions

We can use a simple command to extract all the partitions if we have root privileges on our device. But what role do all these dumps play in the functioning of the system? Let's find out together:

The main partitions

  • boot : this is the partition that enables the phone to boot (hence the name). It includes the kernel and the ramdisk. Without this partition, the device will simply not be able to boot. Wiping this partition from recovery should only be done if absolutely required and once done, the device must NOT be rebooted before installing a new one, which can be done by installing a ROM that includes a /boot partition.

  • system : this partition basically contains the entire operating system, other than the kernel and the ramdisk. This includes the KaiOS user interface as well as all the system applications that come pre-installed on the device. Wiping this partition will remove KaiOS from the device without rendering it unbootable, and you will still be able to put the phone into recovery or bootloader mode to install a new ROM (if the latter have test keys).

  • recovery : it can be considered as an alternative boot partition that lets you boot the device into a recovery console for performing advanced recovery and maintenance operations on it. An entire page on this site is dedicated to it.

  • data : Also called "userdata", the data partition contains the user’s data (where your contacts, messages, settings and apps that you have installed). Wiping this partition essentially performs a factory reset on your device (from the Settings app or in Recovery Mode), restoring it to the way it was when you first booted it, or the way it was after the last official or custom ROM installation. When you perform a wipe data/factory reset from recovery, it is this partition that you are wiping.

  • cache : This is the partition where KaiOS stores frequently accessed data and app components. Wiping the cache doesn’t effect your personal data but simply gets rid of the existing data there, which gets automatically rebuilt as you continue using the device.

  • misc : This partition contains "miscellaneous" system settings in form of on/off switches. These settings may include CID (Carrier or Region ID), USB configuration and certain hardware settings. This is an important partition and if it is corrupt or missing, several of the device’s features will will not function normally.

  • sdcard : This is not a partition on the internal memory of the device but rather the SD card. In terms of usage, this is your storage space to use as you see fit, to store your media, documents, ROMs etc. on it. Wiping it is perfectly safe as long as you backup all the data you require from it, to your computer first. Though several user-installed apps save their data and settings on the SD card and wiping this partition will make you lose all that data.

(source)

Unique to your phone

  • DDR : this partition is related to the RAM memory cache.

  • fsc : submits Scala compilation jobs to a compilation daemon (linux).

  • fsg : encrypted container in proprietary format.

  • modemst1 and modemst2 : these partitions act as caches for modems and other partitions related to sensitive data. Must be erased when you flash the Modem partition.

  • pad : ND

Other dumps

  • aboot : "Application Bootloader" boots System or Recovery, abootbak restores it.

  • config : contains replication topology and other configuration data.

  • devinfo : device specific informations about disk devices on standard out.

  • keystore : provides digital signing and verification operations.

  • modem : it contains the necessary radio modules without which it cannot connect to the network on the device.

  • oem : where OEM customizations are preserved.

  • persist : is responsible for WiFi (MAC address), Bluetooth, device proximity sensors and other stuff.

  • rpm : Ranish Partition Manager, rpmbak restores it.

  • sdl1 : Secondary BootLoader, it boots aboot (so phone will not work without), sbl1bak restores it.

  • sec : ND

  • simlock : on an operator's SIM

  • splash : contains the device startup screen

  • ssd : solid-state drive

  • traceability : ND

  • tunning : contains IMEI and other sensitive data

  • tz : Time Zone database, tzbak restores it.

ND = Not Defined

If you have further reports to add about how partitions work