Jump to content

58MiB Update: What You Need To Know


Guest Darael

Recommended Posts

Some of the information below also applies to the 37MiB update, but I have no idea what, so don't ask me.  Do, however, feel free to give any extra information you have regarding the 58MiB patch.

 

  • It is not possible to use the AIO tool to root your phone while the 58MiB patch is applied.
  • It is possible to downgrade by flashing the 299MiB update.zip, but this tends to mess up the screen, needing an HDMI cable to actually do anything
  • Both recovery from this state and obtaining a 58MiB-patched rooted OSD are possible, and that is the subject of the next part of this post.

 

Recovery from the flashing-screen state is probably easiest to do by using fastboot to apply the 58MiB patch.  This is the method I'm going to suggest, but it's also doable by changing the GPU drivers in use (which has the advantage that it's not necessary to apply the dreaded patch) or by using HDMI output to OTA-upgrade (which has the advantage of not needing to have fastboot installed on your PC).  That said, the purpose of this post is to provide information about the patch, so that's the only method we'll discuss here.

 

THIS IS SLIGHTLY TECHNICAL, but frankly I don't think the rooted 58MiB-patched version of the ROM is ready for use by those who can't handle a bit of technical stuff yet (and if you disagree, feel free to update the AIO tools and drop me a link so I can put it in my mirror of such things).

 

IF YOU ARE A NON-TECHNICAL PERSON, STICK TO STOCK ICS (with as many changes using the AIO tools as you like)

 

So, to obtain a patched-yet-rooted phone (the same principle, adjusted as appropriate, should work for the 37MiB patch (but why would you bother?)):

  1. Gather your tools:
    1. Ensure that you have both adb and fastboot installed on your PC.  As mentioned, I'm writing for a relatively-technical audience, so I'm sure you can work out how.  Bear in mind that fastboot will need the "-i 0x8087" option and under Linux may need to be run as root.  If your phone is in the bootloader and fastboot still hangs on "<waiting for device>", try running it as root.
    2. Make sure you have both the Xolo stock ICS 299MiB update.zip and the corresponding 58MiB update.zip.  Both can be found on my server at http://darael.tpchq.org/SanDiego/updatezips/ if you don't have them already .  Unfortunately my mirror suffered a hard drive failure and I no longer have these files.  See post 7 in this thread for another way to get the 58M update.zip.  The former you'll only need to get back to stock if you aren't there already, but hey, it can't do any harm (unless you really can't afford to download 299MiB)
    3. Disable anything you applied with the AIO tool that is listed in this post's final section as not working with the patched ROM.  Fail to do this and you will be stuck in a bootloop and have to use fastboot to get out of it - if you find yourself in that situation, follow the advice on doing this whole thing a second time, hidden in my explanation for the use of fastboot in Step 5.
  2. Back everything up.  You shouldn't need to, but it's safest, just in case anything goes wrong.
  3. Enable USB debugging.  If you haven't done that automatically knowing what we're doing... shame on you.
  4. The next two steps can be skipped if you run through this process a second time (or more) on a given phone, as the changes made will persist pretty much whatever you do to it.
    1. Now you need a root ADB shell.  If you've applied the 58MiB update, then the first time you do this you'll need to downgrade and use the AIO tool to change the graphics drivers in use, or use an HDMI display to re-root.  Sorry.  There are guides elsewhere on this forum.
    2. Having obtained a rooted, stock-ICS phone, you can begin your prep.  su and busybox are in /system/xbin/.  You're going to need spare copies of these, because the 58MiB update will remove the suid and sgid permissions from su and may delete busybox.  As such, you need to stick copies somewhere that a) doesn't ignore suid and B) won't be overwritten by the update.  A quick look at the output of "mount" on the phone suggests /config is a good bet (and it is.  I tried it.  It works.).  Problem is, it's mounted read-only.  As such, we'll need to remount it.  I'll give the command to do that in a sec, but first:  The next thing is to make a new directory in /config - I'll call it reroot - and finally to copy su and busybox there.  The commands, in that order (with remounting /config read-only at the end for neatness) are as follows:
    3. mount -o remount,rw - /config
      mkdir /config/reroot
      cp /system/xbin/su /system/xbin/busybox /config/reroot/
      mount -o remount,rw - /config
      
  5. It's time to apply the update.  We're going to use fastboot rather than anything while the phone is booted, because it's much easier the second and later times one runs through this process due to not needing the screen to be usable (fastboot "update" to stock, use adb to reboot to the bootloader, fastboot to apply the patch).  Now, you can get the phone into the bootloader by powering it off, then on while holding the volume-down button, sure, but there's an easier way.  Issue "adb reboot-bootloader" on your computer.  This will also work if the dash is replaced with a space.
    1. Now that you're in the bootloader, flash the update.  I'm going to use /path/to/58M/update.zip as a shorthand, but if you're on Windows then you need to use Windows-style paths with backslashes and a drive letter if appropriate... obviously.  This is done as follows: "fastboot -i 0x8087 flash update /path/to/58M/update.zip"
    2. The phone should reboot, and you'll be in a fully-functional (but unrooted) patched ICS.  If you get bootlooped instead, you applied some mod or other that disagreed with the patch.  Use fastboot as above to revert to stock ICS, then immediately again to patch it - YOU DO NOT NEED TO REDO STEPS 1-4, which means you also do not need to be able to see what you're doing as you can use adb to get into the bootloader since USB debugging should still be enabled.  After we're done here you can apply the mods from the tool one at a time to see which caused the bootloop, and get back to me so I can add it to the incompatible-mods list.
  6. Finally, it's time to regain root.  Here's how.  First, get an adb shell.  It won't be a root shell but that doesn't matter right now.  Then issue the following commands:
    /config/reroot/su #this should work, and the last character of the prompt change to # - you're acting as root
    mount -o remount,rw - /system #mount /system read-write
    cp /config/reroot/su /config/reroot/busybox /system/bin #note NOT /system/xbin.  Don't know why but that no longer works.
    reboot #not strictly necessary but does no harm and keeps things clean
    exit #you may or may not get the chance before the reboot terminates the shell anyway
    exit #see above (first exited su, second exited adb shell)
    

    Be aware that you can skip everything past the hash (#) in those lines *or* leave it in.  They're comments and will have no effect either way.

  7. Your phone will reboot.  Congratulations; you have a rooted 58MiB-patched phone, and root-using apps should work fine (including insecure ADB, SuperUser, &c.).

Now, three more things and then I'll shut up for a bit.

 

Firstly, some of the options in the AIO tool are irrelevant to a phone in the state we've just got to - rooting, especially, would be kind of pointless since it's already rooted.  Don't bother!  I'll mention others

 

The following options from the AIO tool are confirmed to work on a rooted phone with the 58MiB patch - if something's not listed here or in the next list I for one would be grateful if someone would try it out and see whether or not it works:

  • Brick-fixing (of course; it works regardless of the ROM on the phone.  Just uses fastboot.)
  • Reverting to stock Xolo
  • Flashing boot logos
  • Enabling the µSD card slot
  • Swapping the internal storage and the card in the µSD slot
  • Probably others.  More testing needed.

The following I know NOT to work after applying the 58MiB patch and rerooting (and if anyone wants to provide fixes, I am happy to host them, but dev discussions should probably go in the main dev thread, or threads of their own, rather than here):

  • The "enable both SD card" option.  This WILL bootloop the phone.  Personally I suspect framework-res.apk rather than MediaProvider.apk to contain the conflict but I haven't the skill to prove anything.
  • Probably others.  More testing needed.
Edited by Darael
Link to comment
Share on other sites

Guest BlueMoonRising

Excellent work Darael, now I know where to send people who PM me when they've flashed a patched Xolo rom in desperate need for help  :P

 

Is there any advantage that I can't see to going this root if you've got an original Xolo or Orange ICS rom with say Flibblesans mods and the SD card enabled (and of course rooted)?

 

 

If any mods are around I think this thread could do with pinning please.

Link to comment
Share on other sites

Is there any advantage that I can't see to going this root if you've got an original Xolo or Orange ICS rom with say Flibblesans mods and the SD card enabled (and of course rooted)?

Well, I've heard mention of the update solving certain issues with overheating, but otherwise no, I don't know of any. It would help if we knew exactly what the update changed and why.

Link to comment
Share on other sites

Guest BlueMoonRising

BTW, Ricky Wyatt developed a way to combine both USB and SD card storage into one. He would only pass on details to people who PM'ed him as I think he (wisely) vetted them to see if they were capable as it was highly technical and not without risk. Perhaps it may give you some ideas for enabling both storage areas with the patch? You'd have to PM him directly if you think it's of any use.

Link to comment
Share on other sites

  • 4 weeks later...
Guest Titan146

Hi, I'm looking to use this method to re-root my phone, after Orange updated the software when my phone was repaired (because the lock button had fallen off, but that's a story for another time), however your link for the 58mb update.zip file isn't working. Please could you upload a new link? I can't use titanium backup to get my apps back until its rooted. Thanks in advance for your help.

Link to comment
Share on other sites

Guest BlueMoonRising

Hi, I'm looking to use this method to re-root my phone, after Orange updated the software when my phone was repaired (because the lock button had fallen off, but that's a story for another time), however your link for the 58mb update.zip file isn't working. Please could you upload a new link? I can't use titanium backup to get my apps back until its rooted. Thanks in advance for your help.

It might just be down temporarily. PM Darael and ask him.

Link to comment
Share on other sites

Guest Darael

Unfortunately, the machine on which I was mirroring those files had a total hard drive failure two days ago, and the SanDiego files are not in my most recent backup set.

 

This *sucks*.

 

I can, however, tell you that if you download the OTA update, then before you install it the update.zip file will be on the phone as /cache/fota/ipth_package.bin and can be retrieved with adb pull (I used "adb pull /cache/fota/ipth_package.bin 58M-update/xolo/update.zip" because I thought I might go and get the Orange one at some point, but you can put whatever path you like for the destination, though I suggest making the filename part update.zip).  Yes, it's got a .bin extension, but run "file" on it and you'll see that it *is* a zip archive.  Note that after actually installing the update it'll be deleted from the phone, so there's quite a small window in which to get it.

 

If you can get it in this way, I'm happy to host it on the replacement machine at the same address for anyone else who wants it.

Link to comment
Share on other sites

Guest Titan146

Unfortunately, the machine on which I was mirroring those files had a total hard drive failure two days ago, and the SanDiego files are not in my most recent backup set.

 

This *sucks*.

 

I can, however, tell you that if you download the OTA update, then before you install it the update.zip file will be on the phone as /cache/fota/ipth_package.bin and can be retrieved with adb pull (I used "adb pull /cache/fota/ipth_package.bin 58M-update/xolo/update.zip" because I thought I might go and get the Orange one at some point, but you can put whatever path you like for the destination, though I suggest making the filename part update.zip).  Yes, it's got a .bin extension, but run "file" on it and you'll see that it *is* a zip archive.  Note that after actually installing the update it'll be deleted from the phone, so there's quite a small window in which to get it.

 

If you can get it in this way, I'm happy to host it on the replacement machine at the same address for anyone else who wants it.

 

I downgraded, downloaded the update but didn't install, however the response I got when I went to pull the file was "remote object '/cache/fota/ipth_package.bin' does not exist".

Do you know where else it may be or have any advice on what to do instead?

 

Just a thought, but would you need to have root access to be able to access the file?

Edited by Titan146
Link to comment
Share on other sites

Guest Darael

I downgraded, downloaded the update but didn't install, however the response I got when I went to pull the file was "remote object '/cache/fota/ipth_package.bin' does not exist".

Do you know where else it may be or have any advice on what to do instead?

 

Just a thought, but would you need to have root access to be able to access the file?

 

Hmm.  That, according to my command history, is definitely what I used - and I'm pretty sure I wasn't rooted when I got it.  Besides, I'd expect an "access denied" message rather than a "does not exist" one if it needed root access.

 

Perhaps try using "adb shell" to see what's in /cache/fota?  I'd suggest using "busybox ls -lh /cache/fota" if busybox is in place, as this'll show file sizes in a more-easily-human-readable form.

 

If there's nothing of a likely-looking size there, then frankly I'm stumped.

Link to comment
Share on other sites

  • 4 weeks later...
  • 4 months later...
Guest Darael

I've made a little progress on the SD cards, and also some on the screen-not-working-after-downgrade, but unfortunately not a lot.

 

This is what I know about the cards:

  • The mod to enable both cards modifies two APKs: the MediaProvider, and framework_res.
  • The latter of these is the fundamental framework APK for the whole system
  • The main change in this file is to /res/xml/storage_list.xml
  • The change is not quite what it should be in any case
  • I can decompile the 65M-patched version with apktool
  • I cannot recompile this file even without altering the decompiled version because ant complains about some things in the plurals files
  • I can make the changes to these that were also made in the mod.
  • This allows me to recompile the apk with apktool, even if I change storage_list.xml as well
  • Pushing this new modded framework_res.apk causes a bootloop from which I have to use recovery to downgrade-sidegrade-upgrade-reroot.
  • Presumably the updated system is checking the certificate used to sign framework_res.apk

 

Now for the screen:

  • Using the AIO tools to change the video libs does not seem to fix the problem
  • I adb pulled /system after downgrading and compared it to /system in the Xolo stock update.zip with diff
  • Only a few files differed
  • All of these were files that existed in the post-downgrade system and not the dump
  • All of those were libraries with filenames that ended in .so where the dump only had versions with .so.majorversion.minorversion (or some similar scheme)
  • removing these libraries did not fix the screen

From this I conclude that the problem is not caused by a change to anything in /system.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.