Quote:
Originally Posted by thp1017
Hmm, pretty sure it is the right place. On startup (or disconnect, etc.), init calls rcS, which is in /etc/init.d. As part of that, there is a check to see if KoboRoot.tgz and upgrade folder exist in .kobo
If so, it untars KoboRoot.tgz, and calls upgrade-wifi.sh. In that script, at the start, it does the MD5 check - which, if it fails, causes the upgrade process to abort immediately. If its fine (or the md5 file doesn't exist), the firmware is applied in generic-upgrade.sh (using dd, etc., that george.talusan mentioned as a way to fix the Glos that were bricked). So it'd be easy to add a few lines in to check the version.
|
OK, I should have reread the code and not relied on memory.
And your probably right. The code is fairly generic and there probably is a way to add some sort of test.
They would still have a problem with older devices. The code we are looking at is not the version of the code that actually loads the new firmware. When firmware is being loaded, it is by whatever version of the code that is already on the device. If they fix this now, then it will be OK for the next upgrade. But, a factory reset takes the device back to an older firmware that didn't have that check. This shouldn't stop them adding the test.
After writing this, I have the feeling I am missing something that makes it harder than it looks from here.