[HTC One A9] Dakeryas:
As for editing the misc partition to downgrade with S-ON, the conv=notrunc option is necessary, otherwise dd will truncate the file after address 2208...

I suggesting pulling the mmcblk0p28 file first to one's computer to play around and make sure that the commands do what they should:

~$ adb pull /dev/block/mmcblk0p28 .

and then reading the partition with od (hexdump works if you do not have od)

~$ od --address-radix=decimal --width=16 --format=c mmcblk0p28

0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0002048 H T C _ _ 6 2 1 \0 377 377 377 377 377 377 377
0002064 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0002080 D e v i c e W a r m B o o t \0 377
0002096 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
0002112 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0002128 C E S e r i a l I n U s e \0
0002144 D e b u g C a b l e E n a \0
0002160 C E U S B I n U s e \0
0002176 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0002208 2 . 1 6 . 7 0 9 . 3 \0 \0 \0 \0 \0 \0
0002224 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0002672 \0 \0 \0 \0 F F F F F F F F F F F F
0002688 F F F F F F F F F F F F F F F F
*
0002736 F F F F F F F F \0 \0 \0 \0 \0 \0 \0 \0
0002752 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0003104 021 314 252 335 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0003120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0003136 \0 \b \0 \0 017 017 017 017 K \0 \0 \0 \0 \0 \0 \0
0003152 324 m 235 Z 037 n 235 Z \0 \0 \0 \0 \0 \0 \0 \0
0003168 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0005104 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 F N O C
0005120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0009200 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 F N O C
0009216 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
1048576

which displays the address/offset (on the left column) in decimal numbers and prints 16 (width=16) one-byte characters (format=c) on each line.

From address 2208, we see that my OS number is unfortunately, 2.16.709.3 and the highest model matching for this HTC__621 2PQ910000 model is 1.27.709.15, for which the misc edition should not be enough because of the major OS update (Marshmallow to Nougat). In any case, let us confirm that conv=notrunc is necessary:

$ echo -ne "1.27.709.15\x00" | dd conv=notrunc of=mmcblk0p28 bs=1 seek=2208

by checking the result

$ od --address-radix=decimal --width=16 --format=c mmcblk0p28

0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0002048 H T C _ _ 6 2 1 \0 377 377 377 377 377 377 377
0002064 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0002080 D e v i c e W a r m B o o t \0 377
0002096 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377 377
0002112 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0002128 C E S e r i a l I n U s e \0
0002144 D e b u g C a b l e E n a \0
0002160 C E U S B I n U s e \0
0002176 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0002208 1 . 2 7 . 7 0 9 . 1 5 \0 \0 \0 \0 \0
0002224 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0002672 \0 \0 \0 \0 F F F F F F F F F F F F
0002688 F F F F F F F F F F F F F F F F
*
0002736 F F F F F F F F \0 \0 \0 \0 \0 \0 \0 \0
0002752 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0003104 021 314 252 335 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0003120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0003136 \0 \b \0 \0 017 017 017 017 K \0 \0 \0 \0 \0 \0 \0
0003152 324 m 235 Z 037 n 235 Z \0 \0 \0 \0 \0 \0 \0 \0
0003168 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0005104 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 F N O C
0005120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0009200 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 F N O C
0009216 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
1048576

which exhibits the right values between bytes 2208 and 2224, whilst retaining the rest of the file all the way to the 1048576th byte.