Retaining Root & su "_mktemp" error.
I flashed this successfully but did not retain root. Apparently OTARootkeeper worked, I did have a copy of su on the system somewhere (/system/xbin or /system/bin) but it failed to run. I think users need to be aware of this possibility and be prepared to wait for a fix should it occur.
The issue seems to be the version of su installed by pressing the "update" button in Rootkeeper. I did press the Update and "Protect root", then "Temp. un-root", then "Restore root" before flashing. The update said I was at the latest version. I can't run it to find out which version it is, having since managed to format the / file system so I no longer have a copy to poke around in. However, the issue generates an error along the lines of:
Code:
... libreloc cannot locate "_mktemp",
UNABLE TO LINK EXECUTABLE
Posted from memory but if you have the error you'll recognize it.
At the moment there is no fix and I have to wonder if there will be a way to correct this issue. It will at least probably require reflashing again. I managed to correct my errors after trying to flash a modified copy of system.img which resulted first in a "flash error" and a boot loop requiring BP tools to load the OS. Trying to successfully flash the first few files to reset the error bit resulted in a "Boot failure" message and no boot at all. I thought I was bricked and the average person probably would be. But I recognized that the flash error has something to do with an incorrect checksum or other firmware-based security related data contained in the pre-flash files. There are three of them listed below:
Code:
allow-mbmloader-flashing-mbm.bin
mbmloader.bin
mbm.bin
cbt.bin
The first file is flashed followed by a reboot then the second two are flashed followed by a reboot continuing with flashing cbt.bin and the actual system made up of various partitions stored as .img files. The .img files are not all the same. At least one of them (system.img) is an exact binary-copy of the NAND or it's virtual equivalent as an ext4 file system. I was able to easily loop mount it under Ubuntu and edit it without any trouble at all. The boot, preinstall, grfs, recovery and radio image files are apparently varying file system copies. Probably in a yaffs or yaffs2 format. These are the actual system being installed. I'm not positive but I think the first three files and two reboots prepare the NAND for flashing by loading the flash code plus security descriptors or signatures into memory and rebooting followed by flashing
cbt.bin which I think contains a list of the image files you intend to flash, their partition types, sizes and probably an md5 for verification. Only then will the flash of the following image files succeed. So, while I was able to successfully flash system.img I was not able to boot and use the system. Not because it's a bad copy but because the flash code never finished so it was left in an error condition resulting in a bootloader error on startup. This is exactly what is intended by the eFuse design, it prevents a hacker from planting or flashing code that did not come from a repurable source, I.E. MotVerDev.
Recovery for me consisted of re-flashing the unmodified system.img, the version that matched the original security certificate. This cleared the flash error but left me with an apparently unbootable software system. I did accidentally attempt to flash boot.img which is probably what caused the next "Boot Failure" along with a list of SDB or SCD or whatever error codes. In any case now that I could successfully run recovery I power cycled the dude, entered recover and re-flashed ICS again. This time it did something unexpected, it deleted the "/" partition and rebuilt it from scratch. It then patched preinstall and system files and a few other things and finally finished with a success. Upon recycling the power I was back on my ICS build but there are now some developer options in the menus that weren't there before and a few slightly annoying screen flashes but I have a working phone again. The real surprise is that I no longer have a copy of OtaRootkeeper, su or su-backup. But the Superuser package is still installed. Strange things ...
Anyway, the short of it is that you could possibly get yourself into a situation where you can't root this device or can't
easily root this device and people need to know that before the flash this leaked, obviously still
developer firmware update.
Oh, if you do get stuck in the boot loader loop all you need to do is fastboot reflash the first three files listed above (RSD will do this for you) and exit RSD Lite and the error should be gone.