[One (M8) Android Development] Giblet-dono:
I see many questions about flashing the boot.img

Basically: boot.img is the kernel of the device

If you have already installed ElementalX (latest version) you don't need to flash the boot.img

If you already use a different custom kernel which incorporates the kexec hardboot patch you don't need to flash the boot.img

If you use a sense rom (such as ViperOne, InsertCoin or ARHD) You can flash elementalX latest version and you don't need to flash boot.img

If you do need to flash the boot.img make SURE you use the right version and flash trough fastboot!

use the following command in fastboot:

fastboot flash *bootimage name*.img

If you don't know where or how to use the above, then don't use multirom!

Read up on fastboot and ADB first they are a flashers best friends!

In the past I have used apps like flashify with limited success

Once I flashed a recovery using one of these apps and it bricked my phone because it skipped some device checks.

The second problem I see coming up a lot is that after flashing a secondary rom the primary rom boots to the secondary or doesn't work

This is a problem with the updater scripts of these roms!

I have described the problem in the M7 thread already:

The problem why some SECONDARY roms flashing the PRIMARY partition

there are several ways an updater script can handle the partition mounting (I have not even described all!)

A partition can be hard mounted:

mount("ext4", "EMMC", "/dev/block/mmcblk0p35", "0", "/system");

-> here the partitionblock mmcblk0p35 get's mounted to the mountpoint /system

In other words when you copy something to /system it will copy it to /dev/block/mmcblk0p35

Or soft/variable mounted:

mount("ext4", "EMMC", "system", "/system");

Here the partition named system will get mounted to the directory /system

Another soft/variable mount:

ifelse(is_mounted("/system") == "/system", unmount("/system"));
run_program("/sbin/busybox", "mount", "/system");

Here the script first check wether system is already mounted, and only if it is not it will mount the system partition variably

Another way is by formatting and mounting it in one line:

format("ext4", "EMMC", "/dev/block/mmcblk0p35", "0", "/system");

In simpler words: Format partition block mmcblk0p35 and mount it as /system

Now why do I explain all this?

When a script hard mounts a block as the system partition, a rom will write exactly there

See it as a book, A hard mount would be: Chapter "system" is from page 12 to 19

A soft mount would be: Chapter "system" is chapter "system"

If the writer now wants to paste chapter "system" he has (re)written and does it trough the hardmount,

it could be that there is already some text on pages 12-19 and he just overwrites them without thinking

It could be that the previous chapter goes on till page 14, or that its a completely different chapter all together

No when he would have used the softmount he would search for the chapter title "system' in his book, and paste his (re)written chapter there

The former is exactly what's happening with these roms that install over the Primary rom.

They hard mount the partition block, and as such just overwrite the primary partition

Most AOSP/AOKP/CM based roms don;t use this practice anymore and will install fine.

Some sense roms will install fine, but others won't

Insertcoin doesn't for instance

If you want to use insertcoin you have a few possibilities:

- Use it as your Primary Rom

- Edit the updater-script file inside the rom zip to make it soft mount

- Backup your primary rom, install insercoin as your primary rom, backup insertcoin, load your primary rom backup and install your backup of insertcoin as a secondary rom.

If any of the above is incorrect please feel free to shoot me a message!