"Main Version is older" fix
What is this thread about?
There is a known issue where some N1 phones cannot be flashed via the PASSIMG method because their boot loader says "Main version is older!" and stops.
Why is this a problem anyway?
If your bootloader is locked, you cannot flash the stock ROM easily.
If your bootloader is unlocked, you still cannot flash all partitions via fastboot. (A lot of partitions are protected for writing).
What is the "Main Version"?
The Main Version is a string value read and used by the bootloader. It's stored either in the boot loader image itself, or in the misc partition.
You can see your phone's Main Version by bringing it in fastboot mode and executing the following command:
And what is older than what?
$ fastboot getvar mainver
Every PASSIMG.ZIP file contains a android-info.txt file that dictates to the bootloader, among other things, the main version that this PASSIMG will bring the phone to. For example, for the commonly used FRG33 PASSIMG file, the main version is 2.16.1700.1. So, the main version on the PASSIMG file is older than the main version of the bootloader on the phone.
So, the phone will be downgraded with that PASSIMG, what's the problem?
Ask HTC or Google that question. I give up on trying to understand why they do not allow downgrading on a dev phone that can officially be unlocked.
Why does this affect only a batch of N1 and not all of them?
I can only speculate on this. It certainly means different production batches with different bootloaders.
This could be due to SLCD vs AMOLED, or an other production differentiation that was never made public by HTC.
So, we need a PASSIMG file stating version 2.18.1700.1 or later, right?
Yes, that's correct. It also is your lucky day, I have digged up such a file online after a week of searching (yes, it was that hard to find it) and I have mirrored it.
Here you go: