Jewel data/media transition

Information

The HTC EVO 4G LTE (jewel) was pulled from nightlies on Jul 29, 2014 due to frequent modem PIL (Peripheral Image Loader) failures. In short, the kernel was failing to bring the modem out of reset. These modem PIL failures vanish when jewel’s firmware is updated to 4.13.651.4. This guide instructs users on how to update jewel to firmware 4.13.651.4 and install CyanogenMod. Discussion on this topic should be posted to this forum thread.

The decision to take the firmware update route was not reached easily. There is a major caveat: there is no data migration path from an existing CyanogenMod installation. If you opt to perform this firmware update, all of your data, applications, and anything stored on /sdcard will be erased. The latest updates for jewel were published only semi-officially via twitter, likely because the stock ROM would face the same issue of no data migration from older stock ROM versions. The reason for this is a change in partition layout. The latest firmware update follows the recent trend of making /sdcard a directory on the /data partition rather than giving it its own partition. There are advantages and disadvantages to this. Some changes worth noting:

  1. Can only mount /sdcard to computer via MTP (media transport protocol)
  2. Available application installation space is now shared with media storage
  3. Separate user profiles store media in their own directories
    • Example: the first user profile has /sdcard linked to /data/media/0, the second user has /sdcard linked to /data/media/1, etc.

More information about this firmware update, including a short FAQ was put together by Captain_Throwback at XDA Forums:

The instructions provided below only give information on updating, not downgrading your firmware and are only intended for S-OFF users. For all intents and purposes, consider this a one-way street, no going back.

Not sure if you need the firmware update? Restart your phone to the bootloader and look for the HBOOT version. If your HBOOT version is lower than 2.10.0000, this update is for you. If your HBOOT is 2.10.0000 or greater, you can skip this guide and follow the standard installation instructions for jewel.

Backup CyanogenMod+Apps and store on computer

  1. Backup your existing application data with either adb backup or an app from the Play store (e.g. Helium, TitaniumBackup)
    If you have any applications that are partially stored to /sdcard (i.e. the “Move to SD Card” button for applications under Settings > Applications), then first move them back to Phone storage. This storage option is not needed or supported after transitioning to /data/media storage.
  2. Backup your existing ROM in recovery
  3. Copy all /sdcard contents to your computer
  4. Remove your microSD card from the phone to ensure it doesn’t get wiped

You can potentially use the application backups to save some time when setting up CyanogenMod after reinstallation.

The ROM backup is made because it is technically possible to downgrade via RUU 3.17.651.4. Instructions on this process are not provided on this wiki. Once your firmware has been updated, we recommend you stay with it; consider this a one-way street! If you really want to downgrade though, you may find help from users in this xda thread.

Update your firmware

You must be S-OFF to follow these instructions! If you are not S-OFF already, look into rumrunner, or possibly firewater.

Before you begin, be sure that both ADB and fastboot are installed and working on your computer. With your phone booted and connected to your computer, you should be able to type adb devices to see your device’s serial number. Similarly, test fastboot by first rebooting your phone to the bootloader (adb reboot-bootloader) and then typing fastboot devices to see your serial number again. Only continue if you have working adb and fastboot!

  1. Download jewel-firmware-4.13.651.4-twrp-2.7.1.2.zip (mirror)
    SHA1: 3d95f764dc79d6d63c146985760542d150e5984d
    It is imperative that you verify the SHA1 checksum before flashing!
    This firmware package contains an unofficial build of TWRP 2.7.1.2. More information about this recovery can be found here.
  2. Reboot the device to HBOOT:
    adb reboot-bootloader
  3. Enter the OEM update mode:
    fastboot oem rebootRUU
  4. Flash the firmware package. cd to the directory containing jewel-firmware-4.13.651.4-twrp-2.7.1.2.zip and run:
    fastboot flash zip jewel-firmware-4.13.651.4-twrp-2.7.1.2.zip
  5. You will see a FAILED message: remote: 90 hboot pre-update! please flush image again immediately. Do not be alarmed. Wait a few seconds for the HTC logo to reappear on your device, then run the same command again:
    fastboot flash zip jewel-firmware-4.13.651.4-twrp-2.7.1.2.zip
  6. Wait for the process to finish
  7. Reboot the phone to the bootloader:
    fastboot reboot-bootloader
  8. Use the volume keys to navigate to BOOTLOADER and the power key to select; you should see HBOOT-2.10.0000 if the firmware update was successful.
  9. Choose RECOVERY from the HBOOT menu to boot into TWRP

Install CyanogenMod

You have a choice of CyanogenMod build to install:

  1. Official nightlies later than or equal to 20140806
  2. Official M-builds later than or equal to M10

You may also want to download the Google Apps package (version 20140606)

TWRP

  1. Select the Wipe button, followed by Format Data. Type yes to continue, wait for the process to finish, and then return to the home screen with the Home icon at the bottom of the screen.
  2. Select the Wipe button, followed by Advanced Wipe. Select the Cache and System partitions and confirm their wipe. Return to the home screen.
  3. You can now either use adb to push the installation package(s) to /sdcard, or copy the package(s) to a microSD card on your computer and insert it into your device. You may have to reboot recovery for the microSD card to become available.
    adb method: adb push cm-11-20140916-SNAPSHOT-M10-jewel.zip /sdcard/

From here, installation is as you’ve always done. Discussion should be directed to this forum thread.

Content of this page is based on informations from wiki.cyanogenmod.org, under CC BY-SA 3.0 licence.