From 0c1370b5f1b3e8abc934ea913a4377f05f32e4a9 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Mon, 7 Aug 2017 22:05:24 +0300 Subject: Initial static build --- docs/wiki/Partition-layout/index.html | 74 +++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 docs/wiki/Partition-layout/index.html (limited to 'docs/wiki/Partition-layout/index.html') diff --git a/docs/wiki/Partition-layout/index.html b/docs/wiki/Partition-layout/index.html new file mode 100644 index 0000000..6bfb2d5 --- /dev/null +++ b/docs/wiki/Partition-layout/index.html @@ -0,0 +1,74 @@ + + + + + + postmarketOS + + + + + + + + + + + + + + + +
+
+ +

+ + postmarketOS +

+
+ + +

Partition layout

+

General partition layout (installation image)

+
/dev/installp1 # pmOS boot (contains kernel, initramfs, initramfs-extra)
+/dev/installp2 # pmOS root (encrypted, unless --no-fde is specified)
+ + +

SD card

+

This is the least awkward layout - both partitions from above get directly created on the SD card. If your device has a sdcard slot, it is recommended to use it. Because then you don't wear down the internal flash storage of the device and don't need to worry about the phone's internal storage partition layout.

+

Usage:

+
$ ./pmbootstrap.py install --sdcard /dev/mmcblkX
+ + +

Android internal storage

+

We don't want to modify the partition layout on the internal storage of Android systems. Because this seems somewhat risky, and then users couldn't simply install another ROM such as LineageOS anymore. So we came up with the following:

+

The Android internal storage is already partitioned - the layout seems to be different for every device, as well as the numbers they have assigned. But most notably the devices have the following partitions:

+
boot
+system
+userdata
+ + +

We usually flash a boot.img file (which is the kernel + initramfs) to Android's boot partition (see also: [[deviceinfo_flash_methods]]) - because that is what works and what all other ROMs do.

+

Now the interesting part is the system partition, where we flash our installation image. But the installation image already has a partition layout and own partitions! So you will have subpartitions. In the end, it will look like this:

+
systemp1 # pmOS boot partition, only initramfs-extra gets used from there
+systemp2 # pmOS (un)encrypted root filesystem
+ + +

The initramfs (in the boot.img file!) will automatically find and mound the pmOS boot and root partition, load the initramfs-extra (which contains additional files, it was split to save space) and take care of booting through until OpenRC takes over.

+

The userdata partition is not used yet (proposal to do that is in #60). But as we are pretty flexible, you can also flash pmOS to the userdata partition, if it has more space and you can't fit it on the system partition. The initramfs will detect it anyway. Just make sure, that you don't have it flashed to both partitions! +To flash to the userdata partition instead of the system partition, you currently need to change the config here.

+

Future ideas

+

There might be scenarios, in which the partition type of the system partition can not be changed through the flasher, because it only allows yaffs2 or simg with ext4 support (during research for the mozilla flame, we found that to be the case - however, it also has an SD slot, so we did not continue this way).

+

A proposal we have for that case, is to have one big ext4/yaffs partition, and include the whole system image file inside that. Then we would adjust the initramfs code to find the boot and root partitions inside that, and teach it how to resize the whole thing to the maximum partition size. We already did some experiments, and so far everything worked (talk to drebrez or ollieparanoid).

+ +
+
+ + \ No newline at end of file -- cgit v1.3.1